use window.requestAnimationFrame for animation! performance ftw!