public class Loan {
  private SharePie shares;

  // Pominięte metody dostępu, konstruktory oraz proste metody

  public Map calculatePrincipalPaymentDistribution(
                                  double paymentAmount) {
    return getShares().prorated(paymentAmount);
  }
  public void applyPrincipalPayment(Map paymentShares) {
    shares.decrease(paymentShares);
  }
}
