separate display from game logic