modify hook functio type