Dependency injection - Wikipedia