update hook