'Returns a copy of a list of states (if immutable) or the states themselves (if not immutable). Used to abstract
away immutability.'

def _copy_states(self, states):

    if self._immutable:
        return [p.copy() for p in states]
    else:
        return states
