http://www.eventedmind.com/posts/nodejs-using-futures