Add work on starting an OOP solution
Add OOP version of answer.

TODO: Some more testing and comments