require handler in listener