refatoramento com o modelo indireto funcionando