use scala bigdecimal