重构了部分代码，尚未完成，下周继续