Updated preloaded-classes file.
diff --git a/tools/preload/LoadedClass.java b/tools/preload/LoadedClass.java
index 5782807..9ef17f5 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;
@@ -102,31 +99,20 @@
         }
     }
 
-    /**
-     * Counts loads by apps.
-     */
-    int appLoads() {
-        return operationsByApps(loads);
+    /** Returns names of apps that loaded this class. */
+    Set<String> applicationNames() {
+        Set<String> appNames = new HashSet<String>();
+        addProcessNames(loads, appNames);
+        addProcessNames(initializations, appNames);
+        return appNames;
     }
 
-    /**
-     * 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) {
+    private void addProcessNames(List<Operation> ops, Set<String> appNames) {
+        for (Operation operation : ops) {
             if (operation.process.isApplication()) {
-                byApps++;
+                appNames.add(operation.process.name);
             }
         }
-        return byApps;
     }
 
     public int compareTo(LoadedClass o) {
@@ -160,4 +146,8 @@
 
         return false;
     }
+
+    public boolean isPreloadable() {
+        return systemClass && Policy.isPreloadableClass(name);
+    }
 }