public ArrayList stepConfiguration(Configuration config) {
		ArrayList list = new ArrayList();
		PDAConfiguration configuration = (PDAConfiguration) config;
		/** get all information from configuration. */
		String unprocessedInput = configuration.getUnprocessedInput();
		String totalInput = configuration.getInput();
		State currentState = configuration.getCurrentState();
		Transition[] transitions = myAutomaton
				.getTransitionsFromState(currentState);
		for (int k = 0; k < transitions.length; k++) {
			PDATransition transition = (PDATransition) transitions[k];
			/** get all information from transition. */
			String inputToRead = transition.getInputToRead();
			String stringToPop = transition.getStringToPop();
			CharacterStack tempStack = configuration.getStack();
			/** copy stack object so as to not alter original. */
			CharacterStack stack = new CharacterStack(tempStack);
			String stackContents = stack.pop(stringToPop.length());
			if (unprocessedInput.startsWith(inputToRead)
					&& stringToPop.equals(stackContents)) {
				String input = "";
				if (inputToRead.length() < unprocessedInput.length()) {
					input = unprocessedInput.substring(inputToRead.length());
				}
				State toState = transition.getToState();
				stack.push(transition.getStringToPush());
				PDAConfiguration configurationToAdd = new PDAConfiguration(
						toState, configuration, totalInput, input, stack, myAcceptance);
				list.add(configurationToAdd);
			}
		}

		return list;
	}