code: def __fix_bases(base_classes, have_mt):
          
          fixed = list(base_classes)
          contains_model = False
          for b in fixed:
              if isinstance(fixed, Model): contains_model = True; break
              pass
  
          # adds a model when user is lazy
          if not contains_model:
              if have_mt:
                  from gtkmvc3.model_mt import ModelMT
                  fixed.insert(0, ModelMT)
              else: fixed.insert(0, Model)
              pass
  
          class ModelFactoryWrap (object):
              __metaclass__ = get_noconflict_metaclass(tuple(fixed), (), ())
              def __init__(self, *args, **kwargs): pass
              pass
  
          fixed.append(ModelFactoryWrap)
          fixed.sort()
          return tuple(fixed)
docs: This function check whether base_classes contains a Model
          instance. If not, choose the best fitting class for
          model. Furthermore, it makes the list in a cannonical
          ordering form in a way that ic can be used as memoization
          key