Dependency Injection pattern implemented