[88846] Make indentation customizable
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.xml b/bundles/org.eclipse.jst.jsp.core/plugin.xml
index f1ad265..e5cfeb3 100644
--- a/bundles/org.eclipse.jst.jsp.core/plugin.xml
+++ b/bundles/org.eclipse.jst.jsp.core/plugin.xml
@@ -145,4 +145,9 @@
 			content-type="org.eclipse.core.runtime.xml"
 			file-extensions="tld"/>
 	</extension>		 
+	
+	<!-- initialize jsp core preferences -->
+	<extension point="org.eclipse.core.runtime.preferences">
+         <initializer class="org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceInitializer"/>
+	</extension>
 </plugin>
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
index 579bb56..3905b7b 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
@@ -14,13 +14,9 @@
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
 import org.eclipse.jst.jsp.core.internal.java.search.JSPIndexManager;
 import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.osgi.framework.BundleContext;
 
 /**
@@ -53,42 +49,6 @@
 	}
 
 	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences()
-	 */
-	protected void initializeDefaultPluginPreferences() {
-		Preferences prefs = getDefault().getPluginPreferences();
-		// set model preference defaults
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true);
-		prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true);
-		prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false);
-
-		prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
-
-		String defaultEnc = CommonModelPreferenceNames.UTF_8;
-		String systemEnc = System.getProperty("file.encoding");		 //$NON-NLS-1$
-		if (systemEnc != null) {
-			defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, CommonModelPreferenceNames.UTF_8);
-		}
-		prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc);
-		
-		prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-		prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, CommonModelPreferenceNames.DEFAULT_TAB_WIDTH);
-
-		prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, true);
-		prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72);
-		prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false);
-		prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true);
-		prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false);
-
-		prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, true);
-		prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.UPPER);
-		prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER);
-	}
-
-	/* (non-Javadoc)
 	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
 	 */
 	public void start(BundleContext context) throws Exception {
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java
new file mode 100644
index 0000000..762af18
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsp.core.internal.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
+import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
+import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
+
+/**
+ * Sets default values for JSP Core preferences
+ */
+public class JSPCorePreferenceInitializer extends AbstractPreferenceInitializer {
+
+	public void initializeDefaultPreferences() {
+		IEclipsePreferences node = new DefaultScope().getNode(JSPCorePlugin.getDefault().getBundle().getSymbolicName());
+
+		// code generation preferences
+		node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
+		String defaultEnc = "ISO-8859-1";//$NON-NLS-1$
+		String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$
+		if (systemEnc != null) {
+			defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, "ISO-8859-1");//$NON-NLS-1$
+		}
+		node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc);
+		node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
+	}
+}
diff --git a/bundles/org.eclipse.wst.css.core/plugin.xml b/bundles/org.eclipse.wst.css.core/plugin.xml
index 0441d26..ef6e09b 100644
--- a/bundles/org.eclipse.wst.css.core/plugin.xml
+++ b/bundles/org.eclipse.wst.css.core/plugin.xml
@@ -92,4 +92,8 @@
 		</content-type>
    </extension>
 
+	<!-- initialize css core preferences -->
+	<extension point="org.eclipse.core.runtime.preferences">
+         <initializer class="org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceInitializer"/>
+	</extension>
 </plugin>
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePlugin.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePlugin.java
index de3169a..710b39a 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePlugin.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePlugin.java
@@ -13,11 +13,6 @@
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
-import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 
 /**
  * The main plugin class to be used in the desktop.
@@ -47,46 +42,4 @@
 	public static IWorkspace getWorkspace() {
 		return ResourcesPlugin.getWorkspace();
 	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences()
-	 */
-	protected void initializeDefaultPluginPreferences() {
-		Preferences prefs = getDefault().getPluginPreferences();
-
-		CSSPreferenceHelper.createDefaultPreferences(prefs);
-
-		// set model preference defaults
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true);
-		prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true);
-		prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false);
-
-		prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
-
-		String defaultEnc = CommonModelPreferenceNames.UTF_8;
-		String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$
-		if (systemEnc != null) {
-			defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, CommonModelPreferenceNames.UTF_8);
-		}
-		prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc);
-
-		prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-
-		prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, 4);
-
-		prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, true);
-		prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72);
-		prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false);
-		prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true);
-		prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false);
-
-		prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, false);
-		prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.LOWER);
-		prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER);
-	}
 }
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategyImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategyImpl.java
index 5c6e825..06e3e62 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategyImpl.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategyImpl.java
@@ -12,8 +12,7 @@
 
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.wst.css.core.internal.CSSCorePlugin;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSModelPreferenceNames;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 
 
 
@@ -83,12 +82,12 @@
 	 */
 	private void initialize() {
 		Preferences prefs = CSSCorePlugin.getDefault().getPluginPreferences();
-		fIdentCase = getCleanupCaseValue(prefs.getInt(CSSModelPreferenceNames.CLEANUP_CASE_IDENTIFIER));
-		fPropNameCase = getCleanupCaseValue(prefs.getInt(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_NAME));
-		fPropValueCase = getCleanupCaseValue(prefs.getInt(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_VALUE));
-		fSelectorTagCase = getCleanupCaseValue(prefs.getInt(CSSModelPreferenceNames.CLEANUP_CASE_SELECTOR));
-		fQuoteValues = prefs.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES);
-		fFormatSource = prefs.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE);
+		fIdentCase = getCleanupCaseValue(prefs.getInt(CSSCorePreferenceNames.CLEANUP_CASE_IDENTIFIER));
+		fPropNameCase = getCleanupCaseValue(prefs.getInt(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_NAME));
+		fPropValueCase = getCleanupCaseValue(prefs.getInt(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_VALUE));
+		fSelectorTagCase = getCleanupCaseValue(prefs.getInt(CSSCorePreferenceNames.CLEANUP_CASE_SELECTOR));
+		fQuoteValues = prefs.getBoolean(CSSCorePreferenceNames.QUOTE_ATTR_VALUES);
+		fFormatSource = prefs.getBoolean(CSSCorePreferenceNames.FORMAT_SOURCE);
 	}
 
 	/**
@@ -100,9 +99,9 @@
 	 */
 	private short getCleanupCaseValue(int value) {
 		switch (value) {
-			case CommonModelPreferenceNames.LOWER :
+			case CSSCorePreferenceNames.LOWER :
 				return LOWER;
-			case CommonModelPreferenceNames.UPPER :
+			case CSSCorePreferenceNames.UPPER :
 				return UPPER;
 		}
 		return ASIS;
@@ -180,12 +179,12 @@
 
 	// TODO: a saveOptions should be added to CSSCleanupStrategy interface
 	public void saveOptions() {
-		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSModelPreferenceNames.CLEANUP_CASE_IDENTIFIER, fIdentCase);
-		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_NAME, fPropNameCase);
-		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_VALUE, fPropValueCase);
-		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSModelPreferenceNames.CLEANUP_CASE_SELECTOR, fSelectorTagCase);
-		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, fQuoteValues);
-		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CommonModelPreferenceNames.FORMAT_SOURCE, fFormatSource);
+		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.CLEANUP_CASE_IDENTIFIER, fIdentCase);
+		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_NAME, fPropNameCase);
+		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_VALUE, fPropValueCase);
+		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.CLEANUP_CASE_SELECTOR, fSelectorTagCase);
+		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.QUOTE_ATTR_VALUES, fQuoteValues);
+		CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.FORMAT_SOURCE, fFormatSource);
 		CSSCorePlugin.getDefault().savePluginPreferences();
 	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSCharsetRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSCharsetRuleImpl.java
index 7748a0b..a16d26a 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSCharsetRuleImpl.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSCharsetRuleImpl.java
@@ -12,9 +12,10 @@
 
 
 
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.CSSUtil;
 
 
@@ -85,7 +86,7 @@
 		// pa_TODO css pref
 		// String quote =
 		// com.ibm.sse.editor.css.preferences.CSSPreferenceHelper.getInstance().getQuoteString((ICSSModel)getOwnerDocument().getModel());
-		String quote = CSSPreferenceHelper.getInstance().getQuoteString(null);
+		String quote = CSSCorePlugin.getDefault().getPluginPreferences().getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 		String enc = CSSUtil.extractStringContents(encoding);
 		quote = CSSUtil.detectQuote(enc, quote);
 		setAttribute(ENCODING, quote + enc + quote);
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AbstractCSSSourceFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AbstractCSSSourceFormatter.java
index d1c40d7..ba40786 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AbstractCSSSourceFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AbstractCSSSourceFormatter.java
@@ -13,12 +13,15 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.DefaultLineTracker;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.TextUtilities;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategyImpl;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
@@ -26,7 +29,6 @@
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleSheet;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.CSSLinkConverter;
 import org.eclipse.wst.css.core.internal.util.CSSUtil;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
@@ -64,15 +66,14 @@
 		if (isCleanup() && !getCleanupStrategy(node).isFormatSource())
 			return; // for not formatting case on cleanup action
 		String delim = getLineDelimiter(node);
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+
 		boolean needIndent = !(node instanceof ICSSStyleSheet);
 		if (toAppend == null) {
 			source.append(delim);
 			source.append(getIndent(node));
 			if (needIndent)
-				source.append(mgr.getIndentString());
-		}
-		else {
+				source.append(getIndentString());
+		} else {
 			String type = toAppend.getType();
 			if (type == CSSRegionContexts.CSS_COMMENT) {
 				RegionIterator it = new RegionIterator(toAppend.getDocumentRegion(), toAppend.getTextRegion());
@@ -82,42 +83,40 @@
 					source.append(delim);
 					source.append(getIndent(node));
 					if (needIndent)
-						source.append(mgr.getIndentString());
-				}
-				else {
+						source.append(getIndentString());
+				} else {
 					appendSpaceBefore(node, toAppend.getText(), source);
 				}
-			}
-			else if (type == CSSRegionContexts.CSS_DELIMITER || type == CSSRegionContexts.CSS_DECLARATION_DELIMITER) {
+			} else if (type == CSSRegionContexts.CSS_DELIMITER || type == CSSRegionContexts.CSS_DECLARATION_DELIMITER) {
 				RegionIterator it = new RegionIterator(toAppend.getDocumentRegion(), toAppend.getTextRegion());
 				it.prev();
 				ITextRegion prev = it.prev();
+
+				Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+
 				if (prev.getType() == CSSRegionContexts.CSS_S && TextUtilities.indexOf(DefaultLineTracker.DELIMITERS, it.getStructuredDocumentRegion().getText(prev), 0)[0] >= 0) {
 					source.append(delim);
 					source.append(getIndent(node));
 					if (needIndent)
-						source.append(mgr.getIndentString());
-				}
-				else if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
+						source.append(getIndentString());
+				} else if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
 					int length = getLastLineLength(node, source);
 					int append = 1;
-					if (length + append > mgr.getMaxLineWidth()) {
+					if (length + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) {
 						source.append(getLineDelimiter(node));
 						source.append(getIndent(node));
 						if (needIndent)
-							source.append(mgr.getIndentString());
+							source.append(getIndentString());
 					}
 				}
-			}
-			else if (type == CSSRegionContexts.CSS_RBRACE || type == CSSRegionContexts.CSS_LBRACE) {
+			} else if (type == CSSRegionContexts.CSS_RBRACE || type == CSSRegionContexts.CSS_LBRACE) {
 				source.append(delim);
 				source.append(getIndent(node));
-			}
-			else {
+			} else {
 				source.append(delim);
 				source.append(getIndent(node));
 				if (needIndent)
-					source.append(mgr.getIndentString());
+					source.append(getIndentString());
 			}
 		}
 	}
@@ -131,7 +130,9 @@
 		if (isCleanup() && !getCleanupStrategy(node).isFormatSource())
 			return; // for not formatting case on cleanup action
 		String type = toAppend.getType();
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+
 		boolean needIndent = !(node instanceof ICSSStyleSheet);
 		if (type == CSSRegionContexts.CSS_COMMENT) {
 			// check whether previous region is 'S' and has CR-LF
@@ -143,50 +144,45 @@
 				source.append(delim);
 				source.append(getIndent(node));
 				if (needIndent)
-					source.append(mgr.getIndentString());
-			}
-			else {
+					source.append(getIndentString());
+			} else {
 				appendSpaceBefore(node, toAppend.getText(), source);
 			}
-		}
-		else if (type == CSSRegionContexts.CSS_LBRACE && mgr.isNewLineOnOpenBrace()) {
+		} else if (type == CSSRegionContexts.CSS_LBRACE && preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE)) {
 			String delim = getLineDelimiter(node);
 			source.append(delim);
 			source.append(getIndent(node));
 			// } else if (type == CSSRegionContexts.CSS_CURLY_BRACE_CLOSE) {
 			// } else if (type == CSSRegionContexts.CSS_INCLUDES || type ==
 			// CSSRegionContexts.CSS_DASHMATCH) {
-		}
-		else if (type == CSSRegionContexts.CSS_DECLARATION_SEPARATOR && node instanceof ICSSStyleDeclItem) {
-			int n = mgr.getSpacesPreDelimiter();
-			if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
+		} else if (type == CSSRegionContexts.CSS_DECLARATION_SEPARATOR && node instanceof ICSSStyleDeclItem) {
+			int n = preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM);
+			if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
 				int length = getLastLineLength(node, source);
 				int append = 1;
-				if (length + n + append > mgr.getMaxLineWidth()) {
+				if (length + n + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) {
 					source.append(getLineDelimiter(node));
 					source.append(getIndent(node));
 					if (needIndent)
-						source.append(mgr.getIndentString());
+						source.append(getIndentString());
 					n = 0; // no space is necessary
 				}
 			}
 			// no delimiter case
 			while (n-- > 0)
 				source.append(" ");//$NON-NLS-1$
-		}
-		else if (type == CSSRegionContexts.CSS_DECLARATION_DELIMITER || type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR || type == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) {
-			if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
+		} else if (type == CSSRegionContexts.CSS_DECLARATION_DELIMITER || type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR || type == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) {
+			if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
 				int length = getLastLineLength(node, source);
 				int append = 1;
-				if (length + append > mgr.getMaxLineWidth()) {
+				if (length + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) {
 					source.append(getLineDelimiter(node));
 					source.append(getIndent(node));
 					if (needIndent)
-						source.append(mgr.getIndentString());
+						source.append(getIndentString());
 				}
 			}
-		}
-		else
+		} else
 			appendSpaceBefore(node, toAppend.getText(), source);
 	}
 
@@ -198,21 +194,21 @@
 			return;
 		if (isCleanup() && !getCleanupStrategy(node).isFormatSource())
 			return; // for not formatting case on cleanup action
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
-		if (toAppend != null && toAppend.startsWith("{") && mgr.isNewLineOnOpenBrace()) {//$NON-NLS-1$
+
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+		if (toAppend != null && toAppend.startsWith("{") && preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE)) {//$NON-NLS-1$
 			source.append(getLineDelimiter(node));
 			source.append(getIndent(node));
 			return;
-		}
-		else if (/* ! mgr.isOnePropertyPerLine() && */mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
+		} else if (/* ! mgr.isOnePropertyPerLine() && */preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
 			int n = getLastLineLength(node, source);
 			int append = (toAppend != null) ? TextUtilities.indexOf(DefaultLineTracker.DELIMITERS, toAppend, 0)[0] : 0;
 			if (toAppend != null)
 				append = (append < 0) ? toAppend.length() : append;
-			if (n + append + 1 > mgr.getMaxLineWidth()) {
+			if (n + append + 1 > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) {
 				source.append(getLineDelimiter(node));
 				source.append(getIndent(node));
-				source.append(mgr.getIndentString());
+				source.append(getIndentString());
 				return;
 			}
 		}
@@ -262,16 +258,14 @@
 			else
 				return text.toLowerCase();
 		}
-		else {
-			CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
 
-			if (mgr.isPreserveCase() || region.getType() == CSSRegionContexts.CSS_COMMENT)
-				return text;
-			else if (mgr.isIdentUpperCase())
-				return text.toUpperCase();
-			else
-				return text.toLowerCase();
-		}
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+		if (region.getType() == CSSRegionContexts.CSS_COMMENT)
+			return text;
+		else if (preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER)
+			return text.toUpperCase();
+		else
+			return text.toLowerCase();
 	}
 
 	/**
@@ -292,16 +286,14 @@
 			else
 				return text.toLowerCase();
 		}
-		else {
-			CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
 
-			if (mgr.isPreserveCase() || region.getType() != CSSRegionContexts.CSS_DECLARATION_PROPERTY)
-				return text;
-			else if (mgr.isPropNameUpperCase())
-				return text.toUpperCase();
-			else
-				return text.toLowerCase();
-		}
+		if (region.getType() != CSSRegionContexts.CSS_DECLARATION_PROPERTY)
+			return text;
+		else if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER)
+			return text.toUpperCase();
+		else
+			return text.toLowerCase();
 	}
 
 	/**
@@ -318,8 +310,7 @@
 		if (isCleanup()) {
 			if (stgy.getPropValueCase() != CSSCleanupStrategy.ASIS) {
 				if (type == CSSRegionContexts.CSS_COMMENT) {
-				}
-				else {
+				} else {
 					if (stgy.getPropValueCase() == CSSCleanupStrategy.UPPER)
 						text = text.toUpperCase();
 					else
@@ -327,20 +318,6 @@
 				}
 			}
 		}
-		else {
-			CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
-
-			if (!mgr.isPreserveCase()) {
-				if (type == CSSRegionContexts.CSS_COMMENT) {
-				}
-				else {
-					if (mgr.isPropValueUpperCase())
-						text = text.toUpperCase();
-					else
-						text = text.toLowerCase();
-				}
-			}
-		}
 		return text;
 	}
 
@@ -351,30 +328,29 @@
 		if (isFormat())
 			return region.getText();
 
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
 		String text = region.getText();
 		if (region.getType() == CSSRegionContexts.CSS_URI) {
 			String uri = CSSLinkConverter.stripFunc(text);
-			boolean upper = (type == 0) ? mgr.isIdentUpperCase() : ((type == 1) ? mgr.isPropNameUpperCase() : mgr.isPropValueUpperCase());
-			String func = mgr.isPreserveCase() ? text.substring(0, 4) : (upper ? "URL(" : "url(");//$NON-NLS-2$//$NON-NLS-1$
+
+			boolean prefIsUpper = preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER;
+			boolean upper = (type == 0) ? prefIsUpper : ((type == 1) ? preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER : preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER);
+			String func = text.substring(0, 4);
 			if (isCleanup()) {
 				upper = ((type == 0) ? stgy.getIdentCase() : ((type == 1) ? stgy.getPropNameCase() : stgy.getPropValueCase())) == CSSCleanupStrategy.UPPER;
 				func = ((type == 0) ? stgy.getIdentCase() : ((type == 1) ? stgy.getPropNameCase() : stgy.getPropValueCase())) == CSSCleanupStrategy.ASIS ? text.substring(0, 4) : (upper ? "URL(" : "url(");//$NON-NLS-2$//$NON-NLS-1$
 			}
-			if ((!isCleanup() && mgr.isQuoteInURI()) || (isCleanup() && stgy.isQuoteValues())) {
-				String quote = mgr.getQuoteString(null /* reserved parameter */);
+			if ((!isCleanup() && preferences.getBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI)) || (isCleanup() && stgy.isQuoteValues())) {
+				String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 				quote = CSSUtil.detectQuote(uri, quote);
 				text = func + quote + uri + quote + ")";//$NON-NLS-1$
-			}
-			else if (isCleanup() && !stgy.isQuoteValues()) {
+			} else if (isCleanup() && !stgy.isQuoteValues()) {
 				text = func + CSSLinkConverter.removeFunc(text) + ")";//$NON-NLS-1$
-			}
-			else {
+			} else {
 				text = func + uri + ")";//$NON-NLS-1$
 			}
