WIP This pull request is getting out of hand

I tested this better than is suggested in my notes but not as much as I will later