CSC309 assignment 3 repo