using nan (https://github.com/rvagg/nan) to support virtually all node version