8. dependency injection