starting to decouple rendering and game state updating