Final project for CSci242 Fall 2013