big ass push

lots of changes, see the docs at the top of the file