docs: def destroy(self, recursive):
          """ Removes all the state elements.
  
          :param recursive: Flag wether to destroy all state elements which are removed
          """
          for in_key in list(self.input_data_ports.keys()):
              self.remove_input_data_port(in_key, force=True, destroy=recursive)
  
          for out_key in list(self.output_data_ports.keys()):
              self.remove_output_data_port(out_key, force=True, destroy=recursive)
  
          if self._income:
              self.remove_income(force=True, destroy=recursive)
  
          for outcome_key in list(self.outcomes.keys()):
              self.remove_outcome(outcome_key, force=True, destroy=recursive)