Initial commit. Probably should have done this work in smaller pieces, but there you have it. Practicing strict TDD now, because I haven't been disciplined enough in the past to make testing a habit.