pretty epic refactoring to help separate application components: MainEngineThread is pretty much just devoted to running its update loop: it draws to canvas if the view is ready, then calls update on its listeners with the time delta since the last update call.  GameController manages the relationships between scans, database calls, game objects and actors; this will be where the application logic is primarily managed.  It holds the MainEngineThread, controlling its start and stop calls.  GraphicsView does the actual drawing, managing the camera controls and rendering of actors.  GraphicsFragment is the key fragment that holds the GameController and GraphicsView.