cleanup
use requestAnimationFrame polyfill
added user interaction: dragging via mouse & touch