This is a simple refactoring exercise that is meant to teach something about dependency inversion and dependency injection.
./gradlew test
Run all the tests. One test will fail. Change production code so that all tests pass.
Refactor the code as well as you can in order to separate responsibilities. Follow these principles:
- Open Close Principle
- Dependency Inversion Principle