protected boolean generateNext(){
		int[] actors = getActors();
		
		// if not yet initialized do it
		if (actors == null){
			actors = new int[ actorLength ];
			actors[actorLength - 1] = 1;
			setActors(actors);
			return true;
		}
		// move onto the next scenario, which is greater than the previous by 1
		else{
			int actor;
			int overflow = 1;
			for (int i=actorLength-1; i>=0; i--){
				actor = actors[i];
				switch(actor + overflow){
					case 1: actors[i] = 1; overflow = 0; break;
					case 2: actors[i] = 0; overflow = 1; break;
					case 3: actors[i] = 1; overflow = 1; break;
				}
				if (overflow == 0){ break; }
			}
			
			int numberOfOnes = 0;
			for (int i=0; i<actorLength;i++){
				if (actors[i] == 1){ numberOfOnes++; }
			}
			if (numberOfOnes < actorLength){
				return true;
			}
			else{
				return false;
			}
		}
	}