docs: def prepare_destruction(self):
          """Prepares the model for destruction
  
          Unregisters the model from observing itself.
          """
          if self.core_element is None:
              logger.verbose("Multiple calls of prepare destruction for {0}".format(self))
          self.destruction_signal.emit()
          try:
              self.unregister_observer(self)
          except KeyError:  # Might happen if the observer was already unregistered
              pass
          super(StateElementModel, self).prepare_destruction()