I believe I've added all of Brian's changes.

Had to do it all manually because automatic merging is tricky when you
merge multiple request in a row. Things get out of sync.