COMP308 Final Project