simple dependency injection component