Using ES6 syntax, Promise trees and bluebird.