first version with thread updater