. "However, when I follow things such as constructor injection, law of demeter, behavior based testing, etc." . . .