COMP 426 Final Project