做了一些尝试性的重构，不过失败了，代码还是留下来了