-		}
-		else if (region.getType() == CSSRegionContexts.CSS_STRING && (!isCleanup() || stgy.isQuoteValues())) {
-			String quote = mgr.getQuoteString(null /* reserved parameter */);
+		} else if (region.getType() == CSSRegionContexts.CSS_STRING && (!isCleanup() || stgy.isQuoteValues())) {
+			String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 			// begginning
 			if (!text.startsWith(quote)) {
 				if (text.startsWith("\"") || text.startsWith("\'")) //$NON-NLS-1$ //$NON-NLS-2$
@@ -494,15 +470,14 @@
 						childSource = ((AbstractCSSSourceFormatter) formatter).formatProc(child);
 					else
 						childSource = ((AbstractCSSSourceFormatter) formatter).formatProc(child, overlappedRegion(region, curStart, curEnd));
-				}
-				else
+				} else
 					toFinish = true;
 			}
 			// append between children
 			if (!first) {
 				curEnd = ((IndexedRegion) child).getStartOffset(); // change
-																	// only
-																	// start
+				// only
+				// start
 				if (start < curEnd) {
 					int curStart = ((IndexedRegion) child.getPreviousSibling()).getEndOffset();
 					if (curStart < end) {
@@ -598,8 +573,7 @@
 				else
 					formatPost(node, overlappedRegion(region, curStart, curEnd), source);
 			}
-		}
-		else {
+		} else {
 			curEnd = getChildInsertPos(node);
 			if (overlaps(region, curStart, curEnd)) {
 				if (includes(region, curStart, curEnd))
@@ -634,20 +608,20 @@
 	 *            org.eclipse.wst.css.core.model.interfaces.ICSSNode
 	 */
 	protected CSSCleanupStrategy getCleanupStrategy(ICSSNode node) {
-		CSSCleanupStrategy strategy = CSSCleanupStrategyImpl.getInstance();
+		CSSCleanupStrategy currentStrategy = CSSCleanupStrategyImpl.getInstance();
 		ICSSDocument doc = node.getOwnerDocument();
 		if (doc == null)
-			return strategy;
+			return currentStrategy;
 		ICSSModel model = doc.getModel();
 		if (model == null)
-			return strategy;
+			return currentStrategy;
 		if (model.getStyleSheetType() != ICSSModel.EXTERNAL) {
 			// TODO - TRANSITION Nakamori-san, or Kit, how can we move to
 			// "HTML" plugin?
 			// can we subclass?
-			// strategy = CSSInHTMLCleanupStrategyImpl.getInstance();
+			// currentStrategy = CSSInHTMLCleanupStrategyImpl.getInstance();
 		}
-		return strategy;
+		return currentStrategy;
 	}
 
 	/**
@@ -666,12 +640,11 @@
 		if (parent == null)
 			return "";//$NON-NLS-1$
 
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
 		String parentIndent = getIndent(parent);
 		if (parent instanceof org.w3c.dom.css.CSSRule)
-			return parentIndent + mgr.getIndentString();
+			return parentIndent + getIndentString();
 		if (node.getParentNode() instanceof ICSSStyleDeclaration)
-			return parentIndent + mgr.getIndentString();
+			return parentIndent + getIndentString();
 		return parentIndent;
 	}
 
@@ -686,8 +659,8 @@
 		int n = str.lastIndexOf(delim);
 		if (n < 0)
 			return str.length();
-		else
-			return str.length() - n - delim.length();
+
+		return str.length() - n - delim.length();
 	}
 
 	/**
@@ -798,8 +771,7 @@
 			ITextRegion textRegion = it.prev();
 			IStructuredDocumentRegion documentRegion = it.getStructuredDocumentRegion();
 			ret[0] = new CompoundRegion(documentRegion, textRegion);
-		}
-		else {
+		} else {
 			ret[0] = null;
 		}
 		it.reset(model, reg.getOffset() + reg.getLength());
@@ -807,8 +779,7 @@
 			ITextRegion textRegion = it.next();
 			IStructuredDocumentRegion documentRegion = it.getStructuredDocumentRegion();
 			ret[1] = new CompoundRegion(documentRegion, textRegion);
-		}
-		else {
+		} else {
 			ret[1] = null;
 		}
 		return ret;
@@ -865,8 +836,7 @@
 			list.toArray(regions);
 			return regions;
 		}
-		else
-			return new CompoundRegion[0];
+		return new CompoundRegion[0];
 	}
 
 	/**
@@ -887,12 +857,12 @@
 				if (end < flatNode.getStartOffset(region))
 					break;
 				if (region.getType() != CSSRegionContexts.CSS_S || (isCleanup() && !stgy.isFormatSource())) // for
-																											// not
-																											// formatting
-																											// case
-																											// on
-																											// cleanup
-																											// action
+					// not
+					// formatting
+					// case
+					// on
+					// cleanup
+					// action
 					list.add(new CompoundRegion(flatNode, region));
 			}
 			flatNode = flatNode.getNext();
@@ -902,8 +872,7 @@
 			list.toArray(regions);
 			return regions;
 		}
-		else
-			return new CompoundRegion[0];
+		return new CompoundRegion[0];
 	}
 
 	/**
@@ -912,8 +881,8 @@
 	public static boolean includes(IRegion region, int start, int end) {
 		if (region == null)
 			return false;
-		else
-			return (region.getOffset() <= start) && (end <= region.getOffset() + region.getLength());
+
+		return (region.getOffset() <= start) && (end <= region.getOffset() + region.getLength());
 	}
 
 	/**
@@ -964,8 +933,26 @@
 	public static boolean overlaps(IRegion region, int start, int end) {
 		if (region == null)
 			return false;
-		else
-			return (start < region.getOffset() + region.getLength()) && (region.getOffset() < end);
+
+		return (start < region.getOffset() + region.getLength()) && (region.getOffset() < end);
 	}
 
+	private String getIndentString() {
+		String indent = ""; //$NON-NLS-1$
+
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+		if (preferences != null) {
+			String indentChar = " "; //$NON-NLS-1$
+			String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR);
+			if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) {
+				indentChar = "\t"; //$NON-NLS-1$
+			}
+			int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE);
+
+			for (int i = 0; i < indentationWidth; i++) {
+				indent += indentChar;
+			}
+		}
+		return indent;
+	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrFormatter.java
index 1aa4ff0..6401d41 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrFormatter.java
@@ -12,8 +12,11 @@
 
 
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule;
@@ -21,7 +24,6 @@
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSPageRule;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.CSSUtil;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
@@ -99,7 +101,8 @@
 			}
 		}
 		else { // generate source
-			CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+			Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+			
 			String value = attr.getValue();
 			if (value == null)
 				value = "";//$NON-NLS-1$
@@ -107,9 +110,9 @@
 			}
 			else if (attr.getName().equals(ICSSImportRule.HREF)) {
 				String uri = org.eclipse.wst.css.core.internal.util.CSSLinkConverter.stripFunc(value);
-				String func = mgr.isPropValueUpperCase() ? "URL(" : "url(";//$NON-NLS-2$//$NON-NLS-1$
-				if (mgr.isQuoteInURI()) {
-					String quote = mgr.getQuoteString(attr.getOwnerDocument().getModel());
+				String func = preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER ? "URL(" : "url(";//$NON-NLS-2$//$NON-NLS-1$
+				if (preferences.getBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI)) {
+					String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 					quote = CSSUtil.detectQuote(uri, quote);
 					value = func + quote + uri + quote + ")";//$NON-NLS-1$
 				}
@@ -118,26 +121,26 @@
 				}
 			}
 			else if (attr.getName().equals(ICSSCharsetRule.ENCODING)) {
-				String quote = mgr.getQuoteString(attr.getOwnerDocument().getModel());
+				String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 				if (!value.startsWith("\"") && !value.startsWith("\'"))//$NON-NLS-2$//$NON-NLS-1$
 					value = quote + value;
 				if (!value.endsWith("\"") && !value.endsWith("\'"))//$NON-NLS-2$//$NON-NLS-1$
 					value = value + quote;
 			}
 			else if (attr.getName().equals(ICSSStyleDeclItem.IMPORTANT)) {
-				if (mgr.isPropValueUpperCase())
+				if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER)
 					value = value.toUpperCase();
 				else
 					value = value.toLowerCase();
 			}
 			else if (attr.getName() == null || attr.getName().length() == 0) {
-				if (mgr.isIdentUpperCase())
+				if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER)
 					value = value.toUpperCase();
 				else
 					value = value.toLowerCase();
 			}
 			else {
-				if (mgr.isPropValueUpperCase())
+				if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER)
 					value = value.toUpperCase();
 				else
 					value = value.toLowerCase();
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CharsetRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CharsetRuleFormatter.java
index e25c767..7190fc9 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CharsetRuleFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CharsetRuleFormatter.java
@@ -12,13 +12,15 @@
 
 
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.CSSUtil;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
@@ -66,19 +68,16 @@
 						context.start = it.getStructuredDocumentRegion().getStartOffset(prev);
 					else
 						context.start = it.getStructuredDocumentRegion().getStartOffset(region);
-				}
-				else
+				} else
 					context.start = it.getStructuredDocumentRegion().getStartOffset(region);
 				context.end = it.getStructuredDocumentRegion().getEndOffset(region);
-			}
-			else {
+			} else {
 				IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1);
 				ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1);
 				if (region.getType() == CSSRegionContexts.CSS_S) {
 					context.start = flatNode.getStartOffset(region);
 					context.end = flatNode.getStartOffset(region);
-				}
-				else {
+				} else {
 					context.start = flatNode.getEndOffset() + 1;
 					context.end = flatNode.getEndOffset();
 				}
@@ -100,17 +99,17 @@
 		if (end > 0) { // format source
 			int start = ((IndexedRegion) node).getStartOffset();
 			formatPre(node, new FormatRegion(start, end - start), source);
-		}
-		else { // generate source
-			CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
-			String quote = mgr.getQuoteString(node.getOwnerDocument().getModel());
+		} else { // generate source
+			Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+
+			String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 			String str = CHARSET;
-			if (mgr.isIdentUpperCase())
+			if (preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER)
 				str = CHARSET.toUpperCase();
 			source.append(str);
 			String enc = ((ICSSCharsetRule) node).getEncoding();
 			quote = CSSUtil.detectQuote(enc, quote);
-			str = quote + ((enc != null) ? enc : "") + quote;//$NON-NLS-1$
+			str = quote + ((enc != null) ? enc : "") + quote + ";";//$NON-NLS-1$ //$NON-NLS-2$
 			appendSpaceBefore(node, str, source);
 			source.append(str);
 		}
@@ -126,7 +125,7 @@
 		CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy);
 		CompoundRegion[] outside = getOutsideRegions(structuredDocument, region);
 		for (int i = 0; i < regions.length; i++) {
-			if (i != 0 || needS(outside[0]))
+			if ((i != 0 || needS(outside[0])) && !regions[i].getType().equals(CSSRegionContexts.CSS_DELIMITER))
 				appendSpaceBefore(node, regions[i], source);
 			source.append(decoratedIdentRegion(regions[i], stgy));
 		}
@@ -148,18 +147,16 @@
 		ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSCharsetRule.ENCODING);
 		if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0)
 			return ((IndexedRegion) attr).getStartOffset();
-		else {
-			IndexedRegion iNode = (IndexedRegion) node;
-			if (iNode.getEndOffset() <= 0)
-				return -1;
+		IndexedRegion iNode = (IndexedRegion) node;
+		if (iNode.getEndOffset() <= 0)
+			return -1;
 
-			CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()), stgy);
-			for (int i = regions.length - 1; i >= 0; i--) {
-				if (regions[i].getType() != CSSRegionContexts.CSS_COMMENT)
-					return regions[i].getStartOffset();
-			}
-			return iNode.getEndOffset();
+		CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()), stgy);
+		for (int i = regions.length - 1; i >= 0; i--) {
+			if (regions[i].getType() != CSSRegionContexts.CSS_COMMENT)
+				return regions[i].getStartOffset();
 		}
+		return iNode.getEndOffset();
 	}
 
 	/**
@@ -171,8 +168,7 @@
 			IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1);
 			if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_DELIMITER)
 				return n - 1;
-			else
-				return n;
+			return n;
 		}
 		return -1;
 	}
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CounterFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CounterFormatter.java
index dc013e4..331dd1b 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CounterFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CounterFormatter.java
@@ -12,13 +12,15 @@
 
 
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
 import org.eclipse.wst.css.core.internal.provisional.document.ICounter;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.CSSUtil;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
@@ -45,6 +47,8 @@
 	 * 
 	 */
 	public StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext context) {
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+		
 		StringBuffer source = new StringBuffer();
 		if (node == null || attr == null)
 			return source;
@@ -57,10 +61,8 @@
 		context.start = iNode.getStartOffset();
 		context.end = iNode.getEndOffset();
 
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
-
 		ICounter counter = (ICounter) node;
-		String quote = mgr.getQuoteString(node.getOwnerDocument().getModel());
+		String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 		String sep = counter.getSeparator();
 		String ident = counter.getIdentifier();
 		String style = counter.getListStyle();
@@ -88,7 +90,7 @@
 		sep = (sep == null || sep.length() == 0) ? null : (quote + sep + quote);
 
 		String func = (sep == null || sep.length() == 0) ? "counter(" : "counters(";//$NON-NLS-2$//$NON-NLS-1$
-		if (mgr.isPropValueUpperCase()) {
+		if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) {
 			ident = ident.toUpperCase();
 			style = style.toUpperCase();
 			func = func.toUpperCase();
@@ -160,7 +162,8 @@
 	protected void formatPre(ICSSNode node, StringBuffer source) {
 		int start = ((IndexedRegion) node).getStartOffset();
 		int end = ((IndexedRegion) node).getEndOffset();
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
 		CSSCleanupStrategy stgy = getCleanupStrategy(node);
 
 		if (end > 0) { // format source
@@ -178,7 +181,7 @@
 		}
 		else { // generate source
 			ICounter counter = (ICounter) node;
-			String quote = mgr.getQuoteString(node.getOwnerDocument().getModel());
+			String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 			String separator = counter.getSeparator();
 			quote = CSSUtil.detectQuote(separator, quote);
 			String sep = (separator == null || separator.length() == 0) ? null : (quote + separator + quote);
@@ -191,7 +194,7 @@
 			if (style == null)
 				style = "";//$NON-NLS-1$
 
-			if (mgr.isPropValueUpperCase()) {
+			if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) {
 				ident = ident.toUpperCase();
 				style = style.toUpperCase();
 				func = func.toUpperCase();
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FontFaceRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FontFaceRuleFormatter.java
index 5a1437f..65a67d3 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FontFaceRuleFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FontFaceRuleFormatter.java
@@ -13,9 +13,10 @@
 
 
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 
@@ -53,9 +54,8 @@
 			}
 		}
 		else {
-			CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
 			String str = FONT_FACE;
-			if (mgr.isIdentUpperCase())
+			if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER)
 				str = FONT_FACE.toUpperCase();
 			source.append(str);
 			appendSpaceBefore(node, "{", source);//$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FunctionFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FunctionFormatter.java
index 691a7ad..29499ba 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FunctionFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FunctionFormatter.java
@@ -13,10 +13,11 @@
 
 
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
@@ -60,9 +61,8 @@
 				appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedRegion(regions[i], 2, stgy));
 			}
-		}
-		else if (prev != null && child != null) { // generate source between
-													// parameters
+		} else if (prev != null && child != null) { // generate source between
+			// parameters
 			source.append(",");//$NON-NLS-1$
 		}
 		appendSpaceBefore(node, toAppend, source);
@@ -99,8 +99,7 @@
 				appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedRegion(regions[i], 2, stgy));
 			}
-		}
-		else { // generate source
+		} else { // generate source
 			source.append(")");//$NON-NLS-1$
 		}
 	}
@@ -127,7 +126,7 @@
 	protected void formatPre(ICSSNode node, StringBuffer source) {
 		int start = ((IndexedRegion) node).getStartOffset();
 		int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node);
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+
 		if (end > 0) { // format source
 			CSSCleanupStrategy stgy = getCleanupStrategy(node);
 
@@ -138,10 +137,9 @@
 					appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedPropValueRegion(regions[i], stgy));
 			}
-		}
-		else { // generate source
+		} else { // generate source
 			String func = getFunc();
-			if (mgr.isPropValueUpperCase())
+			if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER)
 				func = func.toUpperCase();
 			source.append(func);
 		}
@@ -174,8 +172,7 @@
 			IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1);
 			if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE)
 				return n - 1;
-			else
-				return n;
+			return n;
 		}
 		return -1;
 	}
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/ImportRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/ImportRuleFormatter.java
index 5326f58..d5d3ef7 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/ImportRuleFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/ImportRuleFormatter.java
@@ -12,13 +12,15 @@
 
 
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.CSSUtil;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
@@ -67,8 +69,7 @@
 					else
 						context.start = it.getStructuredDocumentRegion().getStartOffset(region);
 					it.next();
-				}
-				else
+				} else
 					context.start = it.getStructuredDocumentRegion().getStartOffset(region);
 				it.next();
 				it.next();
@@ -78,27 +79,23 @@
 						context.end = it.getStructuredDocumentRegion().getEndOffset(next);
 					else
 						context.end = it.getStructuredDocumentRegion().getEndOffset(region);
-				}
-				else
+				} else
 					context.end = it.getStructuredDocumentRegion().getEndOffset(region);
-			}
-			else {
+			} else {
 				ICSSNode child = node.getFirstChild();
 				IStructuredDocumentRegion flatNode = null;
 				ITextRegion region = null;
 				if (child == null) {
 					flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1);
 					region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1);
-				}
-				else {
+				} else {
 					flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) child).getStartOffset() - 1);
 					region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) child).getStartOffset() - 1);
 				}
 				if (region.getType() == CSSRegionContexts.CSS_S) {
 					context.start = flatNode.getStartOffset(region);
 					context.end = flatNode.getEndOffset(region);
-				}
-				else {
+				} else {
 					context.start = flatNode.getEndOffset();
 					context.end = flatNode.getEndOffset();
 				}
@@ -139,17 +136,15 @@
 			for (int i = 0; i < regions.length; i++) {
 				appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedRegion(regions[i], 0, stgy)); // must
-																		// be
-																		// comments
+				// be
+				// comments
 			}
 			appendSpaceBefore(node, toAppend, source);
-		}
-		else if (prev != null && child != null) { // generate source : ????
+		} else if (prev != null && child != null) { // generate source : ????
 			source.append(",");//$NON-NLS-1$
 			appendSpaceBefore(node, toAppend, source);
-		}
-		else if (child != null) { // generate source : between 'url()' and
-									// media types
+		} else if (child != null) { // generate source : between 'url()' and
+			// media types
 			appendSpaceBefore(node, toAppend, source);
 		}
 	}
@@ -167,7 +162,7 @@
 			if (i != 0 || needS(outside[0]))
 				appendSpaceBefore(node, regions[i], source);
 			source.append(decoratedRegion(regions[i], 0, stgy)); // must be
-																	// comments
+			// comments
 		}
 		if (needS(outside[1])) {
 			if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength())
@@ -192,6 +187,8 @@
 				appendDelimBefore(node, regions[i], source);
 				source.append(decoratedRegion(regions[i], 0, stgy));
 			}
+		} else {
+			source.append(";"); //$NON-NLS-1$
 		}
 	}
 
@@ -205,7 +202,7 @@
 		CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy);
 		CompoundRegion[] outside = getOutsideRegions(structuredDocument, region);
 		for (int i = 0; i < regions.length; i++) {
-			if (i != 0 || needS(outside[0]))
+			if ((i != 0 || needS(outside[0])) && !regions[i].getType().equals(CSSRegionContexts.CSS_DELIMITER))
 				appendDelimBefore(node, regions[i], source);
 			source.append(decoratedRegion(regions[i], 0, stgy));
 		}
@@ -217,7 +214,7 @@
 	protected void formatPre(ICSSNode node, StringBuffer source) {
 		int start = ((IndexedRegion) node).getStartOffset();
 		int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node);
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+
 		if (end > 0) { // format source
 			CSSCleanupStrategy stgy = getCleanupStrategy(node);
 
@@ -233,15 +230,16 @@
 					appendSpaceBefore(node, regions[i], source);
 				source.append(str);
 			}
-		}
-		else { // generate source
+		} else { // generate source
+			Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+
 			String str = IMPORT;
-			if (mgr.isIdentUpperCase())
+			if (preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER)
 				str = IMPORT.toUpperCase();
-			String quote = mgr.getQuoteString(node.getOwnerDocument().getModel());
+			String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 			source.append(str);
 			str = "url(";//$NON-NLS-1$
-			if (mgr.isPropValueUpperCase())
+			if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER)
 				str = str.toUpperCase();
 			String href = ((ICSSImportRule) node).getHref();
 			quote = CSSUtil.detectQuote(href, quote);
@@ -291,32 +289,29 @@
 		ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSImportRule.HREF);
 		if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0)
 			return ((IndexedRegion) attr).getStartOffset();
-		else {
-			IndexedRegion iNode = (IndexedRegion) node;
-			if (iNode.getEndOffset() <= 0)
-				return -1;
+		IndexedRegion iNode = (IndexedRegion) node;
+		if (iNode.getEndOffset() <= 0)
+			return -1;
 
-			FormatRegion formatRegion = null;
-			ICSSNode child = node.getFirstChild();
-			if (child != null && ((IndexedRegion) child).getEndOffset() > 0)
-				formatRegion = new FormatRegion(iNode.getStartOffset(), ((IndexedRegion) child).getStartOffset() - iNode.getStartOffset());
-			else
-				formatRegion = new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset());
-			CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), formatRegion, getCleanupStrategy(node));
+		FormatRegion formatRegion = null;
+		ICSSNode child = node.getFirstChild();
+		if (child != null && ((IndexedRegion) child).getEndOffset() > 0)
+			formatRegion = new FormatRegion(iNode.getStartOffset(), ((IndexedRegion) child).getStartOffset() - iNode.getStartOffset());
+		else
+			formatRegion = new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset());
+		CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), formatRegion, getCleanupStrategy(node));
 
-			boolean atrule = false;
-			for (int i = 0; i < regions.length; i++) {
-				if (regions[i].getType() == CSSRegionContexts.CSS_IMPORT) {
-					atrule = true;
-					continue;
-				}
-				else if (!atrule)
-					continue;
-				if (regions[i].getType() != CSSRegionContexts.CSS_COMMENT)
-					return regions[i].getStartOffset();
-			}
-			return (child != null && ((IndexedRegion) child).getEndOffset() > 0) ? ((IndexedRegion) child).getStartOffset() : iNode.getEndOffset();
+		boolean atrule = false;
+		for (int i = 0; i < regions.length; i++) {
+			if (regions[i].getType() == CSSRegionContexts.CSS_IMPORT) {
+				atrule = true;
+				continue;
+			} else if (!atrule)
+				continue;
+			if (regions[i].getType() != CSSRegionContexts.CSS_COMMENT)
+				return regions[i].getStartOffset();
 		}
+		return (child != null && ((IndexedRegion) child).getEndOffset() > 0) ? ((IndexedRegion) child).getStartOffset() : iNode.getEndOffset();
 	}
 
 	/**
@@ -328,8 +323,7 @@
 			IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1);
 			if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_DELIMITER)
 				return n - 1;
-			else
-				return n;
+			return n;
 		}
 		return -1;
 	}
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaListFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaListFormatter.java
index 98f1e05..fa526f2 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaListFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaListFormatter.java
@@ -13,11 +13,12 @@
 
 
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
@@ -82,8 +83,7 @@
 					context.end = ((IndexedRegion) node).getEndOffset();
 					last = true;
 				}
-			}
-			else {
+			} else {
 				last = true;
 				IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1);
 				ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1);
@@ -113,8 +113,7 @@
 				buf.append(","); //$NON-NLS-1$
 				appendSpaceBefore(node, "", buf); //$NON-NLS-1$
 			}
-		}
-		else if (!first && !last) {
+		} else if (!first && !last) {
 			buf.append(","); //$NON-NLS-1$
 			appendSpaceBefore(node, "", buf); //$NON-NLS-1$
 		}
@@ -129,7 +128,7 @@
 
 		int start = ((IndexedRegion) node).getStartOffset();
 		int end = ((IndexedRegion) node).getEndOffset();
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+
 		if (end > 0) { // format source
 			IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
 			CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy);
@@ -138,13 +137,12 @@
 					appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedIdentRegion(regions[i], stgy));
 			}
-		}
-		else { // generate source
+		} else { // generate source
 			MediaList list = (MediaList) node;
 			int n = list.getLength();
 			for (int i = 0; i < n; i++) {
 				String medium = list.item(i);
-				if (mgr.isIdentUpperCase())
+				if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER)
 					medium = medium.toUpperCase();
 				else
 					medium = medium.toLowerCase();
@@ -187,22 +185,19 @@
 
 		if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0)
 			return ((IndexedRegion) attr).getStartOffset();
-		else {
-			IndexedRegion iNode = (IndexedRegion) node;
-			if (iNode.getEndOffset() <= 0)
-				return -1;
+		IndexedRegion iNode = (IndexedRegion) node;
+		if (iNode.getEndOffset() <= 0)
+			return -1;
 
-			/*
-			 * ITextRegion regions[] =
-			 * getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(),
-			 * new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() -
-			 * iNode.getStartOffset() + 1)); for(int i=regions.length - 1; i >=
-			 * 0; i--) { if (regions[i].getType() ==
-			 * CSSRegionContexts.IMPORTANT_SYM) return
-			 * regions[i].getStartOffset(); }
-			 */
-			return iNode.getEndOffset();
-		}
+		/*
+		 * ITextRegion regions[] =
+		 * getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(),
+		 * new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() -
+		 * iNode.getStartOffset() + 1)); for(int i=regions.length - 1; i >= 0;
+		 * i--) { if (regions[i].getType() == CSSRegionContexts.IMPORTANT_SYM)
+		 * return regions[i].getStartOffset(); }
+		 */
+		return iNode.getEndOffset();
 	}
 
 	/**
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaRuleFormatter.java
index 8fe50bb..b752532 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaRuleFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaRuleFormatter.java
@@ -13,10 +13,11 @@
 
 
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
@@ -63,71 +64,65 @@
 			}
 			// extract source
 			if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between
-																					// "@media"
-																					// and
-																					// mediatype
+				// "@media"
+				// and
+				// mediatype
 				for (int i = 0; i < regions.length; i++) {
 					appendSpaceBefore(node, regions[i], source);
 					source.append(decoratedRegion(regions[i], 0, stgy)); // must
-																			// be
-																			// comments
+					// be
+					// comments
 				}
 				appendSpaceBefore(node, toAppend, source);
-			}
-			else if (child != null && (child.getPreviousSibling() == null || child.getPreviousSibling().getNodeType() == ICSSNode.MEDIALIST_NODE)) { // between
-																																						// mediatype
-																																						// and
-																																						// the
-																																						// first
-																																						// style
-																																						// rule
+			} else if (child != null && (child.getPreviousSibling() == null || child.getPreviousSibling().getNodeType() == ICSSNode.MEDIALIST_NODE)) { // between
+				// mediatype
+				// and
+				// the
+				// first
+				// style
+				// rule
 				for (int i = 0; i < regions.length; i++) {
 					appendSpaceBefore(node, regions[i], source);
 					source.append(decoratedRegion(regions[i], 0, stgy)); // must
-																			// be
-																			// comments
+					// be
+					// comments
 				}
 				appendDelimBefore(node, null, source);
-			}
-			else { // between styles
+			} else { // between styles
 				for (int i = 0; i < regions.length; i++) {
 					appendDelimBefore(node, regions[i], source);
 					source.append(decoratedRegion(regions[i], 0, stgy)); // must
-																			// be
-																			// comments
+					// be
+					// comments
 				}
 				appendDelimBefore(node, null, source);
 			}
-		}
-		else { // source generation
+		} else { // source generation
 			if (child == null && prev != null && prev.getNodeType() != ICSSNode.MEDIALIST_NODE) { // after
-																									// the
-																									// last
-																									// style
-																									// rule
+				// the
+				// last
+				// style
+				// rule
 				appendDelimBefore(node.getParentNode(), null, source);
-			}
-			else if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between
-																						// "@media"
-																						// and
-																						// mediatype
+			} else if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between
+				// "@media"
+				// and
+				// mediatype
 				appendSpaceBefore(node, toAppend, source);
-			}
-			else if (prev != null && prev.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between
-																						// mediatype
-																						// and
-																						// the
-																						// first
-																						// style
-																						// rule
+			} else if (prev != null && prev.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between
+				// mediatype
+				// and
+				// the
+				// first
+				// style
+				// rule
 				appendSpaceBefore(node, "{", source);//$NON-NLS-1$
 				source.append("{");//$NON-NLS-1$
 				if (child != null)
 					appendDelimBefore(node, null, source);
 				else
 					appendDelimBefore(node.getParentNode(), null, source);
-			}
-			else { // normal case
+			} else { // normal case
 				appendDelimBefore(node, null, source);
 			}
 		}
@@ -144,45 +139,43 @@
 		CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy);
 		CompoundRegion[] outside = getOutsideRegions(structuredDocument, region);
 		if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between
-																				// "@media"
-																				// and
-																				// mediatype
+			// "@media"
+			// and
+			// mediatype
 			for (int i = 0; i < regions.length; i++) {
 				if (i != 0 || needS(outside[0]))
 					appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedRegion(regions[i], 0, stgy)); // must
-																		// be
-																		// comments
+				// be
+				// comments
 			}
 			if (needS(outside[1]) && ((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) {
 				appendSpaceBefore(node, toAppend, source);
 			}
-		}
-		else if (child != null && (child.getPreviousSibling() == null || child.getPreviousSibling().getNodeType() == ICSSNode.MEDIALIST_NODE)) { // between
-																																					// mediatype
-																																					// and
-																																					// the
-																																					// first
-																																					// style
-																																					// rule
+		} else if (child != null && (child.getPreviousSibling() == null || child.getPreviousSibling().getNodeType() == ICSSNode.MEDIALIST_NODE)) { // between
+			// mediatype
+			// and
+			// the
+			// first
+			// style
+			// rule
 			for (int i = 0; i < regions.length; i++) {
 				if (i != 0 || needS(outside[0]))
 					appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedRegion(regions[i], 0, stgy)); // must
-																		// be
-																		// comments
+				// be
+				// comments
 			}
 			if (needS(outside[1]) && ((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) {
 				appendDelimBefore(node, null, source);
 			}
-		}
-		else { // between styles
+		} else { // between styles
 			for (int i = 0; i < regions.length; i++) {
 				if (i != 0 || needS(outside[0]))
 					appendDelimBefore(node, regions[i], source);
 				source.append(decoratedRegion(regions[i], 0, stgy)); // must
-																		// be
-																		// comments
+				// be
+				// comments
 			}
 			if (needS(outside[1]) && ((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) {
 				appendDelimBefore(node, null, source);
@@ -206,8 +199,7 @@
 					appendDelimBefore(node, regions[i], source);
 					source.append(decoratedRegion(regions[i], 0, stgy));
 				}
-			}
-			else {
+			} else {
 				boolean bInCurlyBrace = false;
 				for (int i = 0; i < regions.length; i++) {
 					if (!bInCurlyBrace)
@@ -219,8 +211,7 @@
 						bInCurlyBrace = true;
 				}
 			}
-		}
-		else { // source generation
+		} else { // source generation
 			String delim = getLineDelimiter(node);
 			if (node.getLastChild() != null && node.getLastChild().getNodeType() == ICSSNode.MEDIALIST_NODE) {
 				appendSpaceBefore(node, "{", source);//$NON-NLS-1$
@@ -255,7 +246,7 @@
 	protected void formatPre(ICSSNode node, StringBuffer source) {
 		int start = ((IndexedRegion) node).getStartOffset();
 		int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node);
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+
 		if (end > 0) { // source formatting
 			CSSCleanupStrategy stgy = getCleanupStrategy(node);
 
@@ -266,10 +257,9 @@
 					appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedIdentRegion(regions[i], stgy));
 			}
-		}
-		else { // source generation
+		} else { // source generation
 			String str = MEDIA;
-			if (mgr.isIdentUpperCase())
+			if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER)
 				str = MEDIA.toUpperCase();
 			source.append(str);
 		}
@@ -306,8 +296,7 @@
 			IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1);
 			if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_LBRACE)
 				return n - 1;
-			else
-				return n;
+			return n;
 		}
 		return -1;
 	}
@@ -337,9 +326,9 @@
 			return 0;
 
 		if (node.getFirstChild().getNextSibling() == node.getLastChild()) { // inserted
-																			// first
-																			// style
-																			// rule
+			// first
+			// style
+			// rule
 			IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(insertPos);
 			if (flatNode == null)
 				return 0;
@@ -377,9 +366,9 @@
 			return 0;
 
 		if (node.getFirstChild().getNextSibling() == node.getLastChild()) { // inserted
-																			// first
-																			// style
-																			// rule
+			// first
+			// style
+			// rule
 			int pos = ((IndexedRegion) node.getFirstChild()).getEndOffset();
 			if (pos <= 0)
 				pos = ((IndexedRegion) node).getStartOffset() + 6 /*
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PageRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PageRuleFormatter.java
index be7c72e..63de94e 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PageRuleFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PageRuleFormatter.java
@@ -13,12 +13,13 @@
 
 
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSPageRule;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
@@ -105,7 +106,7 @@
 
 		int start = ((IndexedRegion) node).getStartOffset();
 		int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node);
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+
 		if (end > 0) { // format source
 			IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
 			CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy);
@@ -117,7 +118,7 @@
 		}
 		else { // generate source
 			String str = PAGE;
-			if (mgr.isIdentUpperCase())
+			if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER)
 				str = PAGE.toUpperCase();
 			source.append(str);
 			str = ((ICSSPageRule) node).getSelectorText();
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PrimitiveValueFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PrimitiveValueFormatter.java
index 1957e78..1855e9d 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PrimitiveValueFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PrimitiveValueFormatter.java
@@ -12,14 +12,16 @@
 
 
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.CSSUtil;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
@@ -46,14 +48,14 @@
 	protected void formatPre(ICSSNode node, StringBuffer source) {
 		int start = ((IndexedRegion) node).getStartOffset();
 		int end = ((IndexedRegion) node).getEndOffset();
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
 		CSSCleanupStrategy stgy = getCleanupStrategy(node);
 
 		if (end > 0) { // format source
 			IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
 			CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy);
 			boolean appendQuote = regions.length > 1 && node.getParentNode() instanceof ICSSStyleDeclItem && isCleanup() && getCleanupStrategy(node).isQuoteValues() && (((ICSSStyleDeclItem) node.getParentNode()).getPropertyName().equals(PropCMProperty.P_FONT) || ((ICSSStyleDeclItem) node.getParentNode()).getPropertyName().equals(PropCMProperty.P_FONT_FAMILY) || ((ICSSStyleDeclItem) node.getParentNode()).getPropertyName().equals(PropCMProperty.P_VOICE_FAMILY));
-			String quote = mgr.getQuoteString(node.getOwnerDocument().getModel());
+			String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 
 			StringBuffer strBuf = new StringBuffer();
 			boolean skipSpace = false;
@@ -82,7 +84,7 @@
 		else { // generate source
 			ICSSPrimitiveValue value = (ICSSPrimitiveValue) node;
 			short type = value.getPrimitiveType();
-			String quote = mgr.getQuoteString(node.getOwnerDocument().getModel());
+			String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 
 			String str = null;
 			switch (type) {
@@ -117,7 +119,7 @@
 				case ICSSPrimitiveValue.CSS_INHERIT_PRIMITIVE :
 					str = value.getStringValue();
 					if (str != null) {
-						if (mgr.isPropValueUpperCase())
+						if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER)
 							str = str.toUpperCase();
 						else
 							str.toLowerCase();
@@ -227,7 +229,7 @@
 					postStr = quote + ")";//$NON-NLS-1$
 					break;
 			}
-			if (mgr.isPropValueUpperCase()) {
+			if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) {
 				if (preStr != null)
 					preStr = preStr.toUpperCase();
 				if (postStr != null)
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclItemFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclItemFormatter.java
index 5c11484..5d62b29 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclItemFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclItemFormatter.java
@@ -12,14 +12,16 @@
 
 
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
@@ -45,16 +47,16 @@
 	 * 
 	 */
 	private void appendAfterColonSpace(ICSSNode node, StringBuffer source) {
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
-		int n = mgr.getSpacesPostDelimiter();
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+		int n = preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM);
 
