Observer implementation updated