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.
I'm not a fan of Duck typing - IME it makes for less DRY code and as you say prevents the creation of a common interface.