Remainder of exercises.
Shifted code around to new structure and added new tests
shifted code around to new structure and added new tests
Exercises  13-17 from chapter 2