修改了很多功能和bug