Assignment 3 for COMP3109.