handle money with bigdecimal