修改了不少bug