explaining the problem and why we need Dependency Injection