Added a load of stuff.

A lot of changes, this release is ready for my submission.