IMO this is an anti-pattern OOP.

There is no input to the constructor, so why do we need a constructor if we are just instantly creating an object?

Do we need individual instances of ModelBuilder? I'd really like model definition to just be a straight inheritance from  `DefaultModelBaseClass`. That would simplify debugging quite a bit in my experience.