-		if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
+		if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
 			int length = getLastLineLength(node, source);
 			int append = getFirstChildRegionLength(node);
-			if (length + n + append > mgr.getMaxLineWidth()) {
+			if (length + n + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) {
 				source.append(getLineDelimiter(node));
 				source.append(getIndent(node));
-				source.append(mgr.getIndentString());
+				source.append(getIndentString());
 				n = 0; // no space is necessary
 			}
 		}
@@ -104,19 +106,16 @@
 						context.start = it.getStructuredDocumentRegion().getStartOffset(prev);
 					else
 						context.start = it.getStructuredDocumentRegion().getStartOffset(region);
-				}
-				else
+				} else
 					context.start = it.getStructuredDocumentRegion().getStartOffset(region);
 				context.end = it.getStructuredDocumentRegion().getEndOffset(region);
-			}
-			else {
+			} else {
 				IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1);
 				ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1);
 				if (region.getType() == CSSRegionContexts.CSS_S) {
 					context.start = flatNode.getStartOffset(region);
 					context.end = flatNode.getEndOffset(region);
-				}
-				else {
+				} else {
 					context.start = flatNode.getEndOffset();
 					context.end = flatNode.getEndOffset();
 				}
@@ -152,8 +151,8 @@
 			for (int i = 0; i < regions.length; i++) {
 				appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedRegion(regions[i], 2, stgy)); // must
-																		// be
-																		// comments
+				// be
+				// comments
 			}
 		}
 		if (child != null && child instanceof ICSSPrimitiveValue) {
@@ -179,7 +178,7 @@
 			if (i != 0 || needS(outside[0]))
 				appendSpaceBefore(node, regions[i], source);
 			source.append(decoratedRegion(regions[i], 2, stgy)); // must be
-																	// comments
+			// comments
 		}
 		if (needS(outside[1])) {
 			if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) {
@@ -204,18 +203,10 @@
 				appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedIdentRegion(regions[i], stgy));
 			}
-		}
-		else { // generate source
+		} else { // generate source
 			// append "!important"
 			String priority = ((ICSSStyleDeclItem) node).getPriority();
 			if (priority != null && priority.length() > 0) {
-				CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
-				if (!mgr.isPreserveCase()) {
-					if (mgr.isIdentUpperCase())
-						priority = priority.toUpperCase();
-					else
-						priority = priority.toLowerCase();
-				}
 				appendSpaceBefore(node, priority, source);
 				source.append(priority);
 			}
@@ -244,7 +235,7 @@
 	protected void formatPre(ICSSNode node, StringBuffer source) {
 		int start = ((IndexedRegion) node).getStartOffset();
 		int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node);
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
 		if (end > 0) { // format source
 			CSSCleanupStrategy stgy = getCleanupStrategy(node);
 
@@ -255,22 +246,21 @@
 					appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedPropNameRegion(regions[i], stgy));
 			}
-		}
-		else { // generatoe source
+		} else { // generatoe source
 			ICSSStyleDeclItem item = (ICSSStyleDeclItem) node;
-			if (mgr.isPropNameUpperCase())
+			if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER)
 				source.append(item.getPropertyName().toUpperCase());
 			else
 				source.append(item.getPropertyName());
 
-			int k = mgr.getSpacesPreDelimiter();
-			if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
+			int k = preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM);
+			if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) {
 				int length = getLastLineLength(node, source);
 				int append = 1;
-				if (length + k + append > mgr.getMaxLineWidth()) {
+				if (length + k + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) {
 					source.append(getLineDelimiter(node));
 					source.append(getIndent(node));
-					source.append(mgr.getIndentString());
+					source.append(getIndentString());
 					k = 0; // no space is necessary
 				}
 			}
@@ -301,8 +291,7 @@
 		if (needS(outside[1])) {
 			if (isIncludesPreEnd(node, region) && (!isCleanup() || getCleanupStrategy(node).isFormatSource())) {
 				appendAfterColonSpace(node, source);
-			}
-			else
+			} else
 				appendSpaceBefore(node, outside[1], source);
 		}
 	}
@@ -330,18 +319,16 @@
 		ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSStyleDeclItem.IMPORTANT);
 		if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0)
 			return ((IndexedRegion) attr).getStartOffset();
-		else {
-			IndexedRegion iNode = (IndexedRegion) node;
-			if (iNode.getEndOffset() <= 0)
-				return -1;
+		IndexedRegion iNode = (IndexedRegion) node;
+		if (iNode.getEndOffset() <= 0)
+			return -1;
 
-			CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()), getCleanupStrategy(node));
-			for (int i = regions.length - 1; i >= 0; i--) {
-				if (regions[i].getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_IMPORTANT)
-					return regions[i].getStartOffset();
-			}
-			return iNode.getEndOffset();
+		CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()), getCleanupStrategy(node));
+		for (int i = regions.length - 1; i >= 0; i--) {
+			if (regions[i].getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_IMPORTANT)
+				return regions[i].getStartOffset();
 		}
+		return iNode.getEndOffset();
 	}
 
 	/**
@@ -379,8 +366,7 @@
 
 			return n;
 		}
-		else
-			return -1;
+		return -1;
 	}
 
 	/**
@@ -391,4 +377,23 @@
 			instance = new StyleDeclItemFormatter();
 		return instance;
 	}
+
+	private String getIndentString() {
+		String indent = ""; //$NON-NLS-1$
+
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+		if (preferences != null) {
+			String indentChar = " "; //$NON-NLS-1$
+			String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR);
+			if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) {
+				indentChar = "\t"; //$NON-NLS-1$
+			}
+			int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE);
+
+			for (int i = 0; i < indentationWidth; i++) {
+				indent += indentChar;
+			}
+		}
+		return indent;
+	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclarationFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclarationFormatter.java
index e5a962a..ad06635 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclarationFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclarationFormatter.java
@@ -12,11 +12,13 @@
 
 
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.IRegion;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
@@ -51,7 +53,6 @@
 		if (child == null && prev == null)
 			return;
 
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
 		if (start > 0 && start < end) { // format source
 			IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
 			// get meaning regions
@@ -68,23 +69,20 @@
 			for (int i = 0; i < regions.length; i++) {
 				appendSpaceBefore(node, regions[i], source);
 				source.append(decoratedRegion(regions[i], 0, stgy)); // must
-																		// be
-																		// comments
+				// be
+				// comments
 			}
-		}
-		else if (prev != null && child != null) { // generate source :
-													// between two
-													// declarations
+		} else if (prev != null && child != null) { // generate source :
+			// between two
+			// declarations
 			source.append(";");//$NON-NLS-1$
-		}
-		else if (prev == null) { // generate source : before the first
-									// declaration
+		} else if (prev == null) { // generate source : before the first
+			// declaration
 			org.eclipse.wst.css.core.internal.util.RegionIterator it = null;
 			if (end > 0) {
 				IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
 				it = new org.eclipse.wst.css.core.internal.util.RegionIterator(structuredDocument, end - 1);
-			}
-			else {
+			} else {
 				int pos = getChildInsertPos(node);
 				if (pos >= 0) {
 					IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
@@ -105,15 +103,13 @@
 						break;
 				}
 			}
-		}
-		else if (child == null) { // generate source : after the last
-									// declaration
+		} else if (child == null) { // generate source : after the last
+			// declaration
 			org.eclipse.wst.css.core.internal.util.RegionIterator it = null;
 			if (start > 0) {
 				IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
 				it = new org.eclipse.wst.css.core.internal.util.RegionIterator(structuredDocument, start);
-			}
-			else {
+			} else {
 				int pos = getChildInsertPos(node);
 				if (pos >= 0) {
 					IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
@@ -147,9 +143,10 @@
 				}
 				appendDelimBefore(node.getParentNode(), toAppendRegion, source);
 			}
-		}
-		else if ((prev != null || ((IndexedRegion) node).getEndOffset() <= 0)) {
-			if (mgr.isOnePropertyPerLine() && (node.getOwnerDocument() != node || !mgr.isProhibitWrapOnAttr()))
+		} else if ((prev != null || ((IndexedRegion) node).getEndOffset() <= 0)) {
+			Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+
+			if (preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE) && (node.getOwnerDocument() != node || !preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR)))
 				appendDelimBefore(node, null, source);
 			else if (prev != null || node.getOwnerDocument() != node)
 				appendSpaceBefore(node, toAppend, source);
@@ -165,18 +162,18 @@
 		IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
 		CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy);
 		CompoundRegion[] outside = getOutsideRegions(structuredDocument, region);
-		CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
+
 		for (int i = 0; i < regions.length; i++) {
 			if (i != 0 || needS(outside[0]))
 				appendSpaceBefore(node, regions[i], source);
 			source.append(decoratedRegion(regions[i], 0, stgy)); // must be
-																	// comments
+			// comments
 		}
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
 		if (needS(outside[1])) {
-			if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength() && mgr.isOnePropertyPerLine() && (node.getOwnerDocument() != node || !mgr.isProhibitWrapOnAttr())) {
+			if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength() && preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE) && (node.getOwnerDocument() != node || !preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR))) {
 				appendDelimBefore(node, null, source);
-			}
-			else
+			} else
 				appendSpaceBefore(node, toAppend, source);
 		}
 	}
@@ -192,8 +189,7 @@
 			CSSSourceGenerator formatter = getParentFormatter(node);
 			return (formatter != null) ? formatter.getChildInsertPos(node.getParentNode()) : -1;
 		}
-		else
-			return pos;
+		return pos;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleSheetFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleSheetFormatter.java
index db02fa4..5bc1984 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleSheetFormatter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleSheetFormatter.java
@@ -83,8 +83,6 @@
 		}
 		else if (prev != null && child != null) { // source generation :
 													// between two rules
-			if (prev.getNodeType() == ICSSNode.IMPORTRULE_NODE || prev.getNodeType() == ICSSNode.CHARSETRULE_NODE || prev.getNodeType() == ICSSNode.UNKNOWNRULE_NODE)
-				source.append(";");//$NON-NLS-1$
 			source.append(delim);
 			source.append(delim);
 		}
@@ -103,8 +101,6 @@
 			}
 			else if (child == null) { // source formatting : after the last
 										// rule
-				if (prev.getNodeType() == ICSSNode.IMPORTRULE_NODE || prev.getNodeType() == ICSSNode.CHARSETRULE_NODE || prev.getNodeType() == ICSSNode.UNKNOWNRULE_NODE)
-					source.append(";");//$NON-NLS-1$
 				if (start > 0 && start <= ((IndexedRegion) node).getEndOffset()) {
 					appendDelimBefore(node, null, source);
 				}
@@ -116,11 +112,6 @@
 				}
 			}
 		}
-		else if (prev != null && child == null) { // source generation :
-													// after the last rule
-			if (prev.getNodeType() == ICSSNode.IMPORTRULE_NODE || prev.getNodeType() == ICSSNode.CHARSETRULE_NODE || prev.getNodeType() == ICSSNode.UNKNOWNRULE_NODE)
-				source.append(";");//$NON-NLS-1$
-		}
 	}
 
 	/**
@@ -163,10 +154,6 @@
 				appendDelimBefore(node, null, source);
 		}
 		else { // source generation
-			ICSSNode lastChild = node.getLastChild();
-			if (lastChild != null && (lastChild.getNodeType() == ICSSNode.CHARSETRULE_NODE || lastChild.getNodeType() == ICSSNode.IMPORTRULE_NODE || lastChild.getNodeType() == ICSSNode.UNKNOWNRULE_NODE)) {
-				source.append(";");//$NON-NLS-1$
-			}
 			if (node.getOwnerDocument().getModel() != null && node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED)
 				appendDelimBefore(node, null, source);
 			return; // nothing
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java
new file mode 100644
index 0000000..fc3997d
--- /dev/null
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.css.core.internal.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
+import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
+import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
+
+/**
+ * Sets default values for CSS Core preferences
+ */
+public class CSSCorePreferenceInitializer extends AbstractPreferenceInitializer {
+
+	public void initializeDefaultPreferences() {
+		IEclipsePreferences node = new DefaultScope().getNode(CSSCorePlugin.getDefault().getBundle().getSymbolicName());
+
+		// formatting preferences
+		node.putInt(CSSCorePreferenceNames.LINE_WIDTH, 72);
+		node.putBoolean(CSSCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false);
+		node.put(CSSCorePreferenceNames.INDENTATION_CHAR, CSSCorePreferenceNames.TAB);
+		node.putInt(CSSCorePreferenceNames.INDENTATION_SIZE, 1);
+
+		// cleanup preferences
+		node.putBoolean(CSSCorePreferenceNames.QUOTE_ATTR_VALUES, true);
+		node.putBoolean(CSSCorePreferenceNames.FORMAT_SOURCE, true);
+
+		// code generation preferences
+		node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
+		String defaultEnc = "UTF-8";//$NON-NLS-1$
+		String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$
+		if (systemEnc != null) {
+			defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, "UTF-8");//$NON-NLS-1$
+		}
+		node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc);
+		node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
+		
+		// additional css core preferences
+		node.putInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM, 0);
+		node.putInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM, 1);
+		node.put(CSSCorePreferenceNames.FORMAT_QUOTE, "\"");//$NON-NLS-1$
+		node.put(CSSCorePreferenceNames.FORMAT_BETWEEN_VALUE, " ");//$NON-NLS-1$
+		node.putBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI, true);
+		node.putBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE, true);
+		node.putBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, true);
+		node.putBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE, false);
+		node.putInt(CSSCorePreferenceNames.CASE_IDENTIFIER, CSSCorePreferenceNames.UPPER);
+		node.putInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME, CSSCorePreferenceNames.LOWER);
+		node.putInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE, CSSCorePreferenceNames.LOWER);
+
+		// CSS cleanup preferences
+		node.putInt(CSSCorePreferenceNames.CLEANUP_CASE_IDENTIFIER, CSSCorePreferenceNames.ASIS);
+		node.putInt(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_NAME, CSSCorePreferenceNames.ASIS);
+		node.putInt(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_VALUE, CSSCorePreferenceNames.ASIS);
+		node.putInt(CSSCorePreferenceNames.CLEANUP_CASE_SELECTOR, CSSCorePreferenceNames.ASIS);
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java
new file mode 100644
index 0000000..d5b39fc
--- /dev/null
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.css.core.internal.preferences;
+
+/**
+ * CSS core preference keys.
+ * 
+ * @since 1.0
+ */
+public class CSSCorePreferenceNames {
+	private CSSCorePreferenceNames() {
+		// empty private constructor so users cannot instantiate class
+	}
+
+	public static final String CASE_IDENTIFIER = "identifierCase"; //$NON-NLS-1$
+	public static final String CASE_PROPERTY_NAME = "propNameCase"; //$NON-NLS-1$
+	public static final String CASE_PROPERTY_VALUE = "propValueCase"; //$NON-NLS-1$
+	public static final String FORMAT_BETWEEN_VALUE = "betweenValue"; //$NON-NLS-1$
+	public static final String FORMAT_PROP_POST_DELIM = "postDelim"; //$NON-NLS-1$
+	public static final String FORMAT_PROP_PRE_DELIM = "preDelim"; //$NON-NLS-1$
+	public static final String FORMAT_QUOTE = "quote"; //$NON-NLS-1$
+	public static final String FORMAT_QUOTE_IN_URI = "quoteInURI"; //$NON-NLS-1$
+	public static final String WRAPPING_NEWLINE_ON_OPEN_BRACE = "newLineOnOpenBrace"; //$NON-NLS-1$
+	public static final String WRAPPING_ONE_PER_LINE = "onePropertyPerLine"; //$NON-NLS-1$
+	public static final String WRAPPING_PROHIBIT_WRAP_ON_ATTR = "prohibitWrapOnAttr"; //$NON-NLS-1$
+
+	// CSS cleanup preference names
+	public static final String CLEANUP_CASE_IDENTIFIER = "cleanupIdentifierCase"; //$NON-NLS-1$
+	public static final String CLEANUP_CASE_PROPERTY_NAME = "cleanupPropNameCase"; //$NON-NLS-1$
+	public static final String CLEANUP_CASE_PROPERTY_VALUE = "cleanupPropValueCase"; //$NON-NLS-1$
+	public static final String CLEANUP_CASE_SELECTOR = "cleanupSelectorCase"; //$NON-NLS-1$
+
+	/**
+	 * The maximum width of a line before a line split is needed.
+	 * <p>
+	 * Value is of type <code>Integer</code>.
+	 * </p>
+	 */
+	public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$
+
+	/**
+	 * Indicates if all blanks lines should be cleared during formatting.
+	 * Blank lines will be kept when false.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$
+
+	/**
+	 * The number of #INDENTATION_CHAR for 1 indentation.
+	 * <p>
+	 * Value is of type <code>Integer</code>.
+	 * </p>
+	 */
+	public static final String INDENTATION_SIZE = "indentationSize";//$NON-NLS-1$
+
+	/**
+	 * The character used for indentation.
+	 * <p>
+	 * Value is of type <code>String</code>.<br />
+	 * Possible values: {TAB, SPACE}
+	 * </p>
+	 */
+	public static final String INDENTATION_CHAR = "indentationChar";//$NON-NLS-1$
+
+	/**
+	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
+	 * tab character when formatting.
+	 * 
+	 * @see #SPACE
+	 * @see #INDENTATION_CHAR
+	 */
+	public static final String TAB = "tab"; //$NON-NLS-1$
+
+	/**
+	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
+	 * space character when formatting.
+	 * 
+	 * @see #TAB
+	 * @see #INDENTATION_CHAR
+	 */
+	public static final String SPACE = "space"; //$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not to quote all attribute values during cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not cleanup processor should format source.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$
+
+	/**
+	 * Possible value for the case preferences Indicates to leave case as is.
+	 * 
+	 * @see #LOWER
+	 * @see #UPPER
+	 */
+	public static final int ASIS = 0;
+
+	/**
+	 * Possible value for the case preferences Indicates to make name
+	 * lowercase.
+	 * 
+	 * @see #ASIS
+	 * @see #UPPER
+	 */
+	public static final int LOWER = 1;
+
+	/**
+	 * Possible value for the case preferences Indicates to make name
+	 * uppercase.
+	 * 
+	 * @see #LOWER
+	 * @see #ASIS
+	 */
+	public static final int UPPER = 2;
+}
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSModelPreferenceNames.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSModelPreferenceNames.java
deleted file mode 100644
index 6027fe6..0000000
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSModelPreferenceNames.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.css.core.internal.provisional.preferences;
-
-public interface CSSModelPreferenceNames {
-	public static final String CASE_IDENTIFIER = "identifierCase"; //$NON-NLS-1$
-	public static final String CASE_PRESERVE_CASE = "preserveCase"; //$NON-NLS-1$
-	public static final String CASE_PROPERTY_NAME = "propNameCase"; //$NON-NLS-1$
-	public static final String CASE_PROPERTY_VALUE = "propValueCase"; //$NON-NLS-1$
-	public static final String FORMAT_BETWEEN_VALUE = "betweenValue"; //$NON-NLS-1$
-	public static final String FORMAT_PROP_POST_DELIM = "postDelim"; //$NON-NLS-1$
-	public static final String FORMAT_PROP_PRE_DELIM = "preDelim"; //$NON-NLS-1$
-	public static final String FORMAT_QUOTE = "quote"; //$NON-NLS-1$
-	public static final String FORMAT_QUOTE_IN_URI = "quoteInURI"; //$NON-NLS-1$
-	public static final String WRAPPING_NEWLINE_ON_OPEN_BRACE = "newLineOnOpenBrace"; //$NON-NLS-1$
-	public static final String WRAPPING_ONE_PER_LINE = "onePropertyPerLine"; //$NON-NLS-1$
-	public static final String WRAPPING_PROHIBIT_WRAP_ON_ATTR = "prohibitWrapOnAttr"; //$NON-NLS-1$
-
-	// CSS cleanup preference names
-	public static final String CLEANUP_CASE_IDENTIFIER = "cleanupIdentifierCase"; //$NON-NLS-1$
-	public static final String CLEANUP_CASE_PROPERTY_NAME = "cleanupPropNameCase"; //$NON-NLS-1$
-	public static final String CLEANUP_CASE_PROPERTY_VALUE = "cleanupPropValueCase"; //$NON-NLS-1$
-	public static final String CLEANUP_CASE_SELECTOR = "cleanupSelectorCase"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSPreferenceHelper.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSPreferenceHelper.java
index 5fe7ac5..0aa3a4a 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSPreferenceHelper.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSPreferenceHelper.java
@@ -12,12 +12,11 @@
 
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.wst.css.core.internal.CSSCorePlugin;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 
 /**
- * this a temp dummy class to map to ModelPreferences
+ * @deprecated just access preferences directly
  */
 public class CSSPreferenceHelper {
 
@@ -34,53 +33,30 @@
 	/**
 	 * 
 	 */
-	public static void createDefaultPreferences(Preferences prefs) {
-		// setBooleanAttribute(COLOR_ENABLED, true);
-		prefs.setDefault(CSSModelPreferenceNames.FORMAT_PROP_PRE_DELIM, 0);
-		prefs.setDefault(CSSModelPreferenceNames.FORMAT_PROP_POST_DELIM, 1);
-		prefs.setDefault(CSSModelPreferenceNames.FORMAT_QUOTE, "\"");//$NON-NLS-1$
-		prefs.setDefault(CSSModelPreferenceNames.FORMAT_BETWEEN_VALUE, " ");//$NON-NLS-1$
-		prefs.setDefault(CSSModelPreferenceNames.FORMAT_QUOTE_IN_URI, true);
-		prefs.setDefault(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE, true);
-		prefs.setDefault(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, true);
-		prefs.setDefault(CSSModelPreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE, false);
-		prefs.setDefault(CSSModelPreferenceNames.CASE_IDENTIFIER, CommonModelPreferenceNames.UPPER);
-		prefs.setDefault(CSSModelPreferenceNames.CASE_PROPERTY_NAME, CommonModelPreferenceNames.LOWER);
-		prefs.setDefault(CSSModelPreferenceNames.CASE_PROPERTY_VALUE, CommonModelPreferenceNames.LOWER);
-		prefs.setDefault(CSSModelPreferenceNames.CASE_PRESERVE_CASE, true);
-		// setBooleanAttribute(ASSIST_CATEGORIZE, true);
-
-		// CSS cleanup preferences
-		prefs.setDefault(CSSModelPreferenceNames.CLEANUP_CASE_IDENTIFIER, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_NAME, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_VALUE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CSSModelPreferenceNames.CLEANUP_CASE_SELECTOR, CommonModelPreferenceNames.ASIS);
-	}
-
-	/**
-	 * 
-	 */
 	public String getBetweenValueString() {
-		return getPreferences().getString(CSSModelPreferenceNames.FORMAT_BETWEEN_VALUE);
+		return getPreferences().getString(CSSCorePreferenceNames.FORMAT_BETWEEN_VALUE);
 	}
 
 	/**
 	 * 
 	 */
 	public String getIndentString() {
-		Preferences prefs = getPreferences();
-		boolean bUseTab = prefs.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS);
-		if (bUseTab) {
-			return "\t"; //$NON-NLS-1$
-		}
-		else {
-			int n = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH);
-			StringBuffer buf = new StringBuffer();
-			while (0 < n--) {
-				buf.append(" "); //$NON-NLS-1$
+		String indent = ""; //$NON-NLS-1$
+		
+		Preferences preferences = getPreferences();
+		if (preferences != null) {
+			String indentChar = " "; //$NON-NLS-1$
+			String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR);
+			if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) {
+				indentChar = "\t"; //$NON-NLS-1$
 			}
-			return buf.toString();
+			int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE);
+	
+			for (int i = 0; i < indentationWidth; i++) {
+				indent += indentChar;
+			}
 		}
