implementando o observer