Assignment 3 for COMP273