implementada todas as funções. Falta depurar.