fix the observer bug