This is an enhanced version of a class project for my advanced programming class in the spring of 2013.