包装前的最终版（不在改善算法或做加速）
final commit version