Greg Ward wrote:
 objects should *be*, not *do*, and class names like HelpFormatter and TextWrapper are impositions of procedural abstraction onto OOP.
I don't see anything dangerous about -er objects. There are plenty of objects in the real world that end in -er, all nouns: Programmer, Bookkeeper, Publisher, Reader, Writer, Trucker, ad infinitum. Plenty of precedent in the OOP world too: Debugger, Profiler, Parser, TestLoader, SequenceMatcher, Visitor. Objects combine state (data) with behavior (processing); sometimes the state is most important, sometimes the behavior. Following that kind of over-simplified "rule" may do more harm than good.
I'm glad you didn't fall for it. ;-)