refactor for better cross transition and less repeated code
optional zepto.js and when.js
update build