Development Exercise

Please create a branch of this repository to complete your task. Name the branch whatever you like. When complete, open a Pull Request back to the master branch of this repository.

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: The goal here is not 100% correctness, but instead a glimpse into how you approach refactoring/redesigning bad code. Commit often to your branch.