add promise.js
improve
init complete loader
add fail handler for loader