Versão final com funcoes implementadas