Huge update.

Mind finishing the functions off?