use bluebird instead of Q