初步完成，修复部分bug