add updater and code cleanup