+		return indent;
 	}
 
 	/**
@@ -88,7 +64,7 @@
 	 */
 	public int getMaxLineWidth() {
 		Preferences prefs = getPreferences();
-		return prefs.getInt(CommonModelPreferenceNames.LINE_WIDTH);
+		return prefs.getInt(CSSCorePreferenceNames.LINE_WIDTH);
 	}
 
 	/**
@@ -96,165 +72,148 @@
 	 */
 	public String getQuoteString(ICSSModel model) {
 		// nakamori_TODO css pref transition
-		return getPreferences().getString(CSSModelPreferenceNames.FORMAT_QUOTE);
+		return getPreferences().getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 	}
 
 	/**
 	 * 
 	 */
 	public int getSpacesPostDelimiter() {
-		return getPreferences().getInt(CSSModelPreferenceNames.FORMAT_PROP_POST_DELIM);
+		return getPreferences().getInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM);
 	}
 
 	/**
 	 * 
 	 */
 	public int getSpacesPreDelimiter() {
-		return getPreferences().getInt(CSSModelPreferenceNames.FORMAT_PROP_PRE_DELIM);
+		return getPreferences().getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM);
 	}
 
 	/**
 	 * 
 	 */
 	public boolean isIdentUpperCase() {
-		if (getPreferences().getInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.UPPER)
+		if (getPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER)
 			return true;
-		else
-			return false;
+		return false;
 	}
 
 	/**
 	 * 
 	 */
 	public boolean isNewLineOnOpenBrace() {
-		return getPreferences().getBoolean(CSSModelPreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE);
+		return getPreferences().getBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE);
 	}
 
 	/**
 	 * 
 	 */
 	public boolean isOnePropertyPerLine() {
-		return getPreferences().getBoolean(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE);
-	}
-
-	/**
-	 * 
-	 */
-	public boolean isPreserveCase() {
-		return getPreferences().getBoolean(CSSModelPreferenceNames.CASE_PRESERVE_CASE);
+		return getPreferences().getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE);
 	}
 
 	/**
 	 * 
 	 */
 	public boolean isProhibitWrapOnAttr() {
-		return getPreferences().getBoolean(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR);
+		return getPreferences().getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR);
 	}
 
 	/**
 	 * 
 	 */
 	public boolean isPropNameUpperCase() {
-		if (getPreferences().getInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.UPPER)
+		if (getPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER)
 			return true;
-		else
-			return false;
+		return false;
 	}
 
 	/**
 	 * 
 	 */
 	public boolean isPropValueUpperCase() {
-		if (getPreferences().getInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.UPPER)
+		if (getPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER)
 			return true;
-		else
-			return false;
+		return false;
 	}
 
 	/**
 	 * 
 	 */
 	public boolean isQuoteInURI() {
-		return getPreferences().getBoolean(CSSModelPreferenceNames.FORMAT_QUOTE_IN_URI);
+		return getPreferences().getBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI);
 	}
 
 	/**
 	 * 
 	 */
 	protected void setBetweenValueString(String newBetweenValueString) {
-		getPreferences().setValue(CSSModelPreferenceNames.FORMAT_BETWEEN_VALUE, newBetweenValueString);
+		getPreferences().setValue(CSSCorePreferenceNames.FORMAT_BETWEEN_VALUE, newBetweenValueString);
 	}
 
 	/**
 	 * 
 	 */
 	protected void setIdentUpperCase(boolean newIdentUpperCase) {
-		int theCase = CommonModelPreferenceNames.LOWER;
+		int theCase = CSSCorePreferenceNames.LOWER;
 		if (newIdentUpperCase)
-			theCase = CommonModelPreferenceNames.UPPER;
-		getPreferences().setValue(CSSModelPreferenceNames.CASE_IDENTIFIER, theCase);
+			theCase = CSSCorePreferenceNames.UPPER;
+		getPreferences().setValue(CSSCorePreferenceNames.CASE_IDENTIFIER, theCase);
 	}
 
 	/**
 	 * 
 	 */
 	protected void setOnePropertyPerLine(boolean newOnePropertyPerLine) {
-		getPreferences().setValue(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE, newOnePropertyPerLine);
-	}
-
-	/**
-	 * 
-	 */
-	protected void setPreserveCase(boolean newPreserveCase) {
-		getPreferences().setValue(CSSModelPreferenceNames.CASE_PRESERVE_CASE, newPreserveCase);
+		getPreferences().setValue(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE, newOnePropertyPerLine);
 	}
 
 	/**
 	 * 
 	 */
 	protected void setProhibitWrapOnAttr(boolean newProhibitWrapOnAttr) {
-		getPreferences().setValue(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, newProhibitWrapOnAttr);
+		getPreferences().setValue(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, newProhibitWrapOnAttr);
 	}
 
 	/**
 	 * 
 	 */
 	protected void setPropNameUpperCase(boolean newPropNameUpperCase) {
-		int theCase = CommonModelPreferenceNames.LOWER;
+		int theCase = CSSCorePreferenceNames.LOWER;
 		if (newPropNameUpperCase)
-			theCase = CommonModelPreferenceNames.UPPER;
-		getPreferences().setValue(CSSModelPreferenceNames.CASE_PROPERTY_NAME, theCase);
+			theCase = CSSCorePreferenceNames.UPPER;
+		getPreferences().setValue(CSSCorePreferenceNames.CASE_PROPERTY_NAME, theCase);
 	}
 
 	/**
 	 * 
 	 */
 	protected void setPropValueUpperCase(boolean newPropValueUpperCase) {
-		int theCase = CommonModelPreferenceNames.LOWER;
+		int theCase = CSSCorePreferenceNames.LOWER;
 		if (newPropValueUpperCase)
-			theCase = CommonModelPreferenceNames.UPPER;
-		getPreferences().setValue(CSSModelPreferenceNames.CASE_PROPERTY_VALUE, theCase);
+			theCase = CSSCorePreferenceNames.UPPER;
+		getPreferences().setValue(CSSCorePreferenceNames.CASE_PROPERTY_VALUE, theCase);
 	}
 
 	/**
 	 * 
 	 */
 	public void setQuoteString(String quote) {
-		getPreferences().setValue(CSSModelPreferenceNames.FORMAT_QUOTE, quote);
+		getPreferences().setValue(CSSCorePreferenceNames.FORMAT_QUOTE, quote);
 	}
 
 	/**
 	 * 
 	 */
 	public void setSpacesPostDelimiter(int num) {
-		getPreferences().setValue(CSSModelPreferenceNames.FORMAT_PROP_POST_DELIM, num);
+		getPreferences().setValue(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM, num);
 	}
 
 	/**
 	 * 
 	 */
 	public void setSpacesPreDelimiter(int num) {
-		getPreferences().setValue(CSSModelPreferenceNames.FORMAT_PROP_PRE_DELIM, num);
+		getPreferences().setValue(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM, num);
 	}
 
 	private Preferences getPreferences() {
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSLinkConverter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSLinkConverter.java
index 6890679..e5d3690 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSLinkConverter.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSLinkConverter.java
@@ -12,11 +12,13 @@
 
 
 
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.w3c.dom.css.CSSPrimitiveValue;
@@ -53,12 +55,13 @@
 	public static String addFunc(String value) {
 		if (!value.trim().toLowerCase().startsWith(URL_BEGIN)) {
 			// pa_TODO css pref
-			CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance();
-			String quote = mgr.getQuoteString(null);
+			Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+
+			String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 			value = CSSUtil.stripQuotes(value);
 			quote = CSSUtil.detectQuote(value, quote);
 			String str = URL_BEGIN;
-			if (mgr.isPropValueUpperCase())
+			if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER)
 				str = str.toUpperCase();
 			StringBuffer buf = new StringBuffer(str);
 			buf.append(quote);
@@ -67,8 +70,7 @@
 			buf.append(URL_END);
 			return buf.toString();
 		}
-		else
-			return value;
+		return value;
 	}
 
 
@@ -102,8 +104,7 @@
 	protected short preNode(ICSSNode node) {
 		if (node.getNodeType() == ICSSNode.PRIMITIVEVALUE_NODE) {
 			toAbsolute((CSSValue) node);
-		}
-		else if (node.getNodeType() == ICSSNode.IMPORTRULE_NODE) {
+		} else if (node.getNodeType() == ICSSNode.IMPORTRULE_NODE) {
 			ICSSImportRule iRule = (ICSSImportRule) node;
 			iRule.setHref(toAbsolute(addFunc(iRule.getHref())));
 		}
@@ -126,8 +127,7 @@
 			int endParenthesis = field.lastIndexOf(URL_END);
 			if (endParenthesis > url) {
 				field = field.substring(url + 4, endParenthesis);
-			}
-			else
+			} else
 				field = field.substring(url + 4);
 		}
 		return field.trim();
@@ -147,17 +147,14 @@
 			int end = field.lastIndexOf(D_QUOTE);
 			if (end > quote) {
 				field = field.substring(quote + 1, end);
-			}
-			else
+			} else
 				field = field.substring(quote + 1);
-		}
-		else if (field.toLowerCase().startsWith(S_QUOTE)) {
+		} else if (field.toLowerCase().startsWith(S_QUOTE)) {
 			int quote = field.indexOf(S_QUOTE);
 			int end = field.lastIndexOf(S_QUOTE);
 			if (end > quote) {
 				field = field.substring(quote + 1, end);
-			}
-			else
+			} else
 				field = field.substring(quote + 1);
 		}
 
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java
index 7f03969..2abfced 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java
@@ -72,6 +72,9 @@
 	public static String Formatting_UI_;
 	public static String Line_width__UI_;
 	public static String Indent_using_tabs_;
+	public static String Indent_using_spaces;
+	public static String Indentation_size;
+	public static String Indentation_size_tip;
 	public static String StructureSelectEnclosing_label;
 	public static String StructureSelectEnclosing_tooltip;
 	public static String StructureSelectEnclosing_description;
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties
index 264368b..c3ed334 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties
@@ -77,6 +77,9 @@
 Formatting_UI_=Formatting
 Line_width__UI_=Line &width:
 Indent_using_tabs_=&Indent using tabs
+Indent_using_spaces=I&ndent using spaces
+Indentation_size=In&dentation size:
+Indentation_size_tip=Indentation size
 StructureSelectEnclosing_label=&Enclosing Element
 StructureSelectEnclosing_tooltip=Expand selection to include enclosing element
 StructureSelectEnclosing_description=Expand selection to include enclosing element
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/autoedit/StructuredAutoEditStrategyCSS.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/autoedit/StructuredAutoEditStrategyCSS.java
index 23d1e2a..76ac043 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/autoedit/StructuredAutoEditStrategyCSS.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/autoedit/StructuredAutoEditStrategyCSS.java
@@ -8,12 +8,14 @@
  ****************************************************************************/
 package org.eclipse.wst.css.ui.internal.autoedit;
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.DocumentCommand;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.ui.texteditor.ITextEditorExtension3;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.css.ui.internal.Logger;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
@@ -123,7 +125,7 @@
 		if (str != null)
 			buf.append(str);
 		while (shift-- != 0)
-			buf.append(CSSPreferenceHelper.getInstance().getIndentString());
+			buf.append(getIndentString());
 		command.text = buf.toString();
 
 	}
@@ -135,8 +137,8 @@
 		if (!(textEditor instanceof ITextEditorExtension3 && ((ITextEditorExtension3) textEditor).getInsertMode() == ITextEditorExtension3.SMART_INSERT))
 			return;
 
-		//return;
-		///*
+		// return;
+		// /*
 		structuredDocument = (IStructuredDocument) document;
 
 		if (command.length == 0 && command.text != null) {
@@ -150,7 +152,7 @@
 				autoIndentAfterClose(command, CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE);
 			}
 		}
-		//*/
+		// */
 	}
 
 	/**
@@ -181,7 +183,7 @@
 				int end = findEndOfWhiteSpace(structuredDocument, start, position);
 				return structuredDocument.get(start, end - start);
 			} else if (region.getType() == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_START ||
-			//region.getType() == CSSRegionContexts.CSS_PARENTHESIS_OPEN ||
+			// region.getType() == CSSRegionContexts.CSS_PARENTHESIS_OPEN ||
 						region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION || region.getType() == CSSRegionContexts.CSS_DECLARATION_SEPARATOR) {
 				int position = flatNode.getStart() + region.getStart();
 				int line = structuredDocument.getLineOfOffset(position);
@@ -225,17 +227,17 @@
 			ITextRegion r = it.prev();
 			CompoundRegion region = new CompoundRegion(it.getStructuredDocumentRegion(), r);
 			if (region.getType() == CSSRegionContexts.CSS_LBRACE ||
-			//          region.getType() == CSSRegionContexts.CSS_RBRACE ||
+			// region.getType() == CSSRegionContexts.CSS_RBRACE ||
 						region.getType() == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_START ||
-						//          region.getType() ==
+						// region.getType() ==
 						// CSSRegionContexts.CSS_BRACKET_CLOSE ||
-						//// region.getType() ==
+						// // region.getType() ==
 						// CSSRegionContexts.CSS_PARENTHESIS_OPEN ||
-						//          region.getType() ==
+						// region.getType() ==
 						// CSSRegionContexts.CSS_PARENTHESIS_CLOSE ||
 						region.getType() == CSSRegionContexts.CSS_DELIMITER || region.getType() == CSSRegionContexts.CSS_DECLARATION_DELIMITER ||
-						//          region.getType() == CSSRegionContexts.CSS_COLON ||
-						//          region.getType() == CSSRegionContexts.CSS_COMMENT
+						// region.getType() == CSSRegionContexts.CSS_COLON ||
+						// region.getType() == CSSRegionContexts.CSS_COMMENT
 						// ||
 						region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) {
 				return region;
@@ -360,8 +362,8 @@
 			// skip to PARENTHESIS_OPEN
 			while (it.hasPrev()) {
 				region = it.prev();
-				if (//region.getType() ==
-					// CSSRegionContexts.CSS_PARENTHESIS_OPEN ||
+				if (// region.getType() ==
+				// CSSRegionContexts.CSS_PARENTHESIS_OPEN ||
 				region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION)
 					nest--;
 				else if (region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE)
@@ -497,5 +499,23 @@
 		return end;
 	}
 
-}
 
+	private String getIndentString() {
+		String indent = ""; //$NON-NLS-1$
+
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+		if (preferences != null) {
+			String indentChar = " "; //$NON-NLS-1$
+			String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR);
+			if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) {
+				indentChar = "\t"; //$NON-NLS-1$
+			}
+			int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE);
+
+			for (int i = 0; i < indentationWidth; i++) {
+				indent += indentChar;
+			}
+		}
+		return indent;
+	}
+}
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGenerator.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGenerator.java
index 7b247e6..13113b9 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGenerator.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGenerator.java
@@ -14,11 +14,13 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.contentassist.CompletionProposal;
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
 import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.css.ui.internal.image.CSSImageHelper;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
@@ -79,20 +81,20 @@
 	protected StringAndOffset generateBraces() {
 		StringBuffer buf = new StringBuffer();
 		String lineDelimiter = fContext.getStructuredDocument().getLineDelimiter();
-		CSSPreferenceHelper prefs = CSSPreferenceHelper.getInstance();
-		String indentStr = prefs.getIndentString();
-		if (prefs.isNewLineOnOpenBrace()) {
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+		String indentStr = getIndentString();
+		if (preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE)) {
 			buf.append(lineDelimiter);
 		}
 		buf.append("{");//$NON-NLS-1$
-		if (prefs.isOnePropertyPerLine()) {
+		if (preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE)) {
 			buf.append(lineDelimiter);
 			buf.append(indentStr);
 		} else {
 			buf.append(" ");//$NON-NLS-1$
 		}
 		int offset = buf.length();
-		if (prefs.isOnePropertyPerLine()) {
+		if (preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE)) {
 			buf.append(lineDelimiter);
 		} else {
 			buf.append(" ");//$NON-NLS-1$
@@ -140,14 +142,15 @@
 	 */
 	protected StringAndOffset generateURI() {
 		StringBuffer buf = new StringBuffer();
-		CSSPreferenceHelper prefs = CSSPreferenceHelper.getInstance();
+		
+		boolean isQuoteInURI = CSSCorePlugin.getDefault().getPluginPreferences().getBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI);
 		char quoteChar = getQuoteChar();
 		buf.append("url(");//$NON-NLS-1$
-		if (prefs.isQuoteInURI()) {
+		if (isQuoteInURI) {
 			buf.append(quoteChar);
 		}
 		int offset = buf.length();
-		if (prefs.isQuoteInURI()) {
+		if (isQuoteInURI) {
 			buf.append(quoteChar);
 		}
 		buf.append(")");//$NON-NLS-1$
@@ -176,8 +179,8 @@
 	 * @return char
 	 */
 	private char getQuoteChar() {
-		CSSPreferenceHelper prefs = CSSPreferenceHelper.getInstance();
-		String quoteStr = prefs.getQuoteString(fContext.getModel());
+
+		String quoteStr = CSSCorePlugin.getDefault().getPluginPreferences().getString(CSSCorePreferenceNames.FORMAT_QUOTE);
 		char quoteChar = (quoteStr != null && 0 < quoteStr.length()) ? quoteStr.charAt(0) : '"';
 		char attrQuote = fContext.getQuoteOfStyleAttribute();
 		if (attrQuote != 0) {
@@ -206,4 +209,24 @@
 		 * (text.toUpperCase().indexOf(textToReplace.toUpperCase()) == 0); }
 		 */
 	}
+	
+
+	private String getIndentString() {
+		String indent = ""; //$NON-NLS-1$
+
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
+		if (preferences != null) {
+			String indentChar = " "; //$NON-NLS-1$
+			String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR);
+			if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) {
+				indentChar = "\t"; //$NON-NLS-1$
+			}
+			int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE);
+
+			for (int i = 0; i < indentationWidth; i++) {
+				indent += indentChar;
+			}
+		}
+		return indent;
+	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForAtmarkRule.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForAtmarkRule.java
index 6164c95..06a18ba 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForAtmarkRule.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForAtmarkRule.java
@@ -14,15 +14,16 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode;
 import org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.SelectionCollector;
 import org.eclipse.wst.css.ui.internal.image.CSSImageType;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
