fixed compiling on OS X, better evaluate