Concepts: #1 Dependency Injection and Inversion of Control