public class Loan {
  private SharePie shares;

  // Pominęliśmy metody dostępu, konstruktory oraz metody proste

  public SharePie calculatePrincipalPaymentDistribution(
                                               double paymentAmount) {
    return shares.prorated(paymentAmount);
  }

  public void applyPrincipalPayment(SharePie paymentShares) {
    setShares(shares.minus(paymentShares));
  }
}
