Assignment 3 for COMP 229