make tic-tac-toe a bit more functional, pass a game around and when adding a mark return a new game representation, include different Game types ActiveGame, WonGame, BoardFilledGame, save all the states of the game, add a replay for all game states that have been played, etc.