added more accuracy using floats