@@ -44,7 +45,7 @@
 	 */
 	CSSProposalGeneratorForAtmarkRule(CSSContentAssistContext context) {
 		super(context);
-		fUseUpperCase = CSSPreferenceHelper.getInstance().isIdentUpperCase();
+		fUseUpperCase = CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationName.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationName.java
index 296c948..ce496eb 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationName.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationName.java
@@ -16,14 +16,15 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode;
 import org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.ui.internal.image.CSSImageType;
-import org.eclipse.wst.css.ui.internal.preferences.CSSPreferenceManager;
 
 class CSSProposalGeneratorForDeclarationName extends CSSProposalGenerator {
 
@@ -42,14 +43,13 @@
 	 */
 	protected Iterator getCandidates() {
 		List candidates = new ArrayList();
-
-		CSSPreferenceHelper prefs = CSSPreferenceHelper.getInstance();
+		Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences();
 		String preDelim = "";//$NON-NLS-1$
-		for (int i = 0; i < prefs.getSpacesPreDelimiter(); i++) {
+		for (int i = 0; i < preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM); i++) {
 			preDelim += ' ';//$NON-NLS-1$
 		}
 		String postDelim = "";//$NON-NLS-1$
-		for (int i = 0; i < prefs.getSpacesPostDelimiter(); i++) {
+		for (int i = 0; i < preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM); i++) {
 			postDelim += ' ';//$NON-NLS-1$
 		}
 
@@ -70,7 +70,7 @@
 			names.add(node);
 		}
 		sortNames(names);
-		//Collections.sort(names);
+		// Collections.sort(names);
 
 		boolean bAddColon = true;
 		if (targetNode instanceof ICSSStyleDeclItem && fContext.targetHas(CSSRegionContexts.CSS_DECLARATION_SEPARATOR)) {
@@ -81,7 +81,7 @@
 		while (i.hasNext()) {
 			CSSMMNode node = (CSSMMNode) i.next();
 			String text = node.getName();
-			text = (prefs.isPropNameUpperCase()) ? text.toUpperCase() : text.toLowerCase();
+			text = (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER) ? text.toUpperCase() : text.toLowerCase();
 			if (!isMatch(text)) {
 				continue;
 			}
@@ -96,9 +96,9 @@
 				buf.append(postDelim);
 				cursorPos += 1 + postDelim.length();
 			}
-			//			if (! (targetNode instanceof ICSSStyleDeclItem)) {
-			//				buf.append(';');//$NON-NLS-1$
-			//			}
+			// if (! (targetNode instanceof ICSSStyleDeclItem)) {
+			// buf.append(';');//$NON-NLS-1$
+			// }
 
 			CSSCACandidate item = new CSSCACandidate();
 			item.setReplacementString(buf.toString());
@@ -112,9 +112,6 @@
 	}
 
 	void sortNames(List names) {
-		CSSPreferenceManager prefMan = CSSPreferenceManager.getInstance();
-		final boolean categorize = prefMan.getContentAssistCategorize();
-
 		Collections.sort(names, new Comparator() {
 			public int compare(Object o1, Object o2) {
 				CSSMMNode node1 = (CSSMMNode) o1;
@@ -125,20 +122,18 @@
 					return -1;
 				}
 				int diff = 0;
-				if (categorize) {
-					String category1 = node1.getAttribute("category"); //$NON-NLS-1$
-					String category2 = node2.getAttribute("category"); //$NON-NLS-1$
-					if (category1 == null) {
-						if (category2 == null) {
-							diff = 0;
-						} else {
-							return 1;
-						}
-					} else if (category2 == null) {
-						return -1;
+				String category1 = node1.getAttribute("category"); //$NON-NLS-1$
+				String category2 = node2.getAttribute("category"); //$NON-NLS-1$
+				if (category1 == null) {
+					if (category2 == null) {
+						diff = 0;
 					} else {
-						diff = category1.compareTo(category2);
+						return 1;
 					}
+				} else if (category2 == null) {
+					return -1;
+				} else {
+					diff = category1.compareTo(category2);
 				}
 				if (diff == 0) {
 					String name = node1.getName();
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationValue.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationValue.java
index 08a3a30..e81b779 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationValue.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationValue.java
@@ -15,6 +15,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.metamodel.CSSMMDescriptor;
 import org.eclipse.wst.css.core.internal.metamodel.CSSMMFunction;
 import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode;
@@ -24,10 +25,10 @@
 import org.eclipse.wst.css.core.internal.metamodel.util.CSSFunctionID;
 import org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.core.internal.util.CSSUtil;
 import org.eclipse.wst.css.core.internal.util.RegionIterator;
 import org.eclipse.wst.css.ui.internal.image.CSSImageType;
@@ -50,7 +51,7 @@
 	 */
 	CSSProposalGeneratorForDeclarationValue(CSSContentAssistContext context) {
 		super(context);
-		fUseUpperCase = CSSPreferenceHelper.getInstance().isPropValueUpperCase();
+		fUseUpperCase = CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForPseudoSelector.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForPseudoSelector.java
index ecc68db..30ec915 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForPseudoSelector.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForPseudoSelector.java
@@ -17,15 +17,16 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.wst.css.core.internal.CSSCorePlugin;
 import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode;
 import org.eclipse.wst.css.core.internal.metamodel.CSSMMSelector;
 import org.eclipse.wst.css.core.internal.metamodel.util.CSSMMTypeCollector;
 import org.eclipse.wst.css.core.internal.parser.CSSRegionUtil;
 import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSPageRule;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper;
 import org.eclipse.wst.css.ui.internal.image.CSSImageType;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 
@@ -64,7 +65,7 @@
 			}
 		}
 
-		boolean useUpperCase = CSSPreferenceHelper.getInstance().isIdentUpperCase();
+		boolean useUpperCase = CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER;
 
 		List tags = getSelectorTags();
 		Collections.sort(tags);
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/CSSPreferenceManager.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/CSSPreferenceManager.java
deleted file mode 100644
index c6f0d49..0000000
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/CSSPreferenceManager.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.css.ui.internal.preferences;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.ui.internal.provisional.preferences.PreferenceManager;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * @deprecated preference management has moved to base preferences
- */
-public class CSSPreferenceManager extends PreferenceManager {
-
-	private static CSSPreferenceManager fInstance = null;
-	//
-	private final static String GROUP_COLOR = "color";//$NON-NLS-1$
-	private final static String COLOR_ENABLED = "useColor";//$NON-NLS-1$
-	//
-	private final static String GROUP_ASSIST = "contentAssist"; //$NON-NLS-1$
-	private final static String ASSIST_CATEGORIZE = "categorize"; //$NON-NLS-1$
-
-	protected Document fallbackDocument = null;
-
-	/**
-	 *  
-	 */
-	protected CSSPreferenceManager() {
-		super();
-	}
-
-	/**
-	 *  
-	 */
-	public Document createDefaultPreferences() {
-		Document doc = super.createDefaultPreferences();
-		if (doc == null) {
-			return doc;
-		}
-
-		Node preference = doc.getFirstChild();
-
-		Element color = doc.createElement(GROUP_COLOR);
-		setBooleanAttribute(color, COLOR_ENABLED, true);
-		preference.appendChild(color);
-
-		Element contentAssist = doc.createElement(GROUP_ASSIST);
-		setBooleanAttribute(contentAssist, ASSIST_CATEGORIZE, true);
-		preference.appendChild(contentAssist);
-
-		return doc;
-	}
-
-	public boolean getContentAssistCategorize() {
-		return getBooleanAttribute(getGroupElement(GROUP_ASSIST), ASSIST_CATEGORIZE);
-	}
-
-	public void setContentAssistCategorize(boolean categorize) {
-		setBooleanAttribute(getGroupElement(GROUP_ASSIST), ASSIST_CATEGORIZE, categorize);
-	}
-
-	/**
-	 *  
-	 */
-	protected boolean getBooleanAttribute(Element element, String name) {
-		String str = element.getAttribute(name);
-		if (str == null || str.length() <= 0) {
-			element = getDefaultGroupElement(element.getTagName());
-			if (element != null)
-				str = element.getAttribute(name);
-		}
-		return (str == null) ? false : str.equals(Boolean.TRUE.toString());
-	}
-
-	/**
-	 *  
-	 */
-	public boolean getColorEnabled() {
-		return getBooleanAttribute(getGroupElement(GROUP_COLOR), COLOR_ENABLED);
-	}
-
-	/**
-	 *  
-	 */
-	protected String getFilename() {
-		if (fileName == null) {
-			fileName = Platform.getStateLocation(Platform.getBundle("org.eclipse.wst.sse.core")).toString() + "/cssprefs.xml";//$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return fileName;
-	}
-
-	/**
-	 *  
-	 */
-	protected Element getGroupElement(String name) {
-		Node node = getNamedChild(getRootElement(), name);
-		return (node instanceof Element) ? (Element) node : getDefaultGroupElement(name);
-	}
-
-	/**
-	 *  
-	 */
-	protected Element getDefaultGroupElement(String name) {
-		Node node = getNamedChild(getDefaultRootElement(), name);
-		return (node instanceof Element) ? (Element) node : null;
-	}
-
-	/**
-	 *  
-	 */
-	protected Node getDefaultRootElement() {
-		if (fallbackDocument == null)
-			fallbackDocument = createDefaultPreferences();
-		return getRootElement(fallbackDocument);
-	}
-
-	/**
-	 *  
-	 */
-	public synchronized static CSSPreferenceManager getInstance() {
-		if (fInstance == null) {
-			fInstance = new CSSPreferenceManager();
-		}
-		return fInstance;
-	}
-
-	/**
-	 *  
-	 */
-	protected int getIntAttribute(Element element, String name) {
-		int value = 0;
-		try {
-			value = Integer.parseInt(element.getAttribute(name));
-		} catch (NumberFormatException e) {
-			element = getDefaultGroupElement(element.getTagName());
-			try {
-				value = Integer.parseInt(element.getAttribute(name));
-			} catch (NumberFormatException ee) {
-			}
-		}
-		return value;
-	}
-
-	/**
-	 *  
-	 */
-	protected String getStringAttribute(Element element, String name) {
-		if (element.getAttributeNode(name) == null) {
-			element = getDefaultGroupElement(element.getTagName());
-		}
-		return element.getAttribute(name);
-	}
-
-	/**
-	 *  
-	 */
-	protected void setBooleanAttribute(Element element, String name, boolean value) {
-		element.setAttribute(name, new Boolean(value).toString());
-	}
-
-	/**
-	 *  
-	 */
-	public void setColorEnabled(boolean enabled) {
-		setBooleanAttribute(getGroupElement(GROUP_COLOR), COLOR_ENABLED, enabled);
-	}
-
-	/**
-	 *  
-	 */
-	protected void setStringAttribute(Element element, String name, String value) {
-		element.setAttribute(name, value);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSColorManager.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSColorManager.java
deleted file mode 100644
index 477d47e..0000000
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSColorManager.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.css.ui.internal.preferences.ui;
-
-
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.wst.css.ui.internal.Logger;
-import org.eclipse.wst.css.ui.internal.style.IStyleConstantsCSS;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorNames;
-import org.eclipse.wst.sse.ui.internal.provisional.preferences.PreferenceManager;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @deprecated color preference management has moved to base preferences
- */
-public class CSSColorManager extends PreferenceManager {
-
-	private static CSSColorManager fInstance = null;
-
-	// names for preference elements ... non-NLS
-	public static final String FOREGROUND = "foreground";//$NON-NLS-1$
-	public static final String BACKGROUND = "background";//$NON-NLS-1$
-	public static final String BOLD = "bold";//$NON-NLS-1$
-	public static final String ITALIC = "italic";//$NON-NLS-1$
-	public static final String NAME = "name";//$NON-NLS-1$
-	public static final String COLOR = "color";//$NON-NLS-1$
-
-	private CSSColorManager() {
-		super();
-	}
-
-	protected Element addColor(Node colors, String name, String foreground, String background) {
-		Element newColor = newColor(colors.getOwnerDocument(), name, foreground, background);
-		colors.appendChild(newColor);
-		return newColor;
-	}
-
-	/**
-	 * <!ELEMENT colors (color) > <!ELEMENT color EMPTY > <!ATTLIST color name
-	 * CDATA #REQUIRED foreground CDATA #IMPLIED background CDATA #IMPLIED
-	 * bold CDATA #REQUIRED >
-	 * 
-	 */
-	public Document createDefaultPreferences() {
-		Document prefDocument = super.createDefaultPreferences();
-		if (prefDocument == null)
-			return prefDocument;
-
-		while (prefDocument.getChildNodes().getLength() > 0)
-			prefDocument.removeChild(prefDocument.getLastChild());
-		Element colors = prefDocument.createElement(getRootElementName());
-		prefDocument.appendChild(colors);
-
-		// current as of 2001-8-13
-		addColor(colors, IStyleConstantsCSS.NORMAL, null, null);
-		addColor(colors, IStyleConstantsCSS.ATMARK_RULE, getColorString(63, 127, 127), null);
-		addColor(colors, IStyleConstantsCSS.SELECTOR, getColorString(63, 127, 127), null);
-		addColor(colors, IStyleConstantsCSS.MEDIA, getColorString(42, 0, 225), null);
-		addColor(colors, IStyleConstantsCSS.COMMENT, getColorString(63, 95, 191), null);
-		addColor(colors, IStyleConstantsCSS.PROPERTY_NAME, getColorString(127, 0, 127), null);
-		addColor(colors, IStyleConstantsCSS.PROPERTY_VALUE, getColorString(42, 0, 225), null);
-		addColor(colors, IStyleConstantsCSS.URI, getColorString(42, 0, 225), null);
-		addColor(colors, IStyleConstantsCSS.STRING, getColorString(42, 0, 225), null);
-		addColor(colors, IStyleConstantsCSS.COLON, null, null);
-		addColor(colors, IStyleConstantsCSS.SEMI_COLON, null, null);
-		addColor(colors, IStyleConstantsCSS.CURLY_BRACE, null, null);
-		addColor(colors, IStyleConstantsCSS.ERROR, getColorString(191, 63, 63), null);
-
-		return prefDocument;
-	}
-
-	public RGB getBackgroundRGB(String name) {
-		Element element = getColorElement(name);
-		if (element != null) {
-			return getRGB(element.getAttribute(BACKGROUND));
-		}
-		else {
-			return new RGB(255, 255, 255);
-		}
-	}
-
-	private Element getColorElement(String name) {
-		Node colorsElement = getRootElement();
-		NodeList colors = colorsElement.getChildNodes();
-		for (int i = 0; i < colors.getLength(); i++) {
-			Node node = colors.item(i);
-			if (node.getNodeType() == Node.ELEMENT_NODE && ((Element) node).getAttribute(NAME).equals(name)) {
-				return (Element) node;
-			}
-		}
-		return null;
-	}
-
-	public static String getColorString(int r, int g, int b) {
-		return "#" + getHexString(r, 2) + getHexString(g, 2) + getHexString(b, 2);//$NON-NLS-1$
-	}
-
-	public String getFilename() {
-		if (fileName == null) {
-			fileName = Platform.getStateLocation(Platform.getBundle("org.eclipse.sse.core")).toString() + "/csssourcecolors.xml";//$NON-NLS-1$ //$NON-NLS-2$  
-		}
-		return fileName;
-	}
-
-	public RGB getForegroundRGB(String name) {
-		Element element = getColorElement(name);
-		if (element != null) {
-			return getRGB(element.getAttribute(FOREGROUND));
-		}
-		else {
-			return new RGB(0, 0, 0);
-		}
-	}
-
-	public static String getHexString(int value, int minWidth) {
-		String hexString = Integer.toHexString(value);
-		for (int i = hexString.length(); i < minWidth; i++) {
-			hexString = "0" + hexString;//$NON-NLS-1$
-		}
-		return hexString;
-	}
-
-	public synchronized static CSSColorManager getInstance() {
-		if (fInstance == null) {
-			fInstance = new CSSColorManager();
-		}
-		return fInstance;
-	}
-
-	private RGB getRGB(String rgbStr) {
-		RGB result = null;
-		if (6 < rgbStr.length() && rgbStr.charAt(0) == '#') {
-			try {
-				int r = Integer.valueOf(rgbStr.substring(1, 3), 16).intValue();
-				int g = Integer.valueOf(rgbStr.substring(3, 5), 16).intValue();
-				int b = Integer.valueOf(rgbStr.substring(5, 7), 16).intValue();
-				result = new RGB(r, g, b);
-			}
-			catch (NumberFormatException e) {
-				Logger.logException("Invalid color string " + rgbStr, e); //$NON-NLS-1$
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * The intended name for the root Element of the Document; what is also
-	 * listed within the DOCTYPE declaration.
-	 * 
-	 * @return String
-	 */
-	public String getRootElementName() {
-		return ColorNames.COLORS;
-	}
-
-	public int getStyle(String name) {
-		int style = SWT.NORMAL;
-		Element element = getColorElement(name);
-		if (element != null) {
-			if (Boolean.valueOf(element.getAttribute(BOLD)).booleanValue()) {
-				style |= SWT.BOLD;
-			}
-			if (Boolean.valueOf(element.getAttribute(ITALIC)).booleanValue()) {
-				style |= SWT.ITALIC;
-			}
-		}
-		return style;
-	}
-
-	protected Element newColor(Document doc, String name, String foreground, String background) {
-		if (doc == null || name == null || name.length() < 1)
-			return null;
-		Element newColor = doc.createElement(ColorNames.COLOR);
-		newColor.setAttribute(ColorNames.NAME, name);
-		if (foreground != null)
-			newColor.setAttribute(ColorNames.FOREGROUND, foreground);
-		if (background != null)
-			newColor.setAttribute(ColorNames.BACKGROUND, background);
-		return newColor;
-	}
-
-	protected Element newColor(Document doc, String name, String foreground, String background, boolean bold, boolean italic) {
-		Element newColor = newColor(doc, name, foreground, background);
-		if (newColor == null)
-			return null;
-		newColor.setAttribute(ColorNames.BOLD, String.valueOf(bold));
-		newColor.setAttribute(ColorNames.ITALIC, String.valueOf(italic));
-		return newColor;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSSourcePreferencePage.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSSourcePreferencePage.java
index 6e6cae0..3ba95e7 100644
--- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSSourcePreferencePage.java
+++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSSourcePreferencePage.java
@@ -18,110 +18,75 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Spinner;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.help.WorkbenchHelp;
 import org.eclipse.wst.css.core.internal.CSSCorePlugin;
-import org.eclipse.wst.css.core.internal.provisional.preferences.CSSModelPreferenceNames;
+import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames;
 import org.eclipse.wst.css.ui.internal.CSSUIMessages;
 import org.eclipse.wst.css.ui.internal.CSSUIPlugin;
 import org.eclipse.wst.css.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLSourcePreferencePage;
+import org.eclipse.wst.sse.ui.internal.preferences.ui.AbstractPreferencePage;
 
 /**
  */
-public class CSSSourcePreferencePage extends XMLSourcePreferencePage {
-	// Formatting
-	private final static String FORMATTING_GROUP = CSSUIMessages.Formatting_UI_;
-	private final static String FORMATTING_LINE_WIDTH = CSSUIMessages.Line_width__UI_; 
-	private final static String FORMATTING_INDENT_USING_TABS = CSSUIMessages.Indent_using_tabs_;
-	// CSS Formatting
-	private final static String FORMATTING_INSERT_LINE_BREAK = CSSUIMessages.PrefsLabel_WrappingInsertLineBreak; //$NON-NLS-1$
-	private final static String FORMATTING_WRAPPING_WITHOUT_ATTR = CSSUIMessages.PrefsLabel_WrappingWithoutAttr;//$NON-NLS-1$
+public class CSSSourcePreferencePage extends AbstractPreferencePage {
+	// Content Assist
+	protected Button fAutoPropose;
+	protected Label fAutoProposeLabel;
 
-	// Case
-	private final static String CASE_GROUP = CSSUIMessages.PrefsLabel_CaseGroup; //$NON-NLS-1$
-	private final static String CASE_IDENT = CSSUIMessages.PrefsLabel_CaseIdent; //$NON-NLS-1$
-	private final static String CASE_PROP_NAME = CSSUIMessages.PrefsLabel_CasePropName; //$NON-NLS-1$
-	private final static String CASE_PROP_VALUE = CSSUIMessages.PrefsLabel_CasePropValue; //$NON-NLS-1$
-	private final static String CASE_IDENT_UPPER = CSSUIMessages.PrefsLabel_CaseIdentUpper; //$NON-NLS-1$
-	private final static String CASE_IDENT_LOWER = CSSUIMessages.PrefsLabel_CaseIdentLower; //$NON-NLS-1$
-	private final static String CASE_PROP_NAME_UPPER = CSSUIMessages.PrefsLabel_CasePropNameUpper; //$NON-NLS-1$
-	private final static String CASE_PROP_NAME_LOWER = CSSUIMessages.PrefsLabel_CasePropNameLower; //$NON-NLS-1$
-	private final static String CASE_PROP_VALUE_UPPER = CSSUIMessages.PrefsLabel_CasePropValueUpper; //$NON-NLS-1$
-	private final static String CASE_PROP_VALUE_LOWER = CSSUIMessages.PrefsLabel_CasePropValueLower; //$NON-NLS-1$
-
-	// one property per one line
-	protected Button fPropertyPerLine;
-	// prohibit wrapping if style attribute
-	protected Button fNowrapAttr;
-
+	protected Text fAutoProposeText;
+	protected Button fClearAllBlankLines;
+	protected Button fIdentLower;
 	// case of output character
 	// case of identifier
 	protected Button fIdentUpper;
-	protected Button fIdentLower;
+	private Spinner fIndentationSize;
+	private Button fIndentUsingSpaces;
+	
+	private Button fIndentUsingTabs;
+	// Formatting
+	protected Label fLineWidthLabel;
+	
+	protected Text fLineWidthText;
+	// prohibit wrapping if style attribute
+	protected Button fNowrapAttr;
+	// one property per one line
+	protected Button fPropertyPerLine;
+	protected Button fPropNameLower;
+
 	// case of property name
 	protected Button fPropNameUpper;
-	protected Button fPropNameLower;
+	protected Button fPropValueLower;
 	// case of property value
 	protected Button fPropValueUpper;
-	protected Button fPropValueLower;
+	protected Button fSplitMultiAttrs;
+	private final int MAX_INDENTATION_SIZE = 16;
+	private final int MIN_INDENTATION_SIZE = 0;
 
-	protected void createContentsForFormattingGroup(Composite parent) {
-		Group formattingGroup = createGroup(parent, 2);
-		formattingGroup.setText(FORMATTING_GROUP);
-		//		// assigning one help for whole group
-		//		WorkbenchHelp.setHelp(formattingGroup,
-		// "com.ibm.etools.webedit.core.cssp1200"); //$NON-NLS-1$
 
-		fLineWidthLabel = createLabel(formattingGroup, FORMATTING_LINE_WIDTH);
-		fLineWidthText = new Text(formattingGroup, SWT.SINGLE | SWT.BORDER);
-		GridData gData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.BEGINNING);
-		gData.widthHint = 25;
-		fLineWidthText.setLayoutData(gData);
-		fLineWidthText.addModifyListener(this);
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createContents(Composite parent) {
+		Composite composite = (Composite) super.createContents(parent);
+		WorkbenchHelp.setHelp(composite, IHelpContextIds.CSS_PREFWEBX_SOURCE_HELPID);
 
-		fPropertyPerLine = createCheckBox(formattingGroup, FORMATTING_INSERT_LINE_BREAK);
-		((GridData) fPropertyPerLine.getLayoutData()).horizontalSpan = 2;
+		createContentsForFormattingGroup(composite);
+		createContentsForContentAssistGroup(composite);
+		setSize(composite);
+		loadPreferences();
 
-		fIndentUsingTabs = createCheckBox(formattingGroup, FORMATTING_INDENT_USING_TABS);
-		((GridData) fIndentUsingTabs.getLayoutData()).horizontalSpan = 2;
-
-		fNowrapAttr = createCheckBox(formattingGroup, FORMATTING_WRAPPING_WITHOUT_ATTR);
-		((GridData) fNowrapAttr.getLayoutData()).horizontalSpan = 2;
+		return composite;
 	}
 
-	protected void performDefaultsForFormattingGroup() {
-		// Formatting
-		Preferences prefs = getModelPreferences();
-		fLineWidthText.setText(prefs.getDefaultString(CommonModelPreferenceNames.LINE_WIDTH));
-		fPropertyPerLine.setSelection(prefs.getDefaultBoolean(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE));
-		fIndentUsingTabs.setSelection(prefs.getDefaultBoolean(CommonModelPreferenceNames.INDENT_USING_TABS));
-		fNowrapAttr.setSelection(prefs.getDefaultBoolean(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR));
-	}
-
-	protected void initializeValuesForFormattingGroup() {
-		// Formatting
-		Preferences prefs = getModelPreferences();
-		fLineWidthText.setText(prefs.getString(CommonModelPreferenceNames.LINE_WIDTH));
-		fPropertyPerLine.setSelection(prefs.getBoolean(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE));
-		fIndentUsingTabs.setSelection(prefs.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS));
-		fNowrapAttr.setSelection(prefs.getBoolean(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR));
-	}
-
-	protected void storeValuesForFormattingGroup() {
-		// Formatting
-		Preferences prefs = getModelPreferences();
-		prefs.setValue(CommonModelPreferenceNames.LINE_WIDTH, fLineWidthText.getText());
-		prefs.setValue(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE, fPropertyPerLine.getSelection());
-		prefs.setValue(CommonModelPreferenceNames.INDENT_USING_TABS, fIndentUsingTabs.getSelection());
-		prefs.setValue(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, fNowrapAttr.getSelection());
-	}
-
-	protected void createContentsForContentAssistGroup(Composite parent) {
+	private void createContentsForContentAssistGroup(Composite parent) {
 		// not content assist, but preferred case
 		Group caseGroup = createGroup(parent, 3);
-		caseGroup.setText(CASE_GROUP);
+		caseGroup.setText(CSSUIMessages.PrefsLabel_CaseGroup);
 		//		WorkbenchHelp.setHelp(caseGroup,
 		// "com.ibm.etools.webedit.core.cssp1400"); //$NON-NLS-1$
 
@@ -132,89 +97,79 @@
 		// use group for radio buttons so that associated label is read
 		//		Composite identGroup = createComposite(caseGroup, 1);
 		Group identGroup = createGroup(caseGroup, 1);
-		identGroup.setText(CASE_IDENT);
-		fIdentUpper = createRadioButton(identGroup, CASE_IDENT_UPPER);
-		fIdentLower = createRadioButton(identGroup, CASE_IDENT_LOWER);
+		identGroup.setText(CSSUIMessages.PrefsLabel_CaseIdent);
+		fIdentUpper = createRadioButton(identGroup, CSSUIMessages.PrefsLabel_CaseIdentUpper);
+		fIdentLower = createRadioButton(identGroup, CSSUIMessages.PrefsLabel_CaseIdentLower);
 
 		// use group for radio buttons so that associated label is read
 		//		Composite propNameGroup = createComposite(caseGroup, 1);
 		Group propNameGroup = createGroup(caseGroup, 1);
-		propNameGroup.setText(CASE_PROP_NAME);
-		fPropNameUpper = createRadioButton(propNameGroup, CASE_PROP_NAME_UPPER);
-		fPropNameLower = createRadioButton(propNameGroup, CASE_PROP_NAME_LOWER);
+		propNameGroup.setText(CSSUIMessages.PrefsLabel_CasePropName);
+		fPropNameUpper = createRadioButton(propNameGroup, CSSUIMessages.PrefsLabel_CasePropNameUpper);
+		fPropNameLower = createRadioButton(propNameGroup, CSSUIMessages.PrefsLabel_CasePropNameLower);
 
 		// use group for radio buttons so that associated label is read
 		//		Composite propValueGroup = createComposite(caseGroup, 1);
 		Group propValueGroup = createGroup(caseGroup, 1);
-		propValueGroup.setText(CASE_PROP_VALUE);
-		fPropValueUpper = createRadioButton(propValueGroup, CASE_PROP_VALUE_UPPER);
-		fPropValueLower = createRadioButton(propValueGroup, CASE_PROP_VALUE_LOWER);
+		propValueGroup.setText(CSSUIMessages.PrefsLabel_CasePropValue);
+		fPropValueUpper = createRadioButton(propValueGroup, CSSUIMessages.PrefsLabel_CasePropValueUpper);
+		fPropValueLower = createRadioButton(propValueGroup, CSSUIMessages.PrefsLabel_CasePropValueLower);
 	}
 
-	protected void performDefaultsForContentAssistGroup() {
-		// not content assist, but preferred case
-		Preferences prefs = getModelPreferences();
-		fIdentUpper.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.UPPER);
-		fIdentLower.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.LOWER);
-		fPropNameUpper.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.UPPER);
-		fPropNameLower.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.LOWER);
-		fPropValueUpper.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.UPPER);
-		fPropValueLower.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.LOWER);
+	private void createContentsForFormattingGroup(Composite parent) {
+		Group formattingGroup = createGroup(parent, 2);
+		formattingGroup.setText(CSSUIMessages.Formatting_UI_);
+		//		// assigning one help for whole group
+		//		WorkbenchHelp.setHelp(formattingGroup,
+		// "com.ibm.etools.webedit.core.cssp1200"); //$NON-NLS-1$
+
+		fLineWidthLabel = createLabel(formattingGroup, CSSUIMessages.Line_width__UI_);
+		fLineWidthText = new Text(formattingGroup, SWT.SINGLE | SWT.BORDER);
+		GridData gData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.BEGINNING);
+		gData.widthHint = 25;
+		fLineWidthText.setLayoutData(gData);
+		fLineWidthText.addModifyListener(this);
+
+		fPropertyPerLine = createCheckBox(formattingGroup, CSSUIMessages.PrefsLabel_WrappingInsertLineBreak);
+		((GridData) fPropertyPerLine.getLayoutData()).horizontalSpan = 2;
+
+		fNowrapAttr = createCheckBox(formattingGroup, CSSUIMessages.PrefsLabel_WrappingWithoutAttr);
+		((GridData) fNowrapAttr.getLayoutData()).horizontalSpan = 2;
+		
+		fIndentUsingTabs = createRadioButton(formattingGroup, CSSUIMessages.Indent_using_tabs_);
+		((GridData) fIndentUsingTabs.getLayoutData()).horizontalSpan = 2;
+		fIndentUsingSpaces = createRadioButton(formattingGroup, CSSUIMessages.Indent_using_spaces);
+		((GridData) fIndentUsingSpaces.getLayoutData()).horizontalSpan = 2;
+		
+		createLabel(formattingGroup, CSSUIMessages.Indentation_size);
+		fIndentationSize = new Spinner(formattingGroup, SWT.READ_ONLY | SWT.BORDER);
+		GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+		fIndentationSize.setLayoutData(gd);
+		fIndentationSize.setToolTipText(CSSUIMessages.Indentation_size_tip);
+		fIndentationSize.setMinimum(MIN_INDENTATION_SIZE);
+		fIndentationSize.setMaximum(MAX_INDENTATION_SIZE);
+		fIndentationSize.setIncrement(1);
+		fIndentationSize.setPageIncrement(4);
+		fIndentationSize.addModifyListener(this);
 	}
 
-	protected void initializeValuesForContentAssistGroup() {
-		// not content assist, but preferred case
-		Preferences prefs = getModelPreferences();
-		fIdentUpper.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.UPPER);
-		fIdentLower.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.LOWER);
-		fPropNameUpper.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.UPPER);
-		fPropNameLower.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.LOWER);
-		fPropValueUpper.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.UPPER);
-		fPropValueLower.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.LOWER);
-	}
-
-	protected void storeValuesForContentAssistGroup() {
-		// not content assist, but preferred case
-		Preferences prefs = getModelPreferences();
-		prefs.setValue(CSSModelPreferenceNames.CASE_IDENTIFIER, (fIdentUpper.getSelection()) ? CommonModelPreferenceNames.UPPER : CommonModelPreferenceNames.LOWER);
-		prefs.setValue(CSSModelPreferenceNames.CASE_PROPERTY_NAME, (fPropNameUpper.getSelection()) ? CommonModelPreferenceNames.UPPER : CommonModelPreferenceNames.LOWER);
-		prefs.setValue(CSSModelPreferenceNames.CASE_PROPERTY_VALUE, (fPropValueUpper.getSelection()) ? CommonModelPreferenceNames.UPPER : CommonModelPreferenceNames.LOWER);
-	}
-
-	protected void createContentsForGrammarConstraintsGroup(Composite parent) {
-		// do nothing
-	}
-
-	protected void performDefaultsForGrammarConstraintsGroup() {
-		// do nothing
-	}
-
-	protected void initializeValuesForGrammarConstraintsGroup() {
-		// do nothing
-	}
-
-	protected void storeValuesForGrammarConstraintsGroup() {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
 	 */
-	//	protected IPreferenceStore doGetPreferenceStore() {
-	//		return CSSUIPlugin.getDefault().getPreferenceStore();
-	//	}
+	protected IPreferenceStore doGetPreferenceStore() {
+		return CSSUIPlugin.getDefault().getPreferenceStore();
+	}
+
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see com.ibm.sse.editor.xml.preferences.ui.XMLFilesPreferencePage#doSavePreferenceStore()
 	 */
-	protected void doSavePreferenceStore() {
+	private void doSavePreferenceStore() {
 		CSSUIPlugin.getDefault().savePluginPreferences();
 		CSSCorePlugin.getDefault().savePluginPreferences(); // model
 	}
-
+	
 	/*
 	 * (non-Javadoc)
 	 * 
@@ -224,20 +179,110 @@
 		return CSSCorePlugin.getDefault().getPluginPreferences();
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Control c = super.createContents(parent);
-		WorkbenchHelp.setHelp(c, IHelpContextIds.CSS_PREFWEBX_SOURCE_HELPID);
-		return c;
+	protected void initializeValues() {
+		initializeValuesForFormattingGroup();
+		initializeValuesForContentAssistGroup();
 	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
-	 */
-	protected IPreferenceStore doGetPreferenceStore() {
-		return CSSUIPlugin.getDefault().getPreferenceStore();
+	
+	private void initializeValuesForContentAssistGroup() {
+		// not content assist, but preferred case
+		Preferences prefs = getModelPreferences();
+		fIdentUpper.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER);
+		fIdentLower.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.LOWER);
+		fPropNameUpper.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER);
+		fPropNameLower.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.LOWER);
+		fPropValueUpper.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER);
+		fPropValueLower.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.LOWER);
+	}
+
+	private void initializeValuesForFormattingGroup() {
+		// Formatting
+		Preferences prefs = getModelPreferences();
+		fLineWidthText.setText(prefs.getString(CSSCorePreferenceNames.LINE_WIDTH));
+		fPropertyPerLine.setSelection(prefs.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE));
+		fNowrapAttr.setSelection(prefs.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR));
+		
+		if (CSSCorePreferenceNames.TAB.equals(getModelPreferences().getString(CSSCorePreferenceNames.INDENTATION_CHAR))) {
+			fIndentUsingTabs.setSelection(true);
+			fIndentUsingSpaces.setSelection(false);
+		} else {
+			fIndentUsingSpaces.setSelection(true);
+			fIndentUsingTabs.setSelection(false);
+		}
+			
+		fIndentationSize.setSelection(getModelPreferences().getInt(CSSCorePreferenceNames.INDENTATION_SIZE));
+	}
+	
+	protected void performDefaults() {
+		performDefaultsForFormattingGroup();
+		performDefaultsForContentAssistGroup();
+
+		validateValues();
+		enableValues();
+
+		super.performDefaults();
+	}
+	
+	private void performDefaultsForContentAssistGroup() {
+		// not content assist, but preferred case
+		Preferences prefs = getModelPreferences();
+		fIdentUpper.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER);
+		fIdentLower.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.LOWER);
+		fPropNameUpper.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER);
+		fPropNameLower.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.LOWER);
+		fPropValueUpper.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER);
+		fPropValueLower.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.LOWER);
+	}
+
+	private void performDefaultsForFormattingGroup() {
+		// Formatting
+		Preferences prefs = getModelPreferences();
+		fLineWidthText.setText(prefs.getDefaultString(CSSCorePreferenceNames.LINE_WIDTH));
+		fPropertyPerLine.setSelection(prefs.getDefaultBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE));
+		fNowrapAttr.setSelection(prefs.getDefaultBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR));
+		
+		if (CSSCorePreferenceNames.TAB.equals(getModelPreferences().getDefaultString(CSSCorePreferenceNames.INDENTATION_CHAR))) {
+			fIndentUsingTabs.setSelection(true);
+			fIndentUsingSpaces.setSelection(false);
+		} else {
+			fIndentUsingSpaces.setSelection(true);
+			fIndentUsingTabs.setSelection(false);
+		}		
+		fIndentationSize.setSelection(getModelPreferences().getDefaultInt(CSSCorePreferenceNames.INDENTATION_SIZE));
+	}
+
+	public boolean performOk() {
+		boolean result = super.performOk();
+
+		doSavePreferenceStore();
+
+		return result;
+	}
+
+	protected void storeValues() {
+		storeValuesForFormattingGroup();
+		storeValuesForContentAssistGroup();
+	}
+
+	private void storeValuesForContentAssistGroup() {
+		// not content assist, but preferred case
+		Preferences prefs = getModelPreferences();
+		prefs.setValue(CSSCorePreferenceNames.CASE_IDENTIFIER, (fIdentUpper.getSelection()) ? CSSCorePreferenceNames.UPPER : CSSCorePreferenceNames.LOWER);
+		prefs.setValue(CSSCorePreferenceNames.CASE_PROPERTY_NAME, (fPropNameUpper.getSelection()) ? CSSCorePreferenceNames.UPPER : CSSCorePreferenceNames.LOWER);
+		prefs.setValue(CSSCorePreferenceNames.CASE_PROPERTY_VALUE, (fPropValueUpper.getSelection()) ? CSSCorePreferenceNames.UPPER : CSSCorePreferenceNames.LOWER);
+	}
+	private void storeValuesForFormattingGroup() {
+		// Formatting
+		Preferences prefs = getModelPreferences();
+		prefs.setValue(CSSCorePreferenceNames.LINE_WIDTH, fLineWidthText.getText());
+		prefs.setValue(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE, fPropertyPerLine.getSelection());
+		prefs.setValue(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, fNowrapAttr.getSelection());
+		
+		if (fIndentUsingTabs.getSelection()) {
+			getModelPreferences().setValue(CSSCorePreferenceNames.INDENTATION_CHAR, CSSCorePreferenceNames.TAB);
+		} else {
+			getModelPreferences().setValue(CSSCorePreferenceNames.INDENTATION_CHAR, CSSCorePreferenceNames.SPACE);
+		}
+		getModelPreferences().setValue(CSSCorePreferenceNames.INDENTATION_SIZE, fIndentationSize.getSelection());
 	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/plugin.xml b/bundles/org.eclipse.wst.html.core/plugin.xml
index 5dfccbe..7aada52 100644
--- a/bundles/org.eclipse.wst.html.core/plugin.xml
+++ b/bundles/org.eclipse.wst.html.core/plugin.xml
@@ -210,4 +210,9 @@
             systemID="http://www.wapforum.org/DTD/wml13.dtd">
       </documentType>
    </extension>
+   
+	<!-- initialize html core preferences -->
+	<extension point="org.eclipse.core.runtime.preferences">
+         <initializer class="org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceInitializer"/>
+	</extension>
 </plugin>
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java
index 55ebe6b..7f612fb 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java
@@ -13,8 +13,8 @@
 
 
 import org.eclipse.core.runtime.Preferences;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilderImpl;
 import org.w3c.dom.Document;
@@ -32,8 +32,8 @@
 	public HTMLContentBuilder(Document document) {
 		super(document);
 		Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences();
-		fTagCase = prefs.getInt(CommonModelPreferenceNames.TAG_NAME_CASE);
-		fAttrCase = prefs.getInt(CommonModelPreferenceNames.ATTR_NAME_CASE);
+		fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE);
+		fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE);
 		//	Element caseSettings = HTMLPreferenceManager.getHTMLInstance().getElement(PreferenceNames.PREFERRED_CASE);
 		//	fTagCase = caseSettings.getAttribute(PreferenceNames.TAGNAME);
 		//	fAttrCase = caseSettings.getAttribute(PreferenceNames.ATTRIBUTENAME);
