That's more than fine with me. My preferred naming scheme... evolved... as I wrote these things, and I've never standardized them.

I actually kind of prefer objects where possible, though I didn't bother to make expand do them. The reason is that the class names are easier to parse/more robust to recompilation than anonymous classes. The one caveat is that they're lazily instantiated, so the registration has to be done outside their constructors.