private static List<Class<?>> classListFromDirectory(final String dirName, List<String> classpath) {
		result = new ArrayList<Class<?>>();		
		ClassLoader cl;
		try {
			final File fileDir = new File(dirName);
			final URL fileDirURL = makeFileURL(fileDir.getCanonicalPath());
			List<URL> urls = new ArrayList<URL>();
			urls.add(fileDirURL);
			if (classpath != null) {
				for (String s : classpath) {
					final URL anotherURL = makeFileURL(s);
					urls.add(anotherURL);
					log.fine("added " + anotherURL);
				}
			}
			final int extraElements = urls.size();
			log.fine("Creating URLClassLoader for " + fileDirURL +
					" with " + extraElements + " extra elements.");
			cl = new URLClassLoader(urls.toArray(new URL[extraElements]));
		} catch (Exception e) {
			throw new IllegalArgumentException(dirName, e);
		}
		startDir(dirName, cl);
		return result;
	}