supports NaN