class Money implements FxConvertible<Money>, Comparable<Money>, Serializable {

  public Money minus(Money amountToSubtract) {
    ArgChecker.notNull(amountToSubtract, "amountToSubtract");
    ArgChecker.isTrue(amountToSubtract.getCurrency().equals(currency), "Unable to subtract amounts in different currencies");
    return new Money(currency, amount.subtract(amountToSubtract.amount));
  }

  private  Money(Currency currency, BigDecimal amount);

}