My Semester 2 Coursework for AG0700. Not really intended for public use, it's probably full of terrible coding practices.