@@ -45,16 +45,16 @@
 		//	if (cmnode instanceof HTMLCMNode && ((HTMLCMNode) cmnode).shouldIgnoreCase()) {
 		if (shouldIgnoreCase(cmnode)) {
 			if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) {
-				if (fTagCase == CommonModelPreferenceNames.LOWER)
+				if (fTagCase == HTMLCorePreferenceNames.LOWER)
 					name = name.toLowerCase();
-				else if (fTagCase == CommonModelPreferenceNames.UPPER)
+				else if (fTagCase == HTMLCorePreferenceNames.UPPER)
 					name = name.toUpperCase();
 				// else do nothing
 			}
 			else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
-				if (fAttrCase == CommonModelPreferenceNames.LOWER)
+				if (fAttrCase == HTMLCorePreferenceNames.LOWER)
 					name = name.toLowerCase();
-				else if (fAttrCase == CommonModelPreferenceNames.UPPER)
+				else if (fAttrCase == HTMLCorePreferenceNames.UPPER)
 					name = name.toUpperCase();
 				// else do nothing
 			}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java
index f564c3b..fc73123 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java
@@ -13,11 +13,6 @@
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.html.core.internal.provisional.HTMLFilesPreferenceNames;
-import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 
 /**
  * The main plugin class to be used in the desktop.
@@ -47,45 +42,4 @@
 	public static IWorkspace getWorkspace() {
 		return ResourcesPlugin.getWorkspace();
 	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences()
-	 */
-	protected void initializeDefaultPluginPreferences() {
-		Preferences prefs = getDefault().getPluginPreferences();
-		// set model preference defaults
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, true);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true);
-		prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true);
-		prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false);
-
-		prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
-		
-		String defaultEnc = CommonModelPreferenceNames.UTF_8;
-		String systemEnc = System.getProperty("file.encoding");	 //$NON-NLS-1$
-		if (systemEnc != null) {
-			defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, CommonModelPreferenceNames.UTF_8);
-		}
-		prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc);
-		
-		prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-		prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, CommonModelPreferenceNames.DEFAULT_TAB_WIDTH);
-
-		prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, true);
-		prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72);
-		prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false);
-		prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true);
-		prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false);
-
-		prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, true);
-		prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.LOWER);
-		prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER);
-		
-		prefs.setDefault(HTMLFilesPreferenceNames.DEFAULT_SUFFIX, HTMLFilesPreferenceNames.HTML_SUFFIX);
-		prefs.setDefault(HTMLFilesPreferenceNames.GENERATE_DOCUMENT_TYPE, true);
-		prefs.setDefault(HTMLFilesPreferenceNames.GENERATE_GENERATOR, true);
-	}
 }
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java
index 26c6b90..ea0244e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java
@@ -13,10 +13,10 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
 import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
 import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
@@ -40,15 +40,13 @@
 	
 			Preferences preferences = getModelPreferences();
 			if (preferences != null) {
-				fCleanupPreferences.setTagNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE));
-				fCleanupPreferences.setAttrNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE));
-				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS));
-				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS));
-				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES));
-				fCleanupPreferences.setFormatSource(preferences.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE));
-				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES));
-				fCleanupPreferences.setEOLCode(preferences.getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE));
+				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
+				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
+				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS));
+				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES));
+				fCleanupPreferences.setFormatSource(preferences.getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE));
+				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES));
+				fCleanupPreferences.setEOLCode(preferences.getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE));
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java
index 356d54b..70a79f0 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java
@@ -24,8 +24,8 @@
 import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
 import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
 import org.eclipse.wst.sse.core.internal.provisional.exceptions.SourceEditingRuntimeException;
@@ -133,7 +133,7 @@
 		if (element.isCommentTag())
 			return; // do nothing
 
-		int attrNameCase = CommonModelPreferenceNames.ASIS;
+		int attrNameCase = HTMLCorePreferenceNames.ASIS;
 
 		if (shouldIgnoreCase(element))
 			attrNameCase = getCleanupPreferences().getAttrNameCase();
@@ -150,9 +150,9 @@
 			//          English locale should be used to convert between uppercase and lowercase
 			//          (otherwise "link" would be converted to "LÝNK" in Turkish, where '?' in "LÝNK"
 			//          is the "I Overdot Capital" in Turkish).
-			if (attrNameCase == CommonModelPreferenceNames.LOWER)
+			if (attrNameCase == HTMLCorePreferenceNames.LOWER)
 				newAttrName = oldAttrName.toLowerCase(Locale.US);
-			else if (attrNameCase == CommonModelPreferenceNames.UPPER)
+			else if (attrNameCase == HTMLCorePreferenceNames.UPPER)
 				newAttrName = oldAttrName.toUpperCase(Locale.US);
 
 			if (newAttrName.compareTo(oldAttrName) != 0) {
@@ -171,7 +171,7 @@
 		if (element.isCommentTag())
 			return node; // do nothing
 
-		int tagNameCase = CommonModelPreferenceNames.ASIS;
+		int tagNameCase = HTMLCorePreferenceNames.ASIS;
 
 		if (shouldIgnoreCase(element))
 			tagNameCase = getCleanupPreferences().getTagNameCase();
@@ -185,9 +185,9 @@
 		//          English locale should be used to convert between uppercase and lowercase
 		//          (otherwise "link" would be converted to "LÝNK" in Turkish, where '?' in "LÝNK"
 		//          is the "I Overdot Capital" in Turkish).
-		if (tagNameCase == CommonModelPreferenceNames.LOWER)
+		if (tagNameCase == HTMLCorePreferenceNames.LOWER)
 			newTagName = oldTagName.toLowerCase(Locale.US);
-		else if (tagNameCase == CommonModelPreferenceNames.UPPER)
+		else if (tagNameCase == HTMLCorePreferenceNames.UPPER)
 			newTagName = oldTagName.toUpperCase(Locale.US);
 
 		IDOMModel structuredModel = node.getModel();
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
index 0c93f35..4207f6f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
@@ -19,8 +19,8 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.wst.html.core.internal.cleanup.HTMLCleanupProcessorImpl;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
@@ -68,12 +68,12 @@
 		pref.setQuoteAttrValues(true);
 		pref.setFormatSource(false);
 		if (model.getDocument().isXMLType()) { // XHTML
-			pref.setTagNameCase(CommonModelPreferenceNames.LOWER);
-			pref.setAttrNameCase(CommonModelPreferenceNames.LOWER);
+			pref.setTagNameCase(HTMLCorePreferenceNames.LOWER);
+			pref.setAttrNameCase(HTMLCorePreferenceNames.LOWER);
 		}
 		else {
-			pref.setTagNameCase(CommonModelPreferenceNames.ASIS);
-			pref.setAttrNameCase(CommonModelPreferenceNames.ASIS);
+			pref.setTagNameCase(HTMLCorePreferenceNames.ASIS);
+			pref.setAttrNameCase(HTMLCorePreferenceNames.ASIS);
 		}
 
 		processor.cleanupModel(model);
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java
index 3bb28b2..840f8cc 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
 import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
 import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
@@ -23,7 +23,7 @@
 
 /**
  */
-public class HTMLDocumentTypeAdapterFactory implements INodeAdapterFactory, Preferences.IPropertyChangeListener, CommonModelPreferenceNames {
+public class HTMLDocumentTypeAdapterFactory implements INodeAdapterFactory, Preferences.IPropertyChangeListener {
 
 	private int tagNameCase = DocumentTypeAdapter.UPPER_CASE;
 	private int attrNameCase = DocumentTypeAdapter.LOWER_CASE;
@@ -97,7 +97,7 @@
 		if (property == null)
 			return;
 
-		if (property.equals(TAG_NAME_CASE) || property.equals(ATTR_NAME_CASE)) {
+		if (property.equals(HTMLCorePreferenceNames.TAG_NAME_CASE) || property.equals(HTMLCorePreferenceNames.ATTR_NAME_CASE)) {
 			updateCases();
 		}
 	}
@@ -111,10 +111,10 @@
 		if (this.preferences == null)
 			return;
 
-		if (this.preferences.getInt(TAG_NAME_CASE) == LOWER) {
+		if (this.preferences.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.LOWER) {
 			this.tagNameCase = DocumentTypeAdapter.LOWER_CASE;
 		}
-		if (this.preferences.getInt(ATTR_NAME_CASE) == UPPER) {
+		if (this.preferences.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.UPPER) {
 			this.attrNameCase = DocumentTypeAdapter.UPPER_CASE;
 		}
 	}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java
index 3b4afe6..4a8da5d 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java
@@ -12,10 +12,9 @@
 
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
 import org.eclipse.wst.xml.core.internal.provisional.format.IStructuredFormatPreferencesXML;
 import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
@@ -38,20 +37,22 @@
 
 			Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
 			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES));
+				fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH));
+				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
-				if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS))
-					fFormatPreferences.setIndent("\t"); //$NON-NLS-1$
-				else {
-					int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH);
-					String indent = ""; //$NON-NLS-1$
-					for (int i = 0; i < tabWidth; i++) {
-						indent += " "; //$NON-NLS-1$
-					}
-					fFormatPreferences.setIndent(indent);
+				String indentChar = " "; //$NON-NLS-1$
+				String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR);
+				if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) {
+					indentChar = "\t"; //$NON-NLS-1$
 				}
+				int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE);
+
+				String indent = ""; //$NON-NLS-1$
+				for (int i = 0; i < indentationWidth; i++) {
+					indent += indentChar;
+				}
+				fFormatPreferences.setIndent(indent);
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java
index daee7dc..a026d66 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java
@@ -14,13 +14,12 @@
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
 import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
@@ -613,20 +612,22 @@
 
 			Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
 			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES));
+				fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH));
+				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
-				if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS))
-					fFormatPreferences.setIndent("\t"); //$NON-NLS-1$
-				else {
-					int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH);
-					String indent = ""; //$NON-NLS-1$
-					for (int i = 0; i < tabWidth; i++) {
-						indent += " "; //$NON-NLS-1$
-					}
-					fFormatPreferences.setIndent(indent);
+				String indentChar = " "; //$NON-NLS-1$
+				String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR);
+				if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) {
+					indentChar = "\t"; //$NON-NLS-1$
 				}
+				int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE);
+
+				String indent = ""; //$NON-NLS-1$
+				for (int i = 0; i < indentationWidth; i++) {
+					indent += indentChar;
+				}
+				fFormatPreferences.setIndent(indent);
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java
index 4c4b9d9..eff9cd9 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java
@@ -12,10 +12,9 @@
 
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.xml.core.internal.provisional.format.IStructuredFormatPreferencesXML;
 import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
 import org.w3c.dom.Node;
@@ -86,20 +85,22 @@
 
 			Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
 			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH));
-				fFormatPreferences.setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES));
+				fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH));
+				fFormatPreferences.setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
-				if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS))
-					fFormatPreferences.setIndent("\t"); //$NON-NLS-1$
-				else {
-					int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH);
-					String indent = ""; //$NON-NLS-1$
-					for (int i = 0; i < tabWidth; i++) {
-						indent += " "; //$NON-NLS-1$
-					}
-					fFormatPreferences.setIndent(indent);
+				String indentChar = " "; //$NON-NLS-1$
+				String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR);
+				if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) {
+					indentChar = "\t"; //$NON-NLS-1$
 				}
+				int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE);
+
+				String indent = ""; //$NON-NLS-1$
+				for (int i = 0; i < indentationWidth; i++) {
+					indent += indentChar;
+				}
+				fFormatPreferences.setIndent(indent);
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
new file mode 100644
index 0000000..1683e1c
--- /dev/null
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.html.core.internal.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
+import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
+import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
+
+/**
+ * Sets default values for HTML Core preferences
+ */
+public class HTMLCorePreferenceInitializer extends AbstractPreferenceInitializer {
+
+	public void initializeDefaultPreferences() {
+		IEclipsePreferences node = new DefaultScope().getNode(HTMLCorePlugin.getDefault().getBundle().getSymbolicName());
+
+		// formatting preferences
+		node.putInt(HTMLCorePreferenceNames.LINE_WIDTH, 72);
+		node.putBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false);
+		node.put(HTMLCorePreferenceNames.INDENTATION_CHAR, HTMLCorePreferenceNames.TAB);
+		node.putInt(HTMLCorePreferenceNames.INDENTATION_SIZE, 1);
+		node.putBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false);
+
+		// cleanup preferences
+		node.putInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.ASIS);
+		node.putInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.ASIS);
+		// node.putBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS,
+		// true);
+		node.putBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, true);
+		node.putBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS, true);
+		node.putBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES, true);
+		node.putBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE, true);
+		node.putBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES, false);
+
+		// code generation preferences
+		node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
+		String defaultEnc = "UTF-8";//$NON-NLS-1$
+		String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$
+		if (systemEnc != null) {
+			defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, "UTF-8");//$NON-NLS-1$
+		}
+		node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc);
+		node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
+
+		node.putInt(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER);
+		node.putInt(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER);
+	}
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
new file mode 100644
index 0000000..e424d55
--- /dev/null
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
@@ -0,0 +1,214 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Jens Lukowski/Innoopract - initial renaming/restructuring
+ *     
+ *******************************************************************************/
+package org.eclipse.wst.html.core.internal.preferences;
+
+/**
+ * Common preference keys used by HTML core
+ * 
+ * @since 1.0
+ */
+public class HTMLCorePreferenceNames {
+	private HTMLCorePreferenceNames() {
+		// empty private constructor so users cannot instantiate class
+	}
+
+	/**
+	 * The maximum width of a line before a line split is needed.
+	 * <p>
+	 * Value is of type <code>Integer</code>.
+	 * </p>
+	 */
+	public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$
+
+	/**
+	 * Indicates if all blanks lines should be cleared during formatting.
+	 * Blank lines will be kept when false.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$
+
+	/**
+	 * The number of #INDENTATION_CHAR for 1 indentation.
+	 * <p>
+	 * Value is of type <code>Integer</code>.
+	 * </p>
+	 */
+	public static final String INDENTATION_SIZE = "indentationSize";//$NON-NLS-1$
+
+	/**
+	 * The character used for indentation.
+	 * <p>
+	 * Value is of type <code>String</code>.<br />
+	 * Possible values: {TAB, SPACE}
+	 * </p>
+	 */
+	public static final String INDENTATION_CHAR = "indentationChar";//$NON-NLS-1$
+
+	/**
+	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
+	 * tab character when formatting.
+	 * 
+	 * @see #SPACE
+	 * @see #INDENTATION_CHAR
+	 */
+	public static final String TAB = "tab"; //$NON-NLS-1$
+
+	/**
+	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
+	 * space character when formatting.
+	 * 
+	 * @see #TAB
+	 * @see #INDENTATION_CHAR
+	 */
+	public static final String SPACE = "space"; //$NON-NLS-1$
+
+	/**
+	 * Indicates if tags with multiple attributes should be formatted
+	 * (splitting each attr on a new line).
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not cleanup processor should format source.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not empty elements should be compressed during
+	 * cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String COMPRESS_EMPTY_ELEMENT_TAGS = "compressEmptyElementTags";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not to insert required attributes during cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String INSERT_REQUIRED_ATTRS = "insertRequiredAttrs";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not to insert missing tags during cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String INSERT_MISSING_TAGS = "insertMissingTags";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not to quote all attribute values during cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not to convert all line delimiters during cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$
+
+	/**
+	 * Indicates the line delimiter to use during cleanup if converting line
+	 * delimiters.
+	 * <p>
+	 * Value is of type <code>String</code>.<br />
+	 * Possible values: {CR, CRLF, LF, NO_TRANSLATION}
+	 * </p>
+	 * 
+	 */
+	public static final String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$
+
+	/**
+	 * Indicates case to use on all tag names during cleanup.
+	 * <p>
+	 * Value is of type <code>Integer</code>.<br />
+	 * Possible values: {LOWER, UPPER, ASIS}
+	 * </p>
+	 */
+	public static final String CLEANUP_TAG_NAME_CASE = "cleanupTagNameCase";//$NON-NLS-1$
+
+	/**
+	 * Indicates case to use on all attribute names during cleanup.
+	 * <p>
+	 * Value is of type <code>Integer</code>.<br />
+	 * Possible values: {LOWER, UPPER, ASIS}
+	 * </p>
+	 */
+	public static final String CLEANUP_ATTR_NAME_CASE = "cleanupAttrNameCase";//$NON-NLS-1$
+
+	/**
+	 * Preferred markup case for tag names in code generation
+	 * <p>
+	 * Value is of type <code>Integer</code>.<br />
+	 * Possible values: {LOWER, UPPER}
+	 * </p>
+	 */
+	public static final String TAG_NAME_CASE = "tagNameCase";//$NON-NLS-1$
+
+	/**
+	 * Preferred markup case for attribute names in code generation
+	 * <p>
+	 * Value is of type <code>Integer</code>.<br />
+	 * Possible values: {LOWER, UPPER}
+	 * </p>
+	 */
+	public static final String ATTR_NAME_CASE = "attrNameCase";//$NON-NLS-1$
+
+	/**
+	 * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE.
+	 * Indicates to leave case as is.
+	 * 
+	 * @see #LOWER
+	 * @see #UPPER
+	 * @see #TAG_NAME_CASE
+	 * @see #ATTR_NAME_CASE
+	 */
+	public static final int ASIS = 0;
+
+	/**
+	 * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE.
+	 * Indicates to make name lowercase.
+	 * 
+	 * @see #ASIS
+	 * @see #UPPER
+	 * @see #TAG_NAME_CASE
+	 * @see #ATTR_NAME_CASE
+	 */
+	public static final int LOWER = 1;
+
+	/**
+	 * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE.
+	 * Indicates to make name uppercase.
+	 * 
+	 * @see #LOWER
+	 * @see #ASIS
+	 * @see #TAG_NAME_CASE
+	 * @see #ATTR_NAME_CASE
+	 */
+	public static final int UPPER = 2;
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java
index 8bb6870..fe2b4ea 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java
@@ -12,12 +12,11 @@
 
 import org.eclipse.core.runtime.IProduct;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 
 /**
- * Additional preferences for new HTML Files generation
+ * @deprecated not used in WTP
  */
-public interface HTMLFilesPreferenceNames extends CommonModelPreferenceNames {
+public interface HTMLFilesPreferenceNames {
 
 	static final String DEFAULT_SUFFIX = "defaultSuffix";//$NON-NLS-1$
 	static final String HTML_SUFFIX = "html";//$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java
index c55dba5..0c12e67 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java
@@ -25,9 +25,6 @@
 
 	public static String Sample_HTML_doc;
 	public static String HTMLFilesPreferencePage_0;
-	public static String HTMLFilesPreferencePage_1;
-	public static String HTMLFilesPreferencePage_2;
-	public static String HTMLFilesPreferencePage_3;
 	public static String _UI_WIZARD_NEW_TITLE;
 	public static String _UI_WIZARD_NEW_HEADING;
 	public static String _UI_WIZARD_NEW_DESCRIPTION;
@@ -85,6 +82,12 @@
 	public static String EOL_Unix_UI;
 	public static String EOL_Mac_UI;
 
+	// below are possibly unused strings that may be deleted
+	public static String HTMLFilesPreferencePage_1;
+	public static String HTMLFilesPreferencePage_2;
+	public static String HTMLFilesPreferencePage_3;
+	// above are possibly unused strings that may be deleted
+	
 	static {
 		// load message values from bundle file
 		NLS.initializeMessages(BUNDLE_NAME, HTMLUIMessages.class);
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties
index 0f36192..0853392 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties
@@ -14,9 +14,6 @@
 Sample_HTML_doc=<!DOCTYPE HTML\n\tPUBLIC \"-//W3C/DTD/ HTML 4.01 Transitional//EN\"\n\t\"http://www.w3.org/TR/html4/loose.dtd\">\n<HTML>\n\t<HEAD>\n\t\t<META content=\"text/html\">\n\t\t<TITLE>HTML Highlighting Preferences</TITLE>\n\t</HEAD>\n<BODY>\n\t<!--\n\t\twe need a flaming logo!\n\t-->\n</BODY>\n</HTML>
 
 HTMLFilesPreferencePage_0=Loading files...
-HTMLFilesPreferencePage_1=Add this suffix (if not specified):
-HTMLFilesPreferencePage_2=Insert DOCTYPE declaration
-HTMLFilesPreferencePage_3=Insert GENERATOR with META tag
 #
 _UI_WIZARD_NEW_TITLE = New HTML Page
 _UI_WIZARD_NEW_HEADING = HTML Page
@@ -77,4 +74,10 @@
 UI_Description_of_role_of_following_DOCTYPE=Use the following default document type when no DOCTYPE is declared in a file:
 UI_Public_ID=Public ID:
 UI_System_ID=System ID:
-UI_none=none
\ No newline at end of file
+UI_none=none
+
+# below are possibly unused strings that may be deleted
+HTMLFilesPreferencePage_1=Add this suffix (if not specified):
+HTMLFilesPreferencePage_2=Insert DOCTYPE declaration
+HTMLFilesPreferencePage_3=Insert GENERATOR with META tag
+# above are possibly unused strings that may be deleted
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java
index 7d58e15..f3daa1a 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java
@@ -13,8 +13,8 @@
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
 import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentModelGenerator;
@@ -36,8 +36,8 @@
 	private void init() {
 		//IPreferenceStore prefs = CommonPreferencesPlugin.getDefault().getPreferenceStore(ContentType.ContentTypeID_HTML);
 		Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences();
-		fTagCase = prefs.getInt(CommonModelPreferenceNames.TAG_NAME_CASE);
-		fAttrCase = prefs.getInt(CommonModelPreferenceNames.ATTR_NAME_CASE);
+		fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE);
+		fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE);
 	}
 
 	protected void generateEndTag(String tagName, Node parentNode, CMElementDeclaration elementDecl, StringBuffer buffer) {
@@ -78,12 +78,12 @@
 			else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION)
 				caseVal = fAttrCase;
 			switch (caseVal) {
-				case CommonModelPreferenceNames.LOWER :
+				case HTMLCorePreferenceNames.LOWER :
 					{
 						name = name.toLowerCase();
 					}
 					break;
-				case CommonModelPreferenceNames.UPPER :
+				case HTMLCorePreferenceNames.UPPER :
 					{
 						name = name.toUpperCase();
 					}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java
index d8ff788..10d8f5d 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java
@@ -15,10 +15,10 @@
 import org.eclipse.wst.html.core.internal.HTMLContentBuilder;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
 import org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
 import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilder;
@@ -69,16 +69,16 @@
 		if (shouldIgnoreCase(cmnode)) {
 			String name = cmnode.getNodeName();
 			if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) {
-				if (fTagCase == CommonModelPreferenceNames.LOWER)
+				if (fTagCase == HTMLCorePreferenceNames.LOWER)
 					name = name.toLowerCase();
-				else if (fTagCase == CommonModelPreferenceNames.UPPER)
+				else if (fTagCase == HTMLCorePreferenceNames.UPPER)
 					name = name.toUpperCase();
 				// else do nothing
 			}
 			else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
-				if (fAttrCase == CommonModelPreferenceNames.LOWER)
+				if (fAttrCase == HTMLCorePreferenceNames.LOWER)
 					name = name.toLowerCase();
-				else if (fAttrCase == CommonModelPreferenceNames.UPPER)
+				else if (fAttrCase == HTMLCorePreferenceNames.UPPER)
 					name = name.toUpperCase();
 				// else do nothing
 			}
@@ -97,8 +97,8 @@
 	protected void updateCase() {
 		if (model.getModelHandler().getAssociatedContentTypeId().equals(ContentTypeIdForHTML.ContentTypeID_HTML)) {
 			Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences(); //$NON-NLS-1$
-			fTagCase = prefs.getInt(CommonModelPreferenceNames.TAG_NAME_CASE);
-			fAttrCase = prefs.getInt(CommonModelPreferenceNames.ATTR_NAME_CASE);
+			fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE);
+			fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE);
 			//		Element caseSettings = HTMLPreferenceManager.getHTMLInstance().getElement(PreferenceNames.PREFERRED_CASE);
 			//		fTagCase = caseSettings.getAttribute(PreferenceNames.TAGNAME);
 			//		fAttrCase = caseSettings.getAttribute(PreferenceNames.ATTRIBUTENAME);
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java
index 0bfbee1..bab0c0d 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java
@@ -23,12 +23,12 @@
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.help.WorkbenchHelp;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
 import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
 import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
 import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
 import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.xml.core.internal.cleanup.XMLCleanupPreferencesImpl;
 import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
@@ -159,18 +159,18 @@
 	}
 
 	protected void initializeOptionsForHTML() {
-		int tagNameCase = getModelPreferences().getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE);
-		if (tagNameCase == CommonModelPreferenceNames.UPPER)
+		int tagNameCase = getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE);
+		if (tagNameCase == HTMLCorePreferenceNames.UPPER)
 			fRadioButtonTagNameCaseUpper.setSelection(true);
