Funziona e non mi sembra così complicato.
sono solo un paio di funzioni annidate.