重新改造结构，新增部分方法