This is a big commit, isn't it?

Tons of stuff to do, tons of givenups, so getting to work...