la soluzione che ho postato risolve il problema posto