public static List<Field> getAllDeclaredFields(Class<?> aClass) {
		List<Field> methods = new ArrayList<Field>();
		try {		    
		    for(Class<?> i = aClass;
	            i != null &&	         
	            i != Object.class; 
	            i = i.getSuperclass() ) {

				for(Field m : i.getDeclaredFields()) {
					/* Don't grab private members */
					if( (m.getModifiers() & Modifier.PUBLIC) > 0 &&
					    ! m.isAnnotationPresent(LeolaIgnore.class) ) {
						methods.add(m);
					}
				}				
			}
		}
		catch(Exception e) {
			/* ignore */
		}

		return (methods);
	}