checkupdate implementation