Development Exercise
The following code is poorly designed and error prone. Refactor the objects below to follow a more SOLID design. Keep in mind the fundamentals of MVVM/MVC and Single-responsibility when refactoring.
Further, the refactored code should be flexible enough to easily allow the addition of different display methods, as well as additional read and write methods.
Feel free to add as many additional classes and interfaces as you see fit.
Note: Please create a fork of the https://github.com/BrandonLegault/exercise repository and commit your changes to your fork. The goal here is not 100% correctness, but instead a glimpse into how you approach refactoring/redesigning bad code. Commit often to your fork.