apm testado e corrigido e funcional. melhorar codigo.