Having to define this feels like a clunky interface, to me. What do you think about having the formatter call a `register` method instead?