docs: def setup_forward_or_backward_execution(self):
          """ Sets up the execution of the concurrency states dependent on if the state is executed forward of backward.
  
          :return:
          """
          if self.backward_execution:
              # pop the return item of this concurrency state to get the correct scoped data
              last_history_item = self.execution_history.pop_last_item()
              assert isinstance(last_history_item, ReturnItem)
              self.scoped_data = last_history_item.scoped_data
              # get the concurrency item for the children execution historys
              concurrency_history_item = self.execution_history.get_last_history_item()
              assert isinstance(concurrency_history_item, ConcurrencyItem)
  
          else:  # forward_execution
              self.execution_history.push_call_history_item(self, CallType.CONTAINER, self, self.input_data)
              concurrency_history_item = self.execution_history.push_concurrency_history_item(self, len(self.states))
          return concurrency_history_item