第三次重写，主要重写事件驱动
第三次重写