CMPT474 Assignment 6