docs: def run(self):
          """ This defines the sequence of actions that are taken when the library state is executed
  
          It basically just calls the run method of the container state
          :return:
          """
          self.state_execution_status = StateExecutionStatus.ACTIVE
          logger.debug("Entering library state '{0}' with name '{1}'".format(self.library_name, self.name))
          # self.state_copy.parent = self.parent
          self.state_copy._run_id = self._run_id
          self.state_copy.input_data = self.input_data
          self.state_copy.output_data = self.output_data
          self.state_copy.execution_history = self.execution_history
          self.state_copy.backward_execution = self.backward_execution
          self.state_copy.run()
          logger.debug("Exiting library state '{0}' with name '{1}'".format(self.library_name, self.name))
          self.state_execution_status = StateExecutionStatus.WAIT_FOR_NEXT_STATE
          self.finalize(self.state_copy.final_outcome)