Implemented simple DI container