public void ProcessContract(Contrato contract, int months) { double contabase = (contract.TotalValue / months); for (int i = 1; i <= months; i++) { DateTime data = contract.Date.AddMonths(i); double updatedQuota = contabase + _paymentInstallment.Interest(contabase, i); double fullQuota = updatedQuota + _paymentInstallment.TaxInstalment(updatedQuota); contract.AddInstallment(new Installment(data, fullQuota)); } }