add hook_func