Lots of updates that should be merged into master...