A term long project for CIS211. Extensive, more-than-slightly bloated use of design patterns and object-oriented programming.