-		else if (tagNameCase == CommonModelPreferenceNames.LOWER)
+		else if (tagNameCase == HTMLCorePreferenceNames.LOWER)
 			fRadioButtonTagNameCaseLower.setSelection(true);
 		else
 			fRadioButtonTagNameCaseAsis.setSelection(true);
 
-		int attrNameCase = getModelPreferences().getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE);
-		if (attrNameCase == CommonModelPreferenceNames.UPPER)
+		int attrNameCase = getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE);
+		if (attrNameCase == HTMLCorePreferenceNames.UPPER)
 			fRadioButtonAttrNameCaseUpper.setSelection(true);
-		else if (attrNameCase == CommonModelPreferenceNames.LOWER)
+		else if (attrNameCase == HTMLCorePreferenceNames.LOWER)
 			fRadioButtonAttrNameCaseLower.setSelection(true);
 		else
 			fRadioButtonAttrNameCaseAsis.setSelection(true);
@@ -180,13 +180,13 @@
 		if (isHTMLType())
 			initializeOptionsForHTML();
 
-		fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS));
-		fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS));
-		fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES));
-		fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE));
-		fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES));
+		fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
+		fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS));
+		fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES));
+		fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE));
+		fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES));
 		if (fCheckBoxConvertEOLCodes.getSelection()) {
-			String EOLCode = getModelPreferences().getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE);
+			String EOLCode = getModelPreferences().getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE);
 			if (EOLCode == CommonEncodingPreferenceNames.LF)
 				fRadioButtonConvertEOLUnix.setSelection(true);
 			else if (EOLCode == CommonEncodingPreferenceNames.CR)
@@ -199,18 +199,18 @@
 
 	protected void storeOptionsForHTML() {
 		if (fRadioButtonTagNameCaseUpper.getSelection())
-			getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.UPPER);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.UPPER);
 		else if (fRadioButtonTagNameCaseLower.getSelection())
-			getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.LOWER);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER);
 		else
-			getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.ASIS);
 
 		if (fRadioButtonAttrNameCaseUpper.getSelection())
-			getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.UPPER);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.UPPER);
 		else if (fRadioButtonAttrNameCaseLower.getSelection())
-			getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER);
 		else
-			getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.ASIS);
 
 		// explicitly save plugin preferences so values are stored
 		HTMLCorePlugin.getDefault().savePluginPreferences();
@@ -219,34 +219,34 @@
 	protected void storeOptions() {
 		if (isHTMLType()) {
 			storeOptionsForHTML();
-			XMLCleanupPreferencesImpl.getInstance().setTagNameCase(getModelPreferences().getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE));
-			XMLCleanupPreferencesImpl.getInstance().setAttrNameCase(getModelPreferences().getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE));
+			XMLCleanupPreferencesImpl.getInstance().setTagNameCase(getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE));
+			XMLCleanupPreferencesImpl.getInstance().setAttrNameCase(getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE));
 		}
 		else {
-			XMLCleanupPreferencesImpl.getInstance().setTagNameCase(CommonModelPreferenceNames.ASIS);
-			XMLCleanupPreferencesImpl.getInstance().setAttrNameCase(CommonModelPreferenceNames.ASIS);
+			XMLCleanupPreferencesImpl.getInstance().setTagNameCase(HTMLCorePreferenceNames.ASIS);
+			XMLCleanupPreferencesImpl.getInstance().setAttrNameCase(HTMLCorePreferenceNames.ASIS);
 		}
 
-		getModelPreferences().setValue(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection());
+		getModelPreferences().setValue(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection());
+		getModelPreferences().setValue(HTMLCorePreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection());
+		getModelPreferences().setValue(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection());
+		getModelPreferences().setValue(HTMLCorePreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection());
+		getModelPreferences().setValue(HTMLCorePreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection());
 		XMLCleanupPreferencesImpl.getInstance().setInsertMissingTags(fCheckBoxInsertMissingTags.getSelection());
 		XMLCleanupPreferencesImpl.getInstance().setQuoteAttrValues(fCheckBoxQuoteAttrValues.getSelection());
 		XMLCleanupPreferencesImpl.getInstance().setFormatSource(fCheckBoxFormatSource.getSelection());
 		XMLCleanupPreferencesImpl.getInstance().setConvertEOLCodes(fCheckBoxConvertEOLCodes.getSelection());
 		if (fCheckBoxConvertEOLCodes.getSelection()) {
 			if (fRadioButtonConvertEOLUnix.getSelection()) {
-				getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF);
+				getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF);
 				XMLCleanupPreferencesImpl.getInstance().setEOLCode(CommonEncodingPreferenceNames.LF);
 			}
 			else if (fRadioButtonConvertEOLMac.getSelection()) {
-				getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR);
+				getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR);
 				XMLCleanupPreferencesImpl.getInstance().setEOLCode(CommonEncodingPreferenceNames.CR);
 			}
 			else {
-				getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF);
+				getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF);
 				XMLCleanupPreferencesImpl.getInstance().setEOLCode(CommonEncodingPreferenceNames.CRLF);
 			}
 		}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java
index 4d29f5c..1166434 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java
@@ -13,15 +13,12 @@
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.help.WorkbenchHelp;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.provisional.HTMLFilesPreferenceNames;
 import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
 import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
 import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
@@ -32,9 +29,6 @@
 
 public class HTMLFilesPreferencePage extends XMLFilesPreferencePage {
 	private WorkbenchDefaultEncodingSettings fInputEncodingSettings = null;
-	private Text fHtmlext_Field;
-	private Button fDoctype_Button;
-	private Button fGenerator_Button;
 
 	/* (non-Javadoc)
 	 * @see com.ibm.sse.editor.preferences.ui.AbstractPreferencePage#getModelPreferences()
@@ -126,65 +120,11 @@
 	protected void createContentsForCreatingGroup(Composite parent) {
 		Group creatingGroup = createGroup(parent, 2);
 		creatingGroup.setText(HTMLUIMessages.Creating_files);
-
-		// Add this suffix..
-		createLabel(creatingGroup, HTMLUIMessages.HTMLFilesPreferencePage_1);
-		fHtmlext_Field = createTextField(creatingGroup);
 		
 		// Encoding..
 		Label label = createLabel(creatingGroup, HTMLUIMessages.Encoding_desc);
 		((GridData)label.getLayoutData()).horizontalSpan = 2;
 		fEncodingSettings = new EncodingSettings(creatingGroup);
 		((GridData)fEncodingSettings.getLayoutData()).horizontalSpan = 2;
-		
-		// Insert DOCTYPE declaration
-		fDoctype_Button = createCheckBox(creatingGroup, HTMLUIMessages.HTMLFilesPreferencePage_2);
-		((GridData)fDoctype_Button.getLayoutData()).horizontalSpan = 2;
-		
-		// Insert GENERATOR with META tag
-		fGenerator_Button = createCheckBox(creatingGroup, HTMLUIMessages.HTMLFilesPreferencePage_3);
-		((GridData)fGenerator_Button.getLayoutData()).horizontalSpan = 2;
-	}
-	/* (non-Javadoc)
-	 * @see com.ibm.sse.editor.xml.preferences.ui.XMLFilesPreferencePage#initializeValuesForCreatingGroup()
-	 */
-	protected void initializeValuesForCreatingGroup() {
-		super.initializeValuesForCreatingGroup();
-		
-		String defaultSuffix = getModelPreferences().getString(HTMLFilesPreferenceNames.DEFAULT_SUFFIX);
-		if (defaultSuffix.length() > 0) {
-			fHtmlext_Field.setText(defaultSuffix);
-		}
-	
-		boolean bCheck;
-		bCheck = getModelPreferences().getBoolean(HTMLFilesPreferenceNames.GENERATE_DOCUMENT_TYPE);
-		fDoctype_Button.setSelection(bCheck);
-		
-		bCheck = getModelPreferences().getBoolean(HTMLFilesPreferenceNames.GENERATE_GENERATOR);
-		fGenerator_Button.setSelection(bCheck);
-	}
-	/* (non-Javadoc)
-	 * @see com.ibm.sse.editor.xml.preferences.ui.XMLFilesPreferencePage#performDefaultsForCreatingGroup()
-	 */
-	protected void performDefaultsForCreatingGroup() {
-		super.performDefaultsForCreatingGroup();
-
-		fHtmlext_Field.setText(getModelPreferences().getDefaultString(HTMLFilesPreferenceNames.DEFAULT_SUFFIX));
-		
-		fDoctype_Button.setSelection(getModelPreferences().getDefaultBoolean(HTMLFilesPreferenceNames.GENERATE_DOCUMENT_TYPE));
-		fGenerator_Button.setSelection(getModelPreferences().getDefaultBoolean(HTMLFilesPreferenceNames.GENERATE_GENERATOR));
-	}
-	/* (non-Javadoc)
-	 * @see com.ibm.sse.editor.xml.preferences.ui.XMLFilesPreferencePage#storeValuesForCreatingGroup()
-	 */
-	protected void storeValuesForCreatingGroup() {
-		super.storeValuesForCreatingGroup();
-		
-		String str_ext = fHtmlext_Field.getText();	
-		getModelPreferences().setValue(HTMLFilesPreferenceNames.DEFAULT_SUFFIX, str_ext); 
-
-		getModelPreferences().setValue(HTMLFilesPreferenceNames.GENERATE_DOCUMENT_TYPE, fDoctype_Button.getSelection());
-	
-		getModelPreferences().setValue(HTMLFilesPreferenceNames.GENERATE_GENERATOR, fGenerator_Button.getSelection());
 	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java
index d6d37f9..386ef70 100644
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java
+++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java
@@ -18,10 +18,10 @@
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.ui.help.WorkbenchHelp;
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
 import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
 import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.xml.ui.internal.preferences.XMLSourcePreferencePage;
 
 public class HTMLSourcePreferencePage extends XMLSourcePreferencePage {
@@ -77,32 +77,32 @@
 	}
 
 	protected void performDefaults() {
-		fTagNameUpper.setSelection(getModelPreferences().getDefaultInt(CommonModelPreferenceNames.TAG_NAME_CASE) == CommonModelPreferenceNames.UPPER);
-		fTagNameLower.setSelection(getModelPreferences().getDefaultInt(CommonModelPreferenceNames.TAG_NAME_CASE) == CommonModelPreferenceNames.LOWER);
-		fAttrNameUpper.setSelection(getModelPreferences().getDefaultInt(CommonModelPreferenceNames.ATTR_NAME_CASE) == CommonModelPreferenceNames.UPPER);
-		fAttrNameLower.setSelection(getModelPreferences().getDefaultInt(CommonModelPreferenceNames.ATTR_NAME_CASE) == CommonModelPreferenceNames.LOWER);
+		fTagNameUpper.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.UPPER);
+		fTagNameLower.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.LOWER);
+		fAttrNameUpper.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.UPPER);
+		fAttrNameLower.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.LOWER);
 
 		super.performDefaults();
 	}
 
 	protected void initializeValues() {
-		fTagNameUpper.setSelection(getModelPreferences().getInt(CommonModelPreferenceNames.TAG_NAME_CASE) == CommonModelPreferenceNames.UPPER);
-		fTagNameLower.setSelection(getModelPreferences().getInt(CommonModelPreferenceNames.TAG_NAME_CASE) == CommonModelPreferenceNames.LOWER);
-		fAttrNameUpper.setSelection(getModelPreferences().getInt(CommonModelPreferenceNames.ATTR_NAME_CASE) == CommonModelPreferenceNames.UPPER);
-		fAttrNameLower.setSelection(getModelPreferences().getInt(CommonModelPreferenceNames.ATTR_NAME_CASE) == CommonModelPreferenceNames.LOWER);
+		fTagNameUpper.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.UPPER);
+		fTagNameLower.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.LOWER);
+		fAttrNameUpper.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.UPPER);
+		fAttrNameLower.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.LOWER);
 
 		super.initializeValues();
 	}
 
 	protected void storeValues() {
 		if (fTagNameUpper.getSelection())
-			getModelPreferences().setValue(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.UPPER);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.UPPER);
 		else
-			getModelPreferences().setValue(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.LOWER);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER);
 		if (fAttrNameUpper.getSelection())
-			getModelPreferences().setValue(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.UPPER);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.UPPER);
 		else
-			getModelPreferences().setValue(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER);
+			getModelPreferences().setValue(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER);
 
 		super.storeValues();
 	}
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java
index 0726665..70354d5 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java
@@ -16,6 +16,11 @@
  * Common preference keys used to specify encoding and end of line.
  */
 public class CommonEncodingPreferenceNames {
+	
+	private CommonEncodingPreferenceNames() {
+		// empty private constructor so users cannot instantiate class
+	}
+
 	/**
 	 * Constant to be used when referring to CR/MAC line delimiter
 	 */
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java
index 3871288..fd4a755 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java
@@ -45,36 +45,12 @@
 	protected void initializeDefaultPluginPreferences() {
 		Preferences prefs = getDefault().getPluginPreferences();
 		// set model preference defaults
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, true);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true);
-		prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true);
-		prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false);
-		prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
-		prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, CommonModelPreferenceNames.UTF_8);
-		prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-		prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, CommonModelPreferenceNames.DEFAULT_TAB_WIDTH);
-		prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, false);
-		prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72);
-		prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false);
-		prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true);
-		prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false);
-		prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, false);
-		prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.UPPER);
-		prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER);
+
+		prefs.setDefault(CommonEncodingPreferenceNames.USE_3BYTE_BOM_WITH_UTF8, false);
+		
 		prefs.setDefault(CommonModelPreferenceNames.TASK_TAG_ENABLE, false);
 		prefs.setDefault(CommonModelPreferenceNames.TASK_TAG_TAGS, "TODO,FIXME,XXX"); //$NON-NLS-1$
 		prefs.setDefault(CommonModelPreferenceNames.TASK_TAG_PRIORITIES, "1,2,1"); //$NON-NLS-1$
-
-		initializeDefaultPluginPreferencesForEncoding(prefs);
-
-	}
-
-	private void initializeDefaultPluginPreferencesForEncoding(Preferences prefs) {
-		prefs.setDefault(CommonEncodingPreferenceNames.USE_3BYTE_BOM_WITH_UTF8, false);
 	}
 
 	/*
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java
index 5a1274c..61a513b 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java
@@ -12,49 +12,10 @@
  *******************************************************************************/
 package org.eclipse.wst.sse.core.internal.preferences;
 
-
 /**
- * Here is a description of how each common model file preference is used.
+ * @deprecated CommonModelPreferenceNames are now managed by each individual
+ *             content type. (XXCorePreferenceNames)
  * 
- * tabWidth The number of spaces representing a tab. This number is also used
- * as number of spaces to indent during formatting when indentUsingTabs is
- * false.
- * 
- * splitLines Indicates if long lines should be splitted.
- * 
- * splitLinesUsingEditorsWidth Indicates if long lines should be splitted
- * using the editor's current width. The editor's current width will be used
- * when splitting long lines if splitLinesUsingEditorWidth is true. lineWidth
- * will be used when splitting long lines if splitLinesUsingEditorWidth is
- * false.
- * 
- * lineWidth The maximum width of a line before a line split is needed. This
- * number is only used when lineSplitting is true, otherwise it's ignored.
- * 
- * splitMultiAttrs Indicates if tags with multiple attributes should be
- * formatted (splitting each attr on a new line).
- * 
- * indentUsingTabs Indicates if tabs should be used for indentation during
- * formatting. The same number of spaces specified by tabWidth will be used
- * for indentation if indentUsingTabs is false.
- * 
- * clearAllBlankLines Indicates if all blanks lines should be cleared during
- * formatting. Blanks lines will be kept when clearAllBlankLines is false.
- * 
- * formattingSupported Indicates if the current content type supports
- * formatting. The splitLines, splitLinesUsingEditorsWidth, lineWidth,
- * splitMultiAttrs, and indentUsingTabs preferences will be meaningless if
- * formattingSupported is false.
- * 
- * contentAssistSupported Indicates if the current content type supports
- * content assist. The autoPropose, and autoProposeCode preferences will be
- * meaningless if contentAssistSupported is false.
- * 
- * preferredMarkupCaseSupported Indicates if the current content type supports
- * "preferred markup case for content assist, and code generation". The
- * tagNameCase, and attrNameCase preferences will be meaningless if
- * preferredMarkupCaseSupported is false.
- *  
  */
 public interface CommonModelPreferenceNames {
 	String TAB_WIDTH = "tabWidth";//$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceChangeListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceChangeListener.java
deleted file mode 100644
index e6956d9..0000000
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceChangeListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.core.internal.preferences;
-
-/**
- * @deprecated This used to be used by our own PreferenceManager but since
- *             that class is no longer needed, this class should also no
- *             longer be needed. Use the base's IPreferenceChangeListener or
- *             IPropertyChangeListener instead.
- */
-public interface PreferenceChangeListener {
-
-	void preferencesChanged();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/StructuredTextViewerConfiguration.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/StructuredTextViewerConfiguration.java
index 67f96f7..c34425c 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/StructuredTextViewerConfiguration.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/StructuredTextViewerConfiguration.java
@@ -89,7 +89,6 @@
 	 */
 	public StructuredTextViewerConfiguration(IPreferenceStore store) {
 		super(store);
-		fPreferenceStore = store;
 		fContentAssistProcessors = new ArrayList();
 	}
 
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/preferences/PreferenceManager.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/preferences/PreferenceManager.java
deleted file mode 100644
index 6534f88..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/preferences/PreferenceManager.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.provisional.preferences;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerFactoryConfigurationError;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.wst.sse.core.internal.preferences.PreferenceChangeListener;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * @deprecated no longer need a special PreferenceManager for our component.
- *             All preferences should be accessible using the base preference
- *             manager.
- */
-public abstract class PreferenceManager {
-
-	class EmptyNodeList implements NodeList {
-		protected EmptyNodeList() {
-			super();
-		}
-
-		public int getLength() {
-			return 0;
-		}
-
-		public Node item(int param1) {
-			return null;
-		}
-	}
-
-	/**
-	 * The PreferenceRuntimeException is often thrown by methods when a
-	 * service we use throws a checked exception, but we want to convert and
-	 * treat as a runtime exception.
-	 */
-	class PreferenceRuntimeException extends RuntimeException {
-		/**
-		 * Comment for <code>serialVersionUID</code>
-		 */
-		private static final long serialVersionUID = 1L;
-		private Throwable originalException;
-
-		public PreferenceRuntimeException() {
-			super();
-		}
-
-		/**
-		 * This form of the constructor is used to wrapper another exception.
-		 */
-		public PreferenceRuntimeException(Throwable t) {
-			this();
-			originalException = t;
-		}
-
-		public String getMessage() {
-			String result = super.getMessage();
-			if ((result != null) && (!result.endsWith("."))) //$NON-NLS-1$
-				result = result + "."; //$NON-NLS-1$
-			if (originalException != null) {
-				String embeddedMessage = originalException.getMessage();
-				embeddedMessage = originalException.getClass().getName() + ": " + originalException.getMessage(); //$NON-NLS-1$
-				// not all exceptions have messages (e.g. many
-				// NullPointerException)
-				String originalError = SSEUIMessages.PreferenceManager_0; //$NON-NLS-1$
-				if (result == null)
-					result = ""; //$NON-NLS-1$
-				if (embeddedMessage != null)
-					result = result + "  " + originalError + " " + embeddedMessage; //$NON-NLS-2$//$NON-NLS-1$
-				else
-					result = result + "  " + originalError + " " + originalException.toString(); //$NON-NLS-2$//$NON-NLS-1$
-			}
-			return result;
-		}
-
-		public Throwable getOriginalException() {
-			return originalException;
-		}
-
-		public String toString() {
-			// we don't put super.toString or getClass to "hide" that it was a
-			// SourceEditing exception (otherwise, focus goes on that,
-			// instead of original exception.
-			String message = getMessage();
-			// message should never be null ... but just in case
-			return (message != null) ? message : super.toString();
-		}
-	}
-
-	protected Document document = null;
-
-	protected String fileName = null;
-	private List preferenceChangeListeners = new ArrayList(1);
-
-	protected Document _getNewDocumentDOM2() {
-		Document result = null;
-		// settings
-		DocumentBuilder builder = getDocumentBuilder();
-		result = builder.newDocument();
-		Element settings = result.createElement(getRootElementName());
-		result.appendChild(settings);
-		return result;
-
-	}
-
-	protected Document _getParsedDocumentDOM2(String filename) {
-		Document result = null;
-		DocumentBuilder builder = getDocumentBuilder();
-		try {
-			Reader inputReader = new FileReader(getFilename());
-			InputSource inputSource = new InputSource(inputReader);
-			result = builder.parse(inputSource);
-		}
-		catch (FileNotFoundException e) {
-			// file not found is "ok" ... it'll be created if we return null
-			result = null;
-		}
-		catch (IOException e) {
-			result = null;
-		}
-		catch (SAXException e) {
-			result = null;
-		}
-
-		return result;
-
-	}
-
-	public void addPreferenceChangeListener(PreferenceChangeListener l) {
-		if (!preferenceChangeListeners.contains(l))
-			preferenceChangeListeners.add(l);
-	}
-
-	/**
-	 * Returns a new document containing the defaults for this manager. This
-	 * SHOULD NOT overwrite the actual document stored within this manager,
-	 * and while a root element MAY BE created by the DOM implementation, it
-	 * is recommended that subclasses NOT RELY upon it being there.
-	 * 
-	 * @return org.w3c.dom.Document
-	 */
-	public Document createDefaultPreferences() {
-		Document txobj = null;
-		txobj = _getNewDocumentDOM2();
-		return txobj;
-	}
-
-	protected void firePreferenceChangeListeners() {
-		if (preferenceChangeListeners != null)
-			for (int i = 0; i < preferenceChangeListeners.size(); ++i)
-				((PreferenceChangeListener) preferenceChangeListeners.get(i)).preferencesChanged();
-	}
-
-	/**
-	 * 
-	 * @return Document
-	 */
-	public Document getDocument() {
-		if (document == null)
-			load();
-		return document;
-	}
-
-	private DocumentBuilder getDocumentBuilder() {
-		DocumentBuilder result = null;
-		try {
-			result = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-		}
-		catch (ParserConfigurationException e) {
-			Logger.logException(e);
-		}
-		return result;
-	}
-
-	/*************************************************************************
-	 * Takes a single string of the form "a/b/c" and ensures that that
-	 * structure exists below the head element, down through 'c', and returns
-	 * a <em>single</em> element 'c'. For multiple elements (such as
-	 * multiple &lt;macro&gt; elements contained within a single
-	 * &lt;macros&gt; element, full DOM access is required for searching and
-	 * child element manipulation.
-	 ************************************************************************/
-	public Element getElement(String name) {
-		if (document == null)
-			load();
-		if (document != null)
-			return (Element) getNode(getRootElement(), name);
-		else
-			return null;
-	}
-
-	protected abstract String getFilename();
-
-	protected Node getNamedChild(Node parent, String childName) {
-		if (parent == null) {
-			return null;
-		}
-		NodeList childList = parent.getChildNodes();
-		for (int i = 0; i < childList.getLength(); i++) {
-			if (childList.item(i).getNodeName().equals(childName))
-				return childList.item(i);
-		}
-		return null;
-	}
-
-	/*************************************************************************
-	 * Takes a single string of the form "a/b/c" and ensures that that
-	 * structure exists below the head element, down through 'c', and returns
-	 * the element 'c'.
-	 ************************************************************************/
-	public Node getNode(Node node, String name) {
-		StringTokenizer tokenizer = new StringTokenizer(name, "/"); //$NON-NLS-1$
-		String token = null;
-		while (tokenizer.hasMoreTokens()) {
-			token = tokenizer.nextToken();
-			if (getNamedChild(node, token) == null) {
-				Document localDocument = node.getOwnerDocument();
-				node.appendChild(localDocument.createElement(token));
-			}
-			node = getNamedChild(node, token);
-		}
-		return node;
-	}
-
-	protected Document getParsedDocument(String filename) {
-		Document result = null;
-		// file name is almost never null,
-		// but can be if preferences are being ran
-		// outside of a workbench application
-		if (filename != null) {
-			File existenceTester = new File(filename);
-			if (!existenceTester.exists())
-				result = null;
-			else
-				result = _getParsedDocumentDOM2(filename);
-		}
-		return result;
-
-	}
-
-	/**
-	 * Returns the root element of the current document
-	 * 
-	 * @return org.w3c.dom.Element
-	 */
-	public Node getRootElement() {
-		return getRootElement(getDocument());
-	}
-
-	/**
-	 * Returns the root element of the current document
-	 * 
-	 * @return org.w3c.dom.Element
-	 */
-	public Node getRootElement(Document doc) {
-		if (doc == null)
-			return null;
-		Node rootElement = doc.getFirstChild();
-		while (rootElement != null && rootElement.getNodeType() != Node.ELEMENT_NODE && !rootElement.getNodeName().equals(getRootElementName())) {
-			rootElement = rootElement.getNextSibling();
-		}
-		return rootElement;
-	}
-
-	/**
-	 * The intended name for the root Element of the Document; what is also
-	 * listed within the DOCTYPE declaration.
-	 * 
-	 * @return String
-	 */
-	public String getRootElementName() {
-		return "settings"; //$NON-NLS-1$
-	}
-
-	public void load() {
-		document = getParsedDocument(getFilename());
-
-		if (document == null) {
-			document = createDefaultPreferences();
-		}
-	}
-
-	public void removePreferenceChangeListener(PreferenceChangeListener l) {
-		preferenceChangeListeners.remove(l);
-	}
-
-	public void save() {
-		if (document == null) {
-			document = createDefaultPreferences();
-		}
-		try {
-			// pa_TODO is this still going to be done like this?
-			FileWriter output = new FileWriter(getFilename());
-			saveDocument(document, output);
-			output.flush();
-			output.close();
-		}
-		catch (IOException e) {
-			Logger.logException("Program Error: PreferenceManager::save. Exception saving preferences ", e); //$NON-NLS-1$
-			throw new PreferenceRuntimeException(e);
-		}
-		firePreferenceChangeListeners();
-	}
-
-	public void saveDocument(Document document, Writer writer) throws IOException {
-
-		serialize(document, writer);
-	}
-
-	private void serialize(Document sourceDocument, Writer writer) throws IOException {
-		Source domSource = new DOMSource(sourceDocument);
-		try {
-			Transformer serializer = TransformerFactory.newInstance().newTransformer();
-			try {
-				serializer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
-				serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			catch (IllegalArgumentException e) {
-				// unsupported properties
-			}
-			serializer.transform(domSource, new StreamResult(writer));
-		}
-		catch (TransformerConfigurationException e) {
-			throw new IOException(e.getMessage());
-		}
-		catch (TransformerFactoryConfigurationError e) {
-			throw new IOException(e.getMessage());
-		}
-		catch (TransformerException e) {
-			throw new IOException(e.getMessage());
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.core/plugin.xml b/bundles/org.eclipse.wst.xml.core/plugin.xml
index 89b2a7a..1f11fce 100644
--- a/bundles/org.eclipse.wst.xml.core/plugin.xml
+++ b/bundles/org.eclipse.wst.xml.core/plugin.xml
@@ -119,6 +119,11 @@
 		</content-type>
    </extension>
    
+	<!-- initialize xml core preferences -->
+	<extension point="org.eclipse.core.runtime.preferences">
+         <initializer class="org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceInitializer"/>
+	</extension>
+   
    	<!-- added following from content model plugin.xml -->
 	
 	
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
index 962b707..5d7fea0 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
@@ -15,9 +15,6 @@
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 
 
 /**
@@ -48,38 +45,4 @@
 		super();
 		plugin = this;
 	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences()
-	 */
-	protected void initializeDefaultPluginPreferences() {
-		Preferences prefs = getDefault().getPluginPreferences();
-		// set model preference defaults
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS);
-		prefs.setDefault(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, true);
-		prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true);
-		prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true);
-		prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true);
-		prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false);
-
-		prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
-		prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, CommonModelPreferenceNames.UTF_8);
-		prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
-
-		prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, 4);
-
-		prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, true);
-		prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72);
-		prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false);
-		prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true);
-		prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false);
-
-		prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, false);
-		prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.LOWER);
-		prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER);
-	}
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java
index 53a3da8..97bf41c 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java
@@ -18,8 +18,8 @@
 import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
 import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
 import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
 import org.w3c.dom.Node;
