Redeveloped on Vanila.js (http://vanilla-js.com)