more explicit dependency injection