new Promise() instead of Promise.defer() as suggested in Bluebird's doc.