TO DO: double -> bigdecimal