clean up, add NaN check