#3 use setImmediate instead of process.nextTick
0.3.1