protected Class findClassDirectly(String name) throws ClassNotFoundException {

      //First look at jars that have had Classes from the Same Package
      String packName = getPackageName(name);
      HashSet set = (HashSet) packageCache.get(packName);
      if (set == null) set = new HashSet();

      if (!set.isEmpty()) {
         try {
            return findClassInSet(name, set, false);
         }
         catch (ClassNotFoundException notFound) {
            //Just ignore class must not be in here
         }
      }

      //make sure eager resources are downloaded
      downloadEagerResources();

      //Next look in all Eager Resources minus the ones we just tried
      HashSet eagerSet = new HashSet();
      eagerSet.addAll(eagerEntries.values());
      if (!set.isEmpty()) {
         eagerSet.removeAll(set);
      }

      if (!eagerSet.isEmpty()) {
         try {
            return findClassInSet(name, eagerSet, true);
         }
         catch (ClassNotFoundException notFound) {
            //Just ignore class must not be in here
         }
      }

      //Now Finally Look in Lazy Resources
      HashSet lazySet = new HashSet();
      lazySet.addAll(lazyEntries.values());
      if (!set.isEmpty()) {
         lazySet.removeAll(set);
      }

      if (!lazySet.isEmpty()) {
         try {
            return findClassInSet(name, lazySet, true);
         }
         catch (ClassNotFoundException notFound) {
            //Just ignore class must not be in here
         }
      }

      //Ok we made it down here with out finding anything so throw an Exception
      throw new ClassNotFoundException(name);

   }