refactor camera. breaks the rendering.