seperate updater code