replace es6-promise to Q