Use the ExtensionDirectiveHandler type in other places where it makes sense.

Since we already have this type it's a shame to keep dragging a pair of object
and method around explicitly.