CS2106 Assignment 2