docs: def remove(self, state_element, recursive=True, force=False, destroy=True):
          """Remove item from state
  
          :param StateElement state_element: State or state element to be removed
          :param bool recursive: Only applies to removal of state and decides whether the removal should be called
              recursively on all child states
          :param bool force: if the removal should be forced without checking constraints
          :param bool destroy: a flag that signals that the state element will be fully removed and disassembled
          """
          if isinstance(state_element, State):
              return self.remove_state(state_element.state_id, recursive=recursive, force=force, destroy=destroy)
          elif isinstance(state_element, Transition):
              return self.remove_transition(state_element.transition_id, destroy=destroy)
          elif isinstance(state_element, DataFlow):
              return self.remove_data_flow(state_element.data_flow_id, destroy=destroy)
          elif isinstance(state_element, ScopedVariable):
              return self.remove_scoped_variable(state_element.data_port_id, destroy=destroy)
          else:
              super(ContainerState, self).remove(state_element, force=force, destroy=destroy)