private void updateStateIngred(List<Keyword> keywords, List<String> terms) {

	RecipeLearningState nextState;
	List<Keyword> ingredients = keywordsFromType(KeywordType.INGREDIENT, keywords);
	
	if (userSaidEnd(keywords)) {
		nextState = new RecipeLearningState(RecipeLearning.RL_ASK_FIRST_TOOL);
		setCurrentDialogState(nextState);
		return;
	}
	
	if (ingredients.isEmpty()) {
		if (terms.size() > 0) {
			IngredientData newIngred = new IngredientData(terms.get(0).toString(), "");
			ingredientsList.add(new Ingredient(newIngred));
			nextState = new RecipeLearningState();
				nextState.setCurrentState(RecipeLearning.RL_ASK_INGREDIENT_RIGHT);
				setCurrentDialogState(nextState);
		}
		//theretically never happens
		else {
			DialogManager.giveDialogManager().setInErrorState(true);
		}	
	}
	else if (ingredients.size() == 1) {
		saveIngred(ingredients);
		nextState = new RecipeLearningState();
		nextState.setCurrentState(RecipeLearning.RL_ASK_NEXT_INGREDIENT);
		setCurrentDialogState(nextState);
	}
	else {
		//or save all and ask or error handling
		saveIngred(ingredients);
		nextState = new RecipeLearningState();
		nextState.setCurrentState(RecipeLearning.RL_ASK_NEXT_INGREDIENT);
		setCurrentDialogState(nextState);
	}
}