private void updateStateTool(List<Keyword> keywords, List<String> terms) {
	// TODO mehr als ein tool durch terms
	RecipeLearningState nextState;
	List<Keyword> tools = keywordsFromType(KeywordType.TOOL, keywords);
	
	if (userSaidEnd(keywords)) {
		nextState = new RecipeLearningState(RecipeLearning.RL_ASK_FIRST_STEP);
		setCurrentDialogState(nextState);
		return;
	}
	
	if (tools.isEmpty()) {
		if (terms.size() > 0) {
			ArrayList<RecipeData> associatedRecipes = new ArrayList<RecipeData>();
			associatedRecipes.add(recipe.getRecipeData());
			ToolData newTool = new ToolData(terms.get(0).toString(), "", associatedRecipes); //location???
			toolsList.add(new Tool(newTool));
			nextState = new RecipeLearningState();
			nextState.setCurrentState(RecipeLearning.RL_ASK_TOOL_RIGHT);
			setCurrentDialogState(nextState);
		}
		else {
			DialogManager.giveDialogManager().setInErrorState(true);
			// too many terms
		}
	}
	else if (tools.size() == 1) {
		saveTool(tools);
		nextState = new RecipeLearningState();
		nextState.setCurrentState(RecipeLearning.RL_ASK_NEXT_TOOL);
		setCurrentDialogState(nextState);
		
	}
	else {
		//or save all and ask or error handling
		saveTool(tools);
		nextState = new RecipeLearningState();
		nextState.setCurrentState(RecipeLearning.RL_ASK_NEXT_TOOL);
		setCurrentDialogState(nextState);
	}
	
}