take a TDD approach