全部都改了，基本实现了所以的功能