My solution to Project 1 for CS 61b Fall 2006 UC Berkeley