add_hook, exec_hook