public int countClasses(int depth, String packageName) {
		if (depth++ >= MAX_PACKAGE_LEVEL)
			return 0;
		int number = 0;
		String prefix = packageName.length() == 0 ? "" : packageName + ".";
		Enumeration enum__ = ClassInfo.getClassesAndPackages(packageName);
		while (enum__.hasMoreElements()) {
			// insert sorted and remove double elements;
			String name = (String) enum__.nextElement();
			String fqn = prefix + name;
			if (ClassInfo.isPackage(fqn)) {
				number += countClasses(depth, fqn);
			} else {
				number++;
			}
		}
		return number;
	}