refactoring autoupdater