CS402 Assign 3