SOLID Book Service Refactoring

Please note: read the guideline before starting.

Task

You have the system for working with books. But the code written is not following the best practices. Please, refactor the existing code to follow SOLID principles, but make sure, that the logic is untouched, and all tests are passing.

Hint: Separate logic to multiple modules to make it more readable :)