code: public Money minus(BigDecimal amountToSubtract, RoundingMode roundingMode) {
          return with(money.minusRetainScale(amountToSubtract, roundingMode));
      }
docs: Returns a copy of this monetary value with the amount subtracted.
  <p>
  This subtracts the specified amount from this monetary amount, returning a new object.
  If the amount to subtract exceeds the scale of the currency, then the
  rounding mode will be used to adjust the result.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param amountToSubtract  the monetary value to subtract, not null
  @param roundingMode  the rounding mode to use, not null
  @return the new instance with the input amount subtracted, never null