完善代码结构，修正部分bug