Lightweight dependency injection container