code: public BigMoney plusMinor(long amountToAdd) {
          if (amountToAdd == 0) {
              return this;
          }
          BigDecimal newAmount = amount.add(BigDecimal.valueOf(amountToAdd, currency.getDecimalPlaces()));
          return BigMoney.of(currency, newAmount);
      }
docs: Returns a copy of this monetary value with the amount in minor units added.
  <p>
  This adds the specified amount in minor units to this monetary amount,
  returning a new object.
  <p>
  No precision is lost in the result.
  The scale of the result will be the maximum of the current scale and the default currency scale.
  For example, 'USD 23.45' plus '138' gives 'USD 24.83'.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param amountToAdd  the monetary value to add, not null
  @return the new instance with the input amount added, never null