restruct type map and vm