remove q.js and use html5 Promise