rendering separated from game logic