public Set<String> scan() throws Exception {
		URL[] urls = ClasspathUrlFinder.findClassPaths(); // scan
															// java.class.path
		AnnotationDB db = new AnnotationDB();
		try {
			db.scanArchives(urls);
			if(this.name != null)
				return db.getAnnotationIndex().get(this.name);
			else if(c != null)
				return db.getAnnotationIndex().get(c.getName());
			else
				throw new NullPointerException("String or Class was null");
		} 
		catch (IOException e) {
			throw new Exception("IO Error");
		}
		catch (RuntimeException e) {
			// no error message if the classpath is not defined correctly
			if (e.getMessage().startsWith("File in java.class.path does not exist: "))
				return null;
			else
				throw new RuntimeException(e.getMessage());
		}
		
	}