End of Semester Project for CMPSCI 473