use setImmediate instead of process.nextTick

#15