fix observer, didn't work as expected