public final boolean loop(Class<?>[] interfaces){
        for(Class<?> clazz : interfaces) {
            if(clazz.isInterface()) {
                if(process(clazz)) {
                    return true;
                }
            }
        }
        
        for(Class<?> clazz : interfaces) {
            if(loop(clazz.getInterfaces())) {
                return true;
            }
        }
        
        return false;
    }