public virtual void MakePaymentTo(Child child, decimal amount, string description) { if (!this.HasChild(child)) { throw new TardisBankException("{0} is not a child of {1}", child.Name, this.Name); } child.ReceivePayment(amount, description); }