looking into dependency injection and mocking