falta verificar os tipos dos parametros das funcoes