While building the solution, we hard coded most of the functionality. There is a lot of duplication. We need to go back, now that tests are in place, and refactor this code to get the size down.