调整了代码的实现结构