improved hooks