TDD methodology practice – fail pass and refactor