funciones implementadas