Final term project for CSCI 1101