private void normalizeFields(List<Field> fields, Class<?> clazz) {
    for (ListIterator<Field> it = fields.listIterator(); it.hasNext();) {
      Field f = it.next();
      int mod = f.getModifiers();
      if (Modifier.isTransient(mod) || Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
        it.remove();
      } else {
        for (Annotation a : f.getAnnotations()) {
          if (a.getClass() == Marshallable.class) {
            Marshallable m = (Marshallable) a;
            if (!m.marshal()) {
              it.remove();
            }
          } else if (a.getClass() == Deprecated.class) {
            it.remove();
          }
        }
      }
    }
  }