add comments to clear up the purpose of some classes
shim added for requestAnimationFrame