All BigDecimals now used as BigDecimal.valueof(long) to avoid pitfall of new BigDecimal(long)