'Run one timestep of the environment\'s dynamics. When end of episode
is reached, reset() should be called to reset the environment\'s internal state.
Input
action : an action provided by the environment
Outputs
(observation, reward, done, info)
observation : agent\'s observation of the current environment
reward [Float] : amount of reward due to the previous action
done : a boolean, indicating whether the episode has ended
info : a dictionary containing other diagnostic information from the previous action'

def step(self, action):

    raise NotImplementedError
