@mattrobenolt: Tell me how this could be not terrible when defining the actual inheritors.
This change is