Maybe this should just be #next_location? and iterate on next_states. Memoize?