算作是final版本了，几乎实现了所有的功能