This looks very much like what the `ExtensionPoint` class does.