tem que melhorar o código