refining hook interface [ci skip]