def __init__(self, env, learner_config, session_config):
        '''
        Consturctor for ExpSenderWrapperMultiStepMovingWindowWithInfo class
        Important Attributes:
            _ob: holds the state at current timestep
            n_step: maximum number of previous states to keep
            stride: stride for moving window
            last_n: queue of max size n_step to hold previous states
            env: environment to interact with
            sender: distributed experience sender. communicate with local and
                    remote replay buffer
        '''
        super().__init__(env, learner_config, session_config)
        self._ob = None  # obs of the current time step
        self.n_step = self.learner_config.algo.n_step
        self.stride = self.learner_config.algo.stride # Stride for moving window
        if self.stride < 1:
            raise ConfigError('stride {} for experience generation cannot be less than 1'.format(self.learner_config.algo.stride))
        self.last_n = deque()

        Consturctor for ExpSenderWrapperMultiStepMovingWindowWithInfo class
        Important Attributes:
            _ob: holds the state at current timestep
            n_step: maximum number of previous states to keep
            stride: stride for moving window
            last_n: queue of max size n_step to hold previous states
            env: environment to interact with
            sender: distributed experience sender. communicate with local and
                    remote replay buffer
        
surreal/env/exp_sender_wrapper.py