floating point tolerance cleanup, more work needed