updated and improved auto updater