rename _hook to _action()