重构一些代码