Updated assignment 4 with loads of functionality.
Finished with assignment 4.