implementate tutte le funzioni richieste