remove When.js in favor of ES6 promises