class MultipleCurrencyAmount implements ImmutableBean,
    Iterable<CurrencyAmount>, Serializable {

  public MultipleCurrencyAmount without(final Currency currency) {
    ArgumentChecker.notNull(currency, "currency");
    TreeMap<Currency, CurrencyAmount> copy = new TreeMap<Currency, CurrencyAmount>(_currencyAmountMap);
    if (copy.remove(currency) == null) {
      return this;
    }
    return new MultipleCurrencyAmount(copy);
  }

  private  MultipleCurrencyAmount(ImmutableSortedMap<Currency, CurrencyAmount> currencyAmountMap);
  private  MultipleCurrencyAmount(
      SortedMap<Currency, CurrencyAmount> currencyAmountMap);

}