private File search(File current, FileFilter filter) {

		if (current.isDirectory()) {
			File[] expected = current.listFiles(filter);
			if (expected != null) {

				if (expected.length > 0) {
					// found
					return expected[0];
				} else {
					for (File f : iterateOver(current)) {
						File found = search(f, filter);
						if (found != null) {
							return found;
						}
					}
				}
			}
		}
		return null; // nothing found
	}