增加分类功能，重构代码