CSI4107 - Assignment 2 Source Code