重构代码，修改一些小bug