基本上是个小的重构了