Switch to es6 Promise (wip)