CS2031 Assignment 3