adding NaN implementation