This is for EDF1078 Assignment 2. Please enjoy! :)