diff --git a/com.minres.rdl.parent/com.minres.rdl.ui/plugin.xml b/com.minres.rdl.parent/com.minres.rdl.ui/plugin.xml
index 9d2d6fc..c19ed96 100644
--- a/com.minres.rdl.parent/com.minres.rdl.ui/plugin.xml
+++ b/com.minres.rdl.parent/com.minres.rdl.ui/plugin.xml
@@ -97,6 +97,16 @@
 			name="Templates">
 			
 		
+	    
+			
+	    
+	
+	
+		
+		
 	
 	
diff --git a/com.minres.rdl.parent/com.minres.rdl.ui/src/com/minres/rdl/ui/preferences/RdlPreferencePage.xtend b/com.minres.rdl.parent/com.minres.rdl.ui/src/com/minres/rdl/ui/preferences/RdlPreferencePage.xtend
new file mode 100644
index 0000000..45da980
--- /dev/null
+++ b/com.minres.rdl.parent/com.minres.rdl.ui/src/com/minres/rdl/ui/preferences/RdlPreferencePage.xtend
@@ -0,0 +1,29 @@
+package com.minres.rdl.ui.preferences
+
+import org.eclipse.jface.preference.FieldEditorPreferencePage
+import org.eclipse.ui.IWorkbenchPreferencePage
+import org.eclipse.ui.IWorkbench
+import org.eclipse.jface.preference.BooleanFieldEditor
+import com.minres.rdl.preferences.PreferenceConstants
+import org.eclipse.ui.preferences.ScopedPreferenceStore
+import org.eclipse.core.runtime.preferences.InstanceScope
+import org.eclipse.jface.preference.ComboFieldEditor
+
+class RdlPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+	
+	new() {
+		super(GRID)
+	    val store = new ScopedPreferenceStore(InstanceScope.INSTANCE, "com.minres.rdl.rdl");
+	    setPreferenceStore(store);
+	    setDescription("Code generator configuration options");
+	}
+	
+	override createFieldEditors() {
+    	addField(new BooleanFieldEditor(PreferenceConstants.P_GENERATE_CSV, "Generate CSV:", getFieldEditorParent()));
+    	addField(new ComboFieldEditor(PreferenceConstants.P_ADDRESSUNIT, "Address unit size", #[#["Byte (8bit)","byte"], #["Word (16bit)","word"], #["DWord (32bit)","dword"]], getFieldEditorParent()))
+	}
+	
+	override init(IWorkbench workbench) {
+	}
+	
+}
\ No newline at end of file
diff --git a/com.minres.rdl.parent/com.minres.rdl.ui/xtend-gen/com/minres/rdl/ui/preferences/RdlPreferencePage.java b/com.minres.rdl.parent/com.minres.rdl.ui/xtend-gen/com/minres/rdl/ui/preferences/RdlPreferencePage.java
new file mode 100644
index 0000000..f386630
--- /dev/null
+++ b/com.minres.rdl.parent/com.minres.rdl.ui/xtend-gen/com/minres/rdl/ui/preferences/RdlPreferencePage.java
@@ -0,0 +1,35 @@
+package com.minres.rdl.ui.preferences;
+
+import com.minres.rdl.preferences.PreferenceConstants;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+
+@SuppressWarnings("all")
+public class RdlPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+  public RdlPreferencePage() {
+    super(FieldEditorPreferencePage.GRID);
+    final ScopedPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE, "com.minres.rdl.rdl");
+    this.setPreferenceStore(store);
+    this.setDescription("Code generator configuration options");
+  }
+  
+  @Override
+  public void createFieldEditors() {
+    Composite _fieldEditorParent = this.getFieldEditorParent();
+    BooleanFieldEditor _booleanFieldEditor = new BooleanFieldEditor(PreferenceConstants.P_GENERATE_CSV, "Generate CSV:", _fieldEditorParent);
+    this.addField(_booleanFieldEditor);
+    Composite _fieldEditorParent_1 = this.getFieldEditorParent();
+    ComboFieldEditor _comboFieldEditor = new ComboFieldEditor(PreferenceConstants.P_ADDRESSUNIT, "Address unit size", new String[][] { new String[] { "Byte (8bit)", "byte" }, new String[] { "Word (16bit)", "word" }, new String[] { "DWord (32bit)", "dword" } }, _fieldEditorParent_1);
+    this.addField(_comboFieldEditor);
+  }
+  
+  @Override
+  public void init(final IWorkbench workbench) {
+  }
+}
diff --git a/com.minres.rdl.parent/com.minres.rdl/META-INF/MANIFEST.MF b/com.minres.rdl.parent/com.minres.rdl/META-INF/MANIFEST.MF
index 9d568f2..9928230 100644
--- a/com.minres.rdl.parent/com.minres.rdl/META-INF/MANIFEST.MF
+++ b/com.minres.rdl.parent/com.minres.rdl/META-INF/MANIFEST.MF
@@ -16,15 +16,16 @@ Require-Bundle: org.eclipse.xtext,
  org.eclipse.emf.common,
  org.eclipse.equinox.preferences
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: com.minres.rdl.parser.antlr,
- com.minres.rdl,
- com.minres.rdl.rdl.util,
- com.minres.rdl.rdl,
- com.minres.rdl.serializer,
+Export-Package: com.minres.rdl,
+ com.minres.rdl.generator,
+ com.minres.rdl.parser.antlr,
  com.minres.rdl.parser.antlr.internal,
- com.minres.rdl.scoping,
+ com.minres.rdl.preferences,
+ com.minres.rdl.rdl,
  com.minres.rdl.rdl.impl,
- com.minres.rdl.validation,
+ com.minres.rdl.rdl.util,
+ com.minres.rdl.scoping,
+ com.minres.rdl.serializer,
  com.minres.rdl.services,
- com.minres.rdl.generator
+ com.minres.rdl.validation
 Import-Package: org.apache.log4j
diff --git a/com.minres.rdl.parent/com.minres.rdl/model/generated/RDL.genmodel b/com.minres.rdl.parent/com.minres.rdl/model/generated/RDL.genmodel
index 9370c9f..c6cabcc 100644
--- a/com.minres.rdl.parent/com.minres.rdl/model/generated/RDL.genmodel
+++ b/com.minres.rdl.parent/com.minres.rdl/model/generated/RDL.genmodel
@@ -3,7 +3,7 @@
     xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="generated by Xtext 2.12.0" modelDirectory="/com.minres.rdl/src-gen"
     modelPluginID="com.minres.rdl" forceOverwrite="true" modelName="RDL" updateClasspath="false"
     rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" complianceLevel="6.0"
-    copyrightFields="false" runtimeVersion="2.13">
+    copyrightFields="false" runtimeVersion="2.12">
   
     
diff --git a/com.minres.rdl.parent/com.minres.rdl/plugin.xml b/com.minres.rdl.parent/com.minres.rdl/plugin.xml
index ae28d82..06e1e1b 100644
--- a/com.minres.rdl.parent/com.minres.rdl/plugin.xml
+++ b/com.minres.rdl.parent/com.minres.rdl/plugin.xml
@@ -7,4 +7,8 @@
 			class = "com.minres.rdl.rdl.RdlPackage"
 			genModel = "model/generated/RDL.genmodel" />
 	
+	
+		  
+		  
+