dependency injection
simplified