add hook for listener