add observer thread
update thread