a bit more work on libm