fix retain in observer block