public Money add(Money arg)i assert Same CurrencyAs(arg) return new Money(amount. add(argamount), currency, true) public Money subtract(Money arg return this. add(arg negate) void assert same CurrencyAs Money argi /Assert equals(money math mismatch", currency, arg currency)+- public Money add(Money arg) { assertSameCurrencyAs(arg); return new Money(amount.add(arg.amount), currency, true); } public Money subtract(Money arg) { return this.add(arg.negate()); } void assertSameCurrencyAs(Money arg) { //Assert.equals("money math mismatch", currency, arg.currency); }