CSC309H1 - Assignment 2