Final submission for COMP30024 Project B