switch from setTimeout to requestAnimationFrame; separate game state update and draw methods in systems; quick FPS monitor