COMP 4106 Final Project