promises slightly improved
using ES5 code with Q, instead of ES6, to provide Promises