It would work, and get rid of the check for the setup function, but it would represent the same awkward coupling.

Instead if each `Model` class had an `extend()` method, implementing this sort of functionality would just be overriding the `Model.extend` method.