This program is based on a test I was given a while back.  I've decided to rewrite it after reading up on TDD.