donut snapshot
diff --git a/tools/preload/LoadedClass.java b/tools/preload/LoadedClass.java
index 5782807..86e5dfc 100644
--- a/tools/preload/LoadedClass.java
+++ b/tools/preload/LoadedClass.java
@@ -15,10 +15,7 @@
  */
 
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * A loaded class.
@@ -54,7 +51,7 @@
     }
 
     void measureMemoryUsage() {
-        this.memoryUsage = MemoryUsage.forClass(name);        
+        this.memoryUsage = MemoryUsage.forClass(name);
     }
 
     int mlt = -1;
@@ -79,6 +76,10 @@
         return mit = calculateMedian(initializations);
     }
 
+    int medianTimeMicros() {
+        return medianInitTimeMicros() + medianLoadTimeMicros();
+    }
+
     /** Calculates the median duration for a list of operations. */
     private static int calculateMedian(List<Operation> operations) {
         int size = operations.size();
@@ -102,31 +103,20 @@
         }
     }
 
-    /**
-     * Counts loads by apps.
-     */
-    int appLoads() {
-        return operationsByApps(loads);
+    /** Returns names of processes that loaded this class. */
+    Set<String> processNames() {
+        Set<String> names = new HashSet<String>();
+        addProcessNames(loads, names);
+        addProcessNames(initializations, names);
+        return names;
     }
 
-    /**
-     * Counts inits by apps.
-     */
-    int appInits() {
-        return operationsByApps(initializations);
-    }
-
-    /**
-     * Counts number of app operations in the given list.
-     */
-    private static int operationsByApps(List<Operation> operations) {
-        int byApps = 0;
-        for (Operation operation : operations) {
-            if (operation.process.isApplication()) {
-                byApps++;
+    private void addProcessNames(List<Operation> ops, Set<String> names) {
+        for (Operation operation : ops) {
+            if (operation.process.fromZygote()) {
+                names.add(operation.process.name);
             }
         }
-        return byApps;
     }
 
     public int compareTo(LoadedClass o) {
@@ -137,27 +127,4 @@
     public String toString() {
         return name;
     }
-
-    /**
-     * Returns true if this class's initialization causes the given class to
-     * initialize.
-     */
-    public boolean initializes(LoadedClass clazz, Set<LoadedClass> visited) {
-        // Avoid infinite recursion.
-        if (!visited.add(this)) {
-            return false;
-        }
-
-        if (clazz == this) {
-            return true;
-        }
-
-        for (Operation initialization : initializations) {
-            if (initialization.loadedClass.initializes(clazz, visited)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
 }