实现了所有的功能 算作final版本2了