Final Project for COMP2068