Nearly forgot When.js. It is gooood.