COMP 278 Final Project