private Field findField(Class<?> clazz, String name) {
        for (Field field : clazz.getDeclaredFields()) {
            if (!isTransient(field.getModifiers()) && !field.isAnnotationPresent(Transient.class)
                && field.getName().equals(name)) {
                return field;
            }
        }
        throw new InvalidNameException(name);
    }