fix PathObserver never unobserves bug