TDD kata and exercise in coding, refactoring and test-first.