First Commit

* I'm going to go through this problem
* procedurally first, then refactor
Extracted Classes

* This is definitely coming along nicely