Iniital commit, bit messy with BigDecimal may clean later