added self-updater