docs: private static List<Field> getAllFields(Class<?> clazz){
  		if(!clazz.equals(Object.class)){
  			List<Field> fields = new ArrayList<Field>(Arrays.asList(clazz.getDeclaredFields()));
  			List<Field> fields2 = getAllFields(clazz.getSuperclass());
  			if(fields2!=null){
  				fields.addAll(fields2);
  			}
  			return fields;
  		}else{
  			return null;
  		}
  	}