private FormulaVariable findVariableForPath(
     VariablePathExpression attributePath, List<List<FormulaVariable>> variables) {
   //        for (int i = variables.size() - 1; i >= 0; i--) {
   for (int i = 0; i < variables.size(); i++) {
     List<FormulaVariable> variableList = variables.get(i);
     for (FormulaVariable formulaVariable : variableList) {
       if (SpicyEngineUtility.containsPathWithSameVariableId(
           formulaVariable.getOriginalSourceOccurrencePaths(), attributePath)) {
         return formulaVariable;
       }
     }
     for (FormulaVariable formulaVariable : variableList) {
       if (SpicyEngineUtility.containsPathWithSameVariableId(
           formulaVariable.getSourceOccurrencePaths(), attributePath)) {
         return formulaVariable;
       }
     }
   }
   throw new IllegalArgumentException(
       "Unable to find variable for path "
           + attributePath
           + " in "
           + SpicyEngineUtility.printListOfVariableLists(variables));
 }