Final project for CS575