Observer

Use BigInteger for amount not double.