project module and TDD refactor - part one