simple DI container