for observer