基本完成功能，并简单测试了