code: public BigMoney minusMinor(long amountToSubtract) {
          if (amountToSubtract == 0) {
              return this;
          }
          BigDecimal newAmount = amount.subtract(BigDecimal.valueOf(amountToSubtract, currency.getDecimalPlaces()));
          return BigMoney.of(currency, newAmount);
      }
docs: Returns a copy of this monetary value with the amount in minor units subtracted.
  <p>
  This subtracts the specified amount in minor units from 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 minus '138' gives 'USD 22.07'.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param amountToSubtract  the monetary value to subtract, not null
  @return the new instance with the input amount subtracted, never null