Finally removing the copy-paste code in Operations.  I don't like using inheritance to share functionality, but it's much cleaner than the old way, and almost all subclasses use it.
Cleaned up some of the refactoring artefacts.