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

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

  private  Money(Currency currency, BigDecimal amount);

}