Money class implementation as described by Martin Fowler at [1] using a long value internally instead of BigInteger. There are two variations: mutable and immutable. [1] http://martinfowler.com/eaaDev/quantity.html