Final project for CSCI 4020