There's a lot of boiler plate here in the delegation...any reason not to leverage some light metaprogramming to reduce the boilerplate?

As far as I can tell, this legacy formatter isn't yet changing the interface of the underlying formatter, besides the extra `notifications` method.  Are the other changes (e.g. using data objects as arguments) coming later, and this will evolve with those changes?