B0.5: 重构部分代码；A0.5: 初始提交