some cleanup moving some library code around for size optimization now using == instead of flt_equals for float comparison, mostly for hash compatibility