Refatoração: separação de view e lógica.