modified camera, scenegraph and firstpersoncontroller to use entity-component system