Final commit for part 2

All test cases now included. Run to see results.