t1: Observer refactoring