add observer.h missing file