CS 2340 Fall 2012 project