CSC443 Assignment 2.