Introducing Contexts and Dependency Injection