Reimplemented observers, lots of copy-paste, will require some polishing and fixing tests