重构了仓库类，个体类，部分独立函数