Use Bluebird promises instead of Q