Rewrote with cleaner layout, progressbar

and requestAnimationFrame