My implementation of COMP90056 Workshop 11, Semester 2, 2013.