Assignment 2 for CMPUT 379