using floats where appropriate