private Set<Distribution> distribute(MonetaryAmount amount) {
Set<Distribution> distributions = new HashSet<Distribution>(beneficiaries.size());
for (Beneficiary beneficiary : beneficiaries) {
MonetaryAmount distributionAmount = amount.multiplyBy(beneficiary.getAllocationPercentage());
beneficiary.credit(distributionAmount);
Distribution distribution = new Distribution(beneficiary.getName(), distributionAmount, beneficiary
.getAllocationPercentage(), beneficiary.getSavings());
distributions.add(distribution);
}
return distributions;
}