Mms proposed updates

These are my proposed updates, mostly reflecting the things that I've been doing without documenting them. Feel free to tear them apart. I'll annotate changes that I think need explanation.
We never use `fail` in our codebase, always `raise`. Should we change our style, or is this something we should try to adhere to?