@@ -57,15 +57,13 @@
 
 			Preferences preferences = getModelPreferences();
 			if (preferences != null) {
-				fCleanupPreferences.setTagNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE));
-				fCleanupPreferences.setAttrNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE));
-				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS));
-				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS));
-				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES));
-				fCleanupPreferences.setFormatSource(preferences.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE));
-				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES));
-				fCleanupPreferences.setEOLCode(preferences.getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE));
+				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
+				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
+				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS));
+				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES));
+				fCleanupPreferences.setFormatSource(preferences.getBoolean(XMLCorePreferenceNames.FORMAT_SOURCE));
+				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES));
+				fCleanupPreferences.setEOLCode(preferences.getString(XMLCorePreferenceNames.CLEANUP_EOL_CODE));
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java
index d8775a0..444ff50 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java
@@ -17,8 +17,8 @@
 import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler;
 import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
 import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.w3c.dom.Node;
 
 
@@ -44,15 +44,13 @@
 
 			Preferences preferences = getModelPreferences();
 			if (preferences != null) {
-				fCleanupPreferences.setTagNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE));
-				fCleanupPreferences.setAttrNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE));
-				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS));
-				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS));
-				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES));
-				fCleanupPreferences.setFormatSource(preferences.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE));
-				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES));
-				fCleanupPreferences.setEOLCode(preferences.getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE));
+				fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
+				fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
+				fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS));
+				fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES));
+				fCleanupPreferences.setFormatSource(preferences.getBoolean(XMLCorePreferenceNames.FORMAT_SOURCE));
+				fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES));
+				fCleanupPreferences.setEOLCode(preferences.getString(XMLCorePreferenceNames.CLEANUP_EOL_CODE));
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
new file mode 100644
index 0000000..7211076
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
+import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+
+/**
+ * Sets default values for XML Core preferences
+ */
+public class XMLCorePreferenceInitializer extends AbstractPreferenceInitializer {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+	 */
+	public void initializeDefaultPreferences() {
+		IEclipsePreferences node = new DefaultScope().getNode(XMLCorePlugin.getDefault().getBundle().getSymbolicName());
+		
+		// formatting preferences
+		node.putInt(XMLCorePreferenceNames.LINE_WIDTH, 72);
+		node.putBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false);
+		node.put(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.TAB);
+		node.putInt(XMLCorePreferenceNames.INDENTATION_SIZE, 1);
+		node.putBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false);
+		
+		// cleanup preferences
+		node.putBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true);
+		node.putBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, true);
+		node.putBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS, true);
+		node.putBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES, true);
+		node.putBoolean(XMLCorePreferenceNames.FORMAT_SOURCE, true);
+		node.putBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES, false);
+
+		node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$
+		node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, "UTF-8");//$NON-NLS-1$
+		node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$
+	}
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
new file mode 100644
index 0000000..308b8ae
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.xml.core.internal.preferences;
+
+/**
+ * Common preference keys used by XML core
+ * 
+ * @since 1.0
+ */
+public class XMLCorePreferenceNames {
+	private XMLCorePreferenceNames() {
+		// empty private constructor so users cannot instantiate class
+	}
+	
+	/**
+	 * The maximum width of a line before a line split is needed.
+	 * <p>
+	 * Value is of type <code>Integer</code>.
+	 * </p>
+	 */
+	public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$
+	
+	/**
+	 * Indicates if all blanks lines should be cleared during formatting.
+	 * Blank lines will be kept when false.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$
+
+	/**
+	 * The number of #INDENTATION_CHAR for 1 indentation.
+	 * <p>
+	 * Value is of type <code>Integer</code>.
+	 * </p>
+	 */
+	public static final String INDENTATION_SIZE = "indentationSize";//$NON-NLS-1$
+
+	/**
+	 * The character used for indentation.
+	 * <p>
+	 * Value is of type <code>String</code>.<br />
+	 * Possible values: {TAB, SPACE}
+	 * </p>
+	 */
+	public static final String INDENTATION_CHAR = "indentationChar";//$NON-NLS-1$
+
+	/**
+	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
+	 * tab character when formatting.
+	 * 
+	 * @see #SPACE
+	 * @see #INDENTATION_CHAR
+	 */
+	public static final String TAB = "tab"; //$NON-NLS-1$
+
+	/**
+	 * Possible value for the preference #INDENTATION_CHAR. Indicates to use
+	 * space character when formatting.
+	 * 
+	 * @see #TAB
+	 * @see #INDENTATION_CHAR
+	 */
+	public static final String SPACE = "space"; //$NON-NLS-1$
+
+	/**
+	 * Indicates if tags with multiple attributes should be formatted
+	 * (splitting each attr on a new line).
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$
+	
+	/**
+	 * Indicates whether or not cleanup processor should format source.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not empty elements should be compressed during
+	 * cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String COMPRESS_EMPTY_ELEMENT_TAGS = "compressEmptyElementTags";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not to insert required attributes during cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String INSERT_REQUIRED_ATTRS = "insertRequiredAttrs";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not to insert missing tags during cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String INSERT_MISSING_TAGS = "insertMissingTags";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not to quote all attribute values during cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$
+
+	/**
+	 * Indicates whether or not to convert all line delimiters during cleanup.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$
+
+	/**
+	 * Indicates the line delimiter to use during cleanup if converting line
+	 * delimiters.
+	 * <p>
+	 * Value is of type <code>String</code>.<br />
+	 * Possible values: {CR, CRLF, LF, NO_TRANSLATION} 
+	 * </p> 
+	 * 
+	 */
+	public static final String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java
index 54b84b5..c6ab4ba 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java
@@ -13,13 +13,12 @@
 package org.eclipse.wst.xml.core.internal.provisional.format;
 
 import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
 import org.eclipse.wst.sse.core.internal.format.AbstractStructuredFormatProcessor;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
 import org.eclipse.wst.xml.core.internal.document.CDATASectionImpl;
+import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.w3c.dom.Node;
 
 public class FormatProcessorXML extends AbstractStructuredFormatProcessor {
@@ -35,20 +34,22 @@
 
 			Preferences preferences = getModelPreferences();
 			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES));
+				fFormatPreferences.setLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH));
+				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
-				if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS))
-					fFormatPreferences.setIndent("\t"); //$NON-NLS-1$
-				else {
-					int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH);
-					String indent = ""; //$NON-NLS-1$
-					for (int i = 0; i < tabWidth; i++) {
-						indent += " "; //$NON-NLS-1$
-					}
-					fFormatPreferences.setIndent(indent);
+				String indentChar = " "; //$NON-NLS-1$
+				String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR);
+				if (XMLCorePreferenceNames.TAB.equals(indentCharPref)) {
+					indentChar = "\t"; //$NON-NLS-1$
 				}
+				int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE);
+
+				String indent = ""; //$NON-NLS-1$
+				for (int i = 0; i < indentationWidth; i++) {
+					indent += indentChar;
+				}
+				fFormatPreferences.setIndent(indent);
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java
index 349e373..d8832e8 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java
@@ -15,13 +15,11 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
 import org.eclipse.wst.sse.core.internal.format.StructuredFormatContraints;
 import org.eclipse.wst.sse.core.internal.parser.ContextRegion;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.sse.core.internal.provisional.exceptions.SourceEditingRuntimeException;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
@@ -33,6 +31,7 @@
 import org.eclipse.wst.xml.core.internal.document.CharacterDataImpl;
 import org.eclipse.wst.xml.core.internal.document.CommentImpl;
 import org.eclipse.wst.xml.core.internal.parser.regions.TagNameRegion;
+import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
@@ -416,20 +415,22 @@
 
 			Preferences preferences = getModelPreferences();
 			if (preferences != null) {
-				fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS));
-				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES));
+				fFormatPreferences.setLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH));
+				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
-				if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS))
-					fFormatPreferences.setIndent("\t"); //$NON-NLS-1$
-				else {
-					int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH);
-					String indent = ""; //$NON-NLS-1$
-					for (int i = 0; i < tabWidth; i++) {
-						indent += " "; //$NON-NLS-1$
-					}
-					fFormatPreferences.setIndent(indent);
+				String indentChar = " "; //$NON-NLS-1$
+				String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR);
+				if (XMLCorePreferenceNames.TAB.equals(indentCharPref)) {
+					indentChar = "\t"; //$NON-NLS-1$
 				}
+				int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE);
+
+				String indent = ""; //$NON-NLS-1$
+				for (int i = 0; i < indentationWidth; i++) {
+					indent += indentChar;
+				}
+				fFormatPreferences.setIndent(indent);
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
index 8264ae2..ec0d342 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
@@ -219,6 +219,9 @@
 	public static String Line_width__UI_;
 	public static String Split_multiple_attributes;
 	public static String Indent_using_tabs;
+	public static String Indent_using_spaces;
+	public static String Indentation_size;
+	public static String Indentation_size_tip;
 	public static String Clear_all_blank_lines_UI_;
 	public static String Grammar_Constraints;
 	public static String Use_inferred_grammar_in_absence_of;
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
index 106240e..cc3084b 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
@@ -247,6 +247,9 @@
 Line_width__UI_=Line &width:
 Split_multiple_attributes=Split &multiple attributes each on a new line
 Indent_using_tabs=&Indent using tabs
+Indent_using_spaces=I&ndent using spaces
+Indentation_size=In&dentation size:
+Indentation_size_tip=Indentation size
 Clear_all_blank_lines_UI_=Clear all &blank lines
 Grammar_Constraints=Grammar Constraints
 Use_inferred_grammar_in_absence_of=Use inferred grammar in absence of DTD/Schema
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java
index 97054a2..3df5380 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java
@@ -24,9 +24,9 @@
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.help.WorkbenchHelp;
 import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
 import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds;
 
@@ -137,13 +137,13 @@
 
 	protected void initializeOptions() {
 
-		fCheckBoxCompressEmptyElementTags.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-		fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS));
-		fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS));
-		fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES));
-		fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE));
-		fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES));
-		String EOLCode = getModelPreferences().getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE);
+		fCheckBoxCompressEmptyElementTags.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
+		fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
+		fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS));
+		fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES));
+		fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.FORMAT_SOURCE));
+		fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES));
+		String EOLCode = getModelPreferences().getString(XMLCorePreferenceNames.CLEANUP_EOL_CODE);
 		if (EOLCode.compareTo(CommonEncodingPreferenceNames.LF) == 0)
 			fRadioButtonConvertEOLUnix.setSelection(true);
 		else if (EOLCode.compareTo(CommonEncodingPreferenceNames.CR) == 0)
@@ -166,18 +166,18 @@
 
 	protected void storeOptions() {
 
-		getModelPreferences().setValue(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, fCheckBoxCompressEmptyElementTags.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection());
+		getModelPreferences().setValue(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, fCheckBoxCompressEmptyElementTags.getSelection());
+		getModelPreferences().setValue(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection());
+		getModelPreferences().setValue(XMLCorePreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection());
+		getModelPreferences().setValue(XMLCorePreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection());
+		getModelPreferences().setValue(XMLCorePreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection());
+		getModelPreferences().setValue(XMLCorePreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection());
 		if (fRadioButtonConvertEOLUnix.getSelection()) {
-			getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF);
+			getModelPreferences().setValue(XMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF);
 		} else if (fRadioButtonConvertEOLMac.getSelection()) {
-			getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR);
+			getModelPreferences().setValue(XMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR);
 		} else {
-			getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF);
+			getModelPreferences().setValue(XMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF);
 		}
 		// explicitly save plugin preferences so values are stored
 		XMLCorePlugin.getDefault().savePluginPreferences();
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java
index e49cff3..7564f14 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java
@@ -2202,7 +2202,7 @@
 	}
 
 	protected ContentAssistRequest newContentAssistRequest(Node node, Node possibleParent, IStructuredDocumentRegion documentRegion, ITextRegion completionRegion, int begin, int length, String filter) {
-		return new ContentAssistRequest(node, possibleParent, documentRegion, completionRegion, begin, length, filter, null);
+		return new ContentAssistRequest(node, possibleParent, documentRegion, completionRegion, begin, length, filter);
 	}
 
 	public void release() {
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java
index 908bc4f..2e193b1 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java
@@ -23,15 +23,11 @@
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
 import org.eclipse.wst.sse.core.internal.util.StringUtils;
-import org.eclipse.wst.sse.ui.internal.provisional.preferences.PreferenceManager;
 import org.w3c.dom.Node;
 
 
 public class ContentAssistRequest {
 	protected IStructuredDocumentRegion documentRegion = null;
-
-
-	protected PreferenceManager fPreferenceManager = null;
 	protected List macros = new ArrayList();
 	protected String matchString;
 	protected Node node = null;
@@ -46,7 +42,7 @@
 	/**
 	 * XMLContentAssistRequest constructor comment.
 	 */
-	public ContentAssistRequest(Node node, Node parent, IStructuredDocumentRegion documentRegion, ITextRegion completionRegion, int begin, int length, String filter, PreferenceManager preferencesManager) {
+	public ContentAssistRequest(Node node, Node parent, IStructuredDocumentRegion documentRegion, ITextRegion completionRegion, int begin, int length, String filter) {
 		super();
 		setNode(node);
 		setParent(parent);
@@ -55,7 +51,6 @@
 		setMatchString(filter);
 		setReplacementBeginPosition(begin);
 		setReplacementLength(length);
-		fPreferenceManager = preferencesManager;
 	}
 
 	public void addMacro(ICompletionProposal newProposal) {
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java
index 4dadbe9..31a8fdf 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java
@@ -23,27 +23,35 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Spinner;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames;
 import org.eclipse.wst.sse.ui.internal.preferences.ui.AbstractPreferencePage;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
 import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
 import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds;
 
 public class XMLSourcePreferencePage extends AbstractPreferencePage implements ModifyListener, SelectionListener, IWorkbenchPreferencePage {
+	private final int MIN_INDENTATION_SIZE = 0;
+	private final int MAX_INDENTATION_SIZE = 16;
+
 	// Content Assist
 	protected Button fAutoPropose;
 	protected Label fAutoProposeLabel;
 	protected Text fAutoProposeText;
 	protected Button fClearAllBlankLines;
-	protected Button fIndentUsingTabs;
+
 	// Formatting
 	protected Label fLineWidthLabel;
 	protected Text fLineWidthText;
 	protected Button fSplitMultiAttrs;
+	private Button fIndentUsingTabs;
+	private Button fIndentUsingSpaces;
+	private Spinner fIndentationSize;
+
 	// grammar constraints
 	protected Button fUseInferredGrammar;
 
@@ -85,12 +93,25 @@
 
 		fSplitMultiAttrs = createCheckBox(formattingGroup, XMLUIMessages.Split_multiple_attributes);
 		((GridData) fSplitMultiAttrs.getLayoutData()).horizontalSpan = 2;
-
-		fIndentUsingTabs = createCheckBox(formattingGroup, XMLUIMessages.Indent_using_tabs);
-		((GridData) fIndentUsingTabs.getLayoutData()).horizontalSpan = 2;
-
 		fClearAllBlankLines = createCheckBox(formattingGroup, XMLUIMessages.Clear_all_blank_lines_UI_);
 		((GridData) fClearAllBlankLines.getLayoutData()).horizontalSpan = 2;
+
+		fIndentUsingTabs = createRadioButton(formattingGroup, XMLUIMessages.Indent_using_tabs);
+		((GridData) fIndentUsingTabs.getLayoutData()).horizontalSpan = 2;
+		
+		fIndentUsingSpaces = createRadioButton(formattingGroup, XMLUIMessages.Indent_using_spaces);		
+		((GridData) fIndentUsingSpaces.getLayoutData()).horizontalSpan = 2;
+
+		createLabel(formattingGroup, XMLUIMessages.Indentation_size);
+		fIndentationSize = new Spinner(formattingGroup, SWT.READ_ONLY | SWT.BORDER);
+		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+		fIndentationSize.setLayoutData(gd);
+		fIndentationSize.setToolTipText(XMLUIMessages.Indentation_size_tip);
+		fIndentationSize.setMinimum(MIN_INDENTATION_SIZE);
+		fIndentationSize.setMaximum(MAX_INDENTATION_SIZE);
+		fIndentationSize.setIncrement(1);
+		fIndentationSize.setPageIncrement(4);
+		fIndentationSize.addModifyListener(this);
 	}
 
 	protected void createContentsForGrammarConstraintsGroup(Composite parent) {
@@ -122,15 +143,6 @@
 		}
 	}
 
-	/**
-	 * @deprecated key no longer needed (preference should be stored in their own preference store)
-	 */
-	protected String getKey(String key) {
-//		String contentTypeId = IContentTypeIdentifier.ContentTypeID_SSEXML;
-//		return PreferenceKeyGenerator.generateKey(key, contentTypeId);
-		return key;
-	}
-
 	protected Preferences getModelPreferences() {
 		return XMLCorePlugin.getDefault().getPluginPreferences();
 	}
@@ -149,10 +161,19 @@
 
 	protected void initializeValuesForFormattingGroup() {
 		// Formatting
-		fLineWidthText.setText(getModelPreferences().getString(CommonModelPreferenceNames.LINE_WIDTH));
-		fSplitMultiAttrs.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS));
-		fIndentUsingTabs.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS));
-		fClearAllBlankLines.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES));
+		fLineWidthText.setText(getModelPreferences().getString(XMLCorePreferenceNames.LINE_WIDTH));
+		fSplitMultiAttrs.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+		fClearAllBlankLines.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
+
+		if (XMLCorePreferenceNames.TAB.equals(getModelPreferences().getString(XMLCorePreferenceNames.INDENTATION_CHAR))) {
+			fIndentUsingTabs.setSelection(true);
+			fIndentUsingSpaces.setSelection(false);
+		} else {
+			fIndentUsingSpaces.setSelection(true);
+			fIndentUsingTabs.setSelection(false);
+		}
+
+		fIndentationSize.setSelection(getModelPreferences().getInt(XMLCorePreferenceNames.INDENTATION_SIZE));
 	}
 
 	protected void initializeValuesForGrammarConstraintsGroup() {
@@ -178,10 +199,18 @@
 
 	protected void performDefaultsForFormattingGroup() {
 		// Formatting
-		fLineWidthText.setText(getModelPreferences().getDefaultString(CommonModelPreferenceNames.LINE_WIDTH));
-		fSplitMultiAttrs.setSelection(getModelPreferences().getDefaultBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS));
-		fIndentUsingTabs.setSelection(getModelPreferences().getDefaultBoolean(CommonModelPreferenceNames.INDENT_USING_TABS));
-		fClearAllBlankLines.setSelection(getModelPreferences().getDefaultBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES));
+		fLineWidthText.setText(getModelPreferences().getDefaultString(XMLCorePreferenceNames.LINE_WIDTH));
+		fSplitMultiAttrs.setSelection(getModelPreferences().getDefaultBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+		fClearAllBlankLines.setSelection(getModelPreferences().getDefaultBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
+
+		if (XMLCorePreferenceNames.TAB.equals(getModelPreferences().getDefaultString(XMLCorePreferenceNames.INDENTATION_CHAR))) {
+			fIndentUsingTabs.setSelection(true);
+			fIndentUsingSpaces.setSelection(false);
+		} else {
+			fIndentUsingSpaces.setSelection(true);
+			fIndentUsingTabs.setSelection(false);
+		}
+		fIndentationSize.setSelection(getModelPreferences().getDefaultInt(XMLCorePreferenceNames.INDENTATION_SIZE));
 	}
 
 	protected void performDefaultsForGrammarConstraintsGroup() {
@@ -210,10 +239,16 @@
 
 	protected void storeValuesForFormattingGroup() {
 		// Formatting
-		getModelPreferences().setValue(CommonModelPreferenceNames.LINE_WIDTH, fLineWidthText.getText());
-		getModelPreferences().setValue(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, fSplitMultiAttrs.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.INDENT_USING_TABS, fIndentUsingTabs.getSelection());
-		getModelPreferences().setValue(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, fClearAllBlankLines.getSelection());
+		getModelPreferences().setValue(XMLCorePreferenceNames.LINE_WIDTH, fLineWidthText.getText());
+		getModelPreferences().setValue(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS, fSplitMultiAttrs.getSelection());
+		getModelPreferences().setValue(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, fClearAllBlankLines.getSelection());
+
+		if (fIndentUsingTabs.getSelection()) {
+			getModelPreferences().setValue(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.TAB);
+		} else {
+			getModelPreferences().setValue(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.SPACE);
+		}
+		getModelPreferences().setValue(XMLCorePreferenceNames.INDENTATION_SIZE, fIndentationSize.getSelection());
 	}
 
 	protected void storeValuesForGrammarConstraintsGroup() {
@@ -237,6 +272,19 @@
 			}
 		}
 
+		int indentSize = 0;
+		if (fIndentationSize != null) {
+			try {
+				indentSize = fIndentationSize.getSelection();
+				if ((indentSize < MIN_INDENTATION_SIZE) || (indentSize > MAX_INDENTATION_SIZE))
+					throw new NumberFormatException();
+			} catch (NumberFormatException nfexc) {
+				setInvalidInputMessage(Integer.toString(indentSize));
+				setValid(false);
+				isError = true;
+			}
+		}
+
 		if (!isError) {
 			setErrorMessage(null);
 			setValid(true);