def states(self, states):
        """ Overwrite the setter of the container state base class as special handling for the decider state is needed.

        :param states: the dictionary of new states
        :raises exceptions.TypeError: if the states parameter is not of type dict
        """
        # First safely remove all existing states (recursively!), as they will be replaced
        state_ids = list(self.states.keys())
        for state_id in state_ids:
            # Do not remove decider state, if teh new list of states doesn't contain an alternative one
            if state_id == UNIQUE_DECIDER_STATE_ID and UNIQUE_DECIDER_STATE_ID not in states:
                continue
            self.remove_state(state_id)
        if states is not None:
            if not isinstance(states, dict):
                raise TypeError("states must be of type dict")
            # Ensure that the decider state is added first, as transition to this states will automatically be
            # created when adding further states
            decider_state = states.pop(UNIQUE_DECIDER_STATE_ID, None)
            if decider_state is not None:
                self.add_state(decider_state)
            for state in states.values():
                self.add_state(state)
Overwrite the setter of the container state base class as special handling for the decider state is needed.

        :param states: the dictionary of new states
        :raises exceptions.TypeError: if the states parameter is not of type dict