按照新的架构重写之前写的算法