switch from Q to bluebird promises