modified observer