Exercise 4 - completed

Refactored all other solutions to be more gracefully implemented