private boolean checkMoveToHeating(State state, Set<String> contents) {
		String ingredientName = topLevelIngredient.getName();
		boolean recipeIngHeated = this.topLevelIngredient.getHeated();
		ObjectInstance topLevelObj = state.getObject(ingredientName);
		if (recipeIngHeated && contents.contains(ingredientName) ) {
			if (!IngredientFactory.isHeatedIngredient(topLevelObj)) {
				if (!IngredientFactory.isMeltedAtRoomTemperature(topLevelObj)) {
					return true;
				}
			}
		} else {
			List<IngredientRecipe> ingredientContents = this.topLevelIngredient.getContents();
			for (IngredientRecipe ing : ingredientContents) {
				String name = ing.getName();
				ObjectInstance obj = state.getObject(name);
				if (ing.getHeated() && contents.contains(name)) {
					if (!IngredientFactory.isHeatedIngredient(obj)) {
						if (!IngredientFactory.isMeltedAtRoomTemperature(obj)) {
							return true;
						}
					}
				}
			}
		}
		return false;
	}