Interface submodels are hard to read. Reformat to only have a single base class and then the model (at the cost of more duplication)