Recombine `sourceRoot` and `destinationRoot` logic

And fixes a warning error from Node.js 0.10.x (one of the lastest warns if you use `process.nextTick`)