CS2112 Assignment 7