Was a bit messy job, but fleshed out on the CS. Do let me know if there's anything I missed :X