*promises now supplied by when.js, hopefully with better performance