Noughts and Crosses Simulator in C# using TDD and good OO design