修改了架构，减少了代码量