private void init() {
		// Many 64 bit data types use relative values (ibo32), while 32 bit use absolute (pointers).
		is64Bit = MSDataTypeUtils.is64Bit(program);
		isRelative = isRelative(program);
		defaultPointerSize = program.getDefaultPointerSize();
		Memory memory = program.getMemory();
		isValidAddress = memory.contains(address);
		MemoryBlock block = memory.getBlock(address);
		isInitializedAddress = (block != null) ? block.isInitialized() : false;
		isExecutableAddress = (block != null) ? block.isExecute() : false;
		AddressSetView loadedAndInitializedSet = memory.getLoadedAndInitializedAddressSet();
		isLoadedAndInitialized = loadedAndInitializedSet.contains(address);
		memBuffer = new DumbMemBufferImpl(memory, address);
		dataTypeManager = program.getDataTypeManager();
		imageBaseAddress = getProgram().getImageBase();
	}
Constructor for the abstract create data type model. This constructor expects
to create <code>count</code> number of data types at the indicated address in the program.
If more than one data type is being created, they will be in an array data type.
@param program the program where the data type would be created.
@param count the number of data types to create.
@param address the address where the data type would be created.
@param validationOptions options indicating how to validate the data type at the indicated 
address.
Ghidra/Features/MicrosoftCodeAnalyzer/src/main/java/ghidra/app/cmd/data/AbstractCreateDataTypeModel.java