sistemato il codice, problemi con il downcasting