部分修改以及一些基本单元测试