完成了大部分功能