实现了大部分流程