Switched to when.js, reimplemented methods.