setup dependency injection and mocking