diff --git a/src/java/org/apache/fulcrum/intake/model/AppData.java b/src/java/org/apache/fulcrum/intake/model/AppData.java
index 4a21b49..cfd199c 100644
--- a/src/java/org/apache/fulcrum/intake/model/AppData.java
+++ b/src/java/org/apache/fulcrum/intake/model/AppData.java
@@ -21,6 +21,7 @@
 
 import java.io.Serializable;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
@@ -191,14 +192,9 @@
     @Override
     public String toString()
     {
-        StringBuilder result = new StringBuilder();
-
-        result.append("<input-data>\n");
-        for (Group group : groups)
-        {
-            result.append(group);
-        }
-        result.append("</input-data>");
-        return result.toString();
+        return groups.stream()
+                .map(String::valueOf)
+                .collect(Collectors.joining("", "<input-data>\n",
+                        "</input-data>"));
     }
 }
diff --git a/src/java/org/apache/fulcrum/intake/model/Group.java b/src/java/org/apache/fulcrum/intake/model/Group.java
index 03bda97..91db443 100644
--- a/src/java/org/apache/fulcrum/intake/model/Group.java
+++ b/src/java/org/apache/fulcrum/intake/model/Group.java
@@ -680,12 +680,9 @@
             }
 
             // map fields by their mapToObject
-            List<Field<?>> tmpFields = mapToObjectFieldLists.get(field.getMapToObject());
-            if (tmpFields == null)
-            {
-                tmpFields = new ArrayList<Field<?>>(fields.size());
-                mapToObjectFieldLists.put(field.getMapToObject(), tmpFields);
-            }
+            List<Field<?>> tmpFields = mapToObjectFieldLists.computeIfAbsent(
+                    field.getMapToObject(),
+                    k -> new ArrayList<Field<?>>(fields.size()));
 
             tmpFields.add(field);
         }
diff --git a/src/java/org/apache/fulcrum/intake/validator/FieldReference.java b/src/java/org/apache/fulcrum/intake/validator/FieldReference.java
index 8813fc1..de4633d 100644
--- a/src/java/org/apache/fulcrum/intake/validator/FieldReference.java
+++ b/src/java/org/apache/fulcrum/intake/validator/FieldReference.java
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import java.util.Arrays;
 import java.util.List;
 
 import org.apache.fulcrum.intake.IntakeException;
@@ -92,13 +93,9 @@
 		{
 		    if (string != null)
 		    {
-		    	for (Comparison c : Comparison.values())
-		    	{
-		    		if (string.equals(c.text))
-		    		{
-		    			return c;
-		    		}
-		    	}
+                return Arrays.stream(Comparison.values())
+                        .filter(c -> string.equals(c.text)).findFirst()
+                        .orElse(null);
 		    }
 
 		    return null;
