添加了自定义事件，调整了文件结构