重新把DM的通用模块剥离出来