增加事件支持，使之可测试化