public void VisionAllStates(int[] inTargets, byte[] inVisions){
		Iterator<GameState> i = AllStates.iterator();
		while(i.hasNext()){
			GameState a = i.next();
			if(a.SurviveVisions(inTargets, inVisions)){
				// state is allowed, and has been updated.
			} else { //state was not allowed, and is removed
				i.remove();
			}
		}
	}