32bit floats are required to prevent accuracy issues