negative zero is a no go, add a few more todo's