add Q and return promise, refactor and remove unnecessary pngtmp folder