Lots of refactoring to entirely eliminate the need to put command bindings in more than one place.