A lightweight dependency injection container