tested on Node.js v0.10.x only