used limits instead of cfloat