cmput410 assignment 4