Final project for CS4040