a bunch of changes that I should have committed in pieces a long time ago