module patterns, tdd