private void updateStateStep(List<Keyword> keywords, List<String> terms) {
	RecipeLearningState nextState;
	if (userSaidEnd(keywords)) {
		nextState = new RecipeLearningState(RecipeLearning.RL_EXIT);
		setCurrentDialogState(nextState);
		createRecipe();
		return;
	}
	
	if (terms.size() > 0) {
		recipeSteps[numOfSteps] = new RecipeStep(terms.get(terms.size() - 1));
		numOfSteps++;
		nextState = new RecipeLearningState();
		if (numOfSteps == 19) {
			nextState.setCurrentState(RecipeLearning.RL_ASK_LAST_STEP);
			setCurrentDialogState(nextState);
		}
		else {
			nextState.setCurrentState(RecipeLearning.RL_ASK_NEXT_STEP);
			setCurrentDialogState(nextState);
		}
		
	}
	//theoretically never happens
	else {
		//TODO maybe take the string with biggeest length and ask user to confirm?
		DialogManager.giveDialogManager().setInErrorState(true);
	}
	
}