fixed observer bug