adicionando o padrão observer