1.2.0 WIP

Contains work to be included as part of version 1.2.0.

I've had to create a new pull request as I made a mess by accidentally merging all 1.2.0 fixes into the master branch which closed the original #118 pull request somehow. These have since been revered in the master branch.