Lots of work at once.

Sorry for the shitty commit message.