重构 basic和各模块