Use BigDecimal for prices

Also describe scenarios in the tests.
Use describe for context in tests