State pattern and beginning of TDD