docs: def _handle_backward_execution_before_child_execution(self):
          """ Sets up all data after receiving a backward execution step from the execution engine
          :return: a flag to indicate if normal child state execution should abort
          """
          self.backward_execution = True
          last_history_item = self.execution_history.pop_last_item()
          if last_history_item.state_reference is self:
              # if the the next child_state in the history is self exit this hierarchy-state
              if self.child_state:
                  # do not set the last state to inactive before executing the new one
                  self.child_state.state_execution_status = StateExecutionStatus.INACTIVE
              return True
          assert isinstance(last_history_item, ReturnItem)
          self.scoped_data = last_history_item.scoped_data
          self.child_state = last_history_item.state_reference
          return False