Código refeito e com melhorias