better float handling