updater refactoring