compiles with nan