add es6-promise support