I like the declarative nature of this, and it keeps the formatters decoupled from the reporter, I previously had the formatters registering themselves with the reporter, but it meant they had to have repeated logic. I had thought about just using public methods, and making all public methods notifications, which would also enforce some nicer api design (by making us move all the helper methods out of the formatters)..