ho scritto questo un po' di tempo fa, magari ti torna utile