CMPT 225 assignment 3