TDD Tic-Tac-Toe - a tutorial on how to develop a simple program cleanly