code: @Override
      public CurrencyAmount add(final CurrencyAmount money) {
          if (!money.getCurrency().equals(currency)) {
              throw new IllegalArgumentException("You cannot add " + money.getCurrency() + " with " + currency);
          }
          return new Cash(currency, BigDecimalUtil.add(amount, money.getAmount()));
      }
docs: Add the amount with the existing one and return a new immutable Money.
  @throws IllegalArgumentException if the money.currency does not match the current one.