Refactoring to make modifiers much more flexible (and work at all).