In TicTacToe.py the input prints ‘None’ when it prints the input text. You don’t have to use print inside the input function, it prints what is there. When you add print, input is printing the print function, so it prints ‘None’. In your player class, the str() function seems to be doing the same thing (printing ‘None’). Input accepts user input as a string, including numbers. Removing print() and str() should help because every input prints ‘None’ in the game when it gets user input. I also noticed the end_game function could accept lowercase input to play again. Just a suggestion!