@Override
	public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
		

		if (!roundEnv.processingOver()) {
//			System.out.println("Processing Annotations: " + annotations);
//			System.out.println();
			
			for (TypeElement typeElement : annotations) {
//				System.out.println("Processing: " + typeElement);
				Set<? extends Element> elements = roundEnv.getElementsAnnotatedWith(typeElement);				
//				System.out.println("Processing Elements: " + elements);
//				System.out.println();
				for (Element element : elements) {
					if ( element.getKind() == ElementKind.CLASS && 
						!element.getSimpleName().toString().contains("$") && 
						!element.getModifiers().contains(Modifier.STATIC) &&
						!element.getModifiers().contains(Modifier.PRIVATE)
							) {
						processClass(element);
					}
				}
			}
		}
		return true;
	}