better updater logic