修改整体逻辑，可读性更强