重构handler的处理