step 5: dependency injection