add update hook