*** empty log message ***
diff --git a/bundles/org.eclipse.wst.xsl.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsl.core/META-INF/MANIFEST.MF
index c4bb336..0361063 100644
--- a/bundles/org.eclipse.wst.xsl.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xsl.core/META-INF/MANIFEST.MF
@@ -34,6 +34,7 @@
  org.eclipse.wst.xsl.core.internal.validation;x-internal:=true,
  org.eclipse.wst.xsl.core.internal.validation.eclipse;x-internal:=true,
  org.eclipse.wst.xsl.core.internal.xinclude;x-internal:=true,
+ org.eclipse.wst.xsl.core.model,
  org.eclipse.wst.xsl.core.resolver;
   uses:="org.eclipse.wst.common.uriresolver.internal.provisional,
    org.xml.sax,
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/XSLCore.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/XSLCore.java
index 7cd7bca..bd96265 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/XSLCore.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/XSLCore.java
@@ -22,8 +22,8 @@
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.eclipse.wst.xsl.core.internal.model.Stylesheet;
 import org.eclipse.wst.xsl.core.internal.model.StylesheetBuilder;
-import org.eclipse.wst.xsl.core.internal.model.StylesheetModel;
 import org.eclipse.wst.xsl.core.internal.util.FileUtil;
+import org.eclipse.wst.xsl.core.model.StylesheetModel;
 
 /**
  * The interface to all aspects of the XSL core functionality.
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/XSLCorePlugin.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/XSLCorePlugin.java
index 19e8a23..13fc521 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/XSLCorePlugin.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/XSLCorePlugin.java
@@ -14,9 +14,12 @@
 import javax.xml.parsers.SAXParserFactory;
 
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdapterFactory;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.xsl.core.model.StylesheetModel;
 import org.osgi.framework.BundleContext;
 import org.osgi.util.tracker.ServiceTracker;
 
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidator.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidator.java
index 24a37f2..a6c5a1e 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidator.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidator.java
@@ -30,12 +30,12 @@
 import org.eclipse.wst.xsl.core.internal.model.CallTemplate;
 import org.eclipse.wst.xsl.core.internal.model.Include;
 import org.eclipse.wst.xsl.core.internal.model.Parameter;
-import org.eclipse.wst.xsl.core.internal.model.StylesheetModel;
 import org.eclipse.wst.xsl.core.internal.model.Template;
 import org.eclipse.wst.xsl.core.internal.model.XSLAttribute;
 import org.eclipse.wst.xsl.core.internal.model.XSLElement;
 import org.eclipse.wst.xsl.core.internal.model.XSLNode;
 import org.eclipse.wst.xsl.core.internal.util.Debug;
+import org.eclipse.wst.xsl.core.model.StylesheetModel;
 
 /**
  * The XSL validator for workspace XSL files.
@@ -210,7 +210,7 @@
 				checkParameters(report, template);
 			} 
 
-			for (Template checkTemplate : stylesheetComposed.getTemplates())
+			for (Template checkTemplate : stylesheetComposed.getTemplates().getTemplates())
 			{
 				if (checkTemplate != template && checkTemplate.equals(template))
 				{
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/Validator.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/Validator.java
index 93188c5..574447f 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/Validator.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/Validator.java
@@ -39,11 +39,11 @@
 import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
 import org.eclipse.wst.xsl.core.XSLCore;
 import org.eclipse.wst.xsl.core.internal.XSLCorePlugin;
-import org.eclipse.wst.xsl.core.internal.model.StylesheetModel;
 import org.eclipse.wst.xsl.core.internal.model.XSLAttribute;
 import org.eclipse.wst.xsl.core.internal.model.XSLNode;
 import org.eclipse.wst.xsl.core.internal.validation.XSLValidationMessage;
 import org.eclipse.wst.xsl.core.internal.validation.XSLValidator;
+import org.eclipse.wst.xsl.core.model.StylesheetModel;
 
 /**
  * The XSL validator extends the XML <code>AbstractNestedValidator</code>.
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/Validator2.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/Validator2.java
index 354567a..8c8c7a2 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/Validator2.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/Validator2.java
@@ -19,9 +19,9 @@
 import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
 import org.eclipse.wst.xsl.core.XSLCore;
 import org.eclipse.wst.xsl.core.internal.XSLCorePlugin;
-import org.eclipse.wst.xsl.core.internal.model.StylesheetModel;
 import org.eclipse.wst.xsl.core.internal.validation.XSLValidationMessage;
 import org.eclipse.wst.xsl.core.internal.validation.XSLValidator;
+import org.eclipse.wst.xsl.core.model.StylesheetModel;
 
 /**
  * Validator for both build validation (AbstractValidator) and as-you-type validation (IValidatorJob).
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/GlobalVariables.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/GlobalVariables.java
new file mode 100644
index 0000000..267cc3f
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/GlobalVariables.java
@@ -0,0 +1,12 @@
+package org.eclipse.wst.xsl.core.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.wst.xsl.core.internal.model.Variable;
+
+public class GlobalVariables extends XSLModelObject
+{
+	final List<Variable> globalVariables = new ArrayList<Variable>();
+
+}
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/Includes.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/Includes.java
new file mode 100644
index 0000000..cea4746
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/Includes.java
@@ -0,0 +1,16 @@
+package org.eclipse.wst.xsl.core.model;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.wst.xsl.core.internal.model.Stylesheet;
+
+public class Includes extends XSLModelObject
+{
+	private final Set<Stylesheet> stylesheets = new HashSet<Stylesheet>();
+
+	public Set<Stylesheet> getStylesheets()
+	{
+		return stylesheets;
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/model/StylesheetModel.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/StylesheetModel.java
similarity index 76%
rename from bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/model/StylesheetModel.java
rename to bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/StylesheetModel.java
index 8f93326..c6c7365 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/model/StylesheetModel.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/StylesheetModel.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Doug Satchwell (Chase Technology Ltd) - initial API and implementation
  *******************************************************************************/
-package org.eclipse.wst.xsl.core.internal.model;
+package org.eclipse.wst.xsl.core.model;
 
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -16,7 +16,11 @@
 import java.util.Set;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.PlatformObject;
 import org.eclipse.wst.xsl.core.XSLCore;
+import org.eclipse.wst.xsl.core.internal.model.Include;
+import org.eclipse.wst.xsl.core.internal.model.Stylesheet;
+import org.eclipse.wst.xsl.core.internal.model.Template;
 import org.eclipse.wst.xsl.core.internal.util.Debug;
 
 /**
@@ -36,14 +40,14 @@
  * 
  * @author Doug Satchwell
  */
-public class StylesheetModel {
+public class StylesheetModel extends XSLModelObject {
 	private final Stylesheet stylesheet;
 	boolean circularReference;
 	final Set<IFile> files = new HashSet<IFile>();
-	final Set<Stylesheet> stylesheets = new HashSet<Stylesheet>();
+	final Includes includeModel = new Includes();
 	final Set<Template> templateSet = new HashSet<Template>();
-	final List<Template> templates = new ArrayList<Template>();
-	final List<Variable> globalVariables = new ArrayList<Variable>();
+	final Templates templateModel = new Templates();
+	final GlobalVariables globalVariableModel = new GlobalVariables();
 
 	/**
 	 * Create a new instance of this.
@@ -61,8 +65,8 @@
 	 * 
 	 * @return the set of stylesheets in the entire hierarchy
 	 */
-	public Set<Stylesheet> getIncludedStylesheets() {
-		return stylesheets;
+	public Includes getIncludes() {
+		return includeModel;
 	}
 
 	/**
@@ -90,8 +94,8 @@
 	 * 
 	 * @return the set of files in the entire hierarchy
 	 */
-	public List<Variable> getGlobalVariables() {
-		return globalVariables;
+	public GlobalVariables getGlobalVariables() {
+		return globalVariableModel;
 	}
 
 	/**
@@ -100,8 +104,8 @@
 	 * 
 	 * @return the set of templates in the entire hierarchy
 	 */
-	public List<Template> getTemplates() {
-		return templates;
+	public Templates getTemplates() {
+		return templateModel;
 	}
 
 	/**
@@ -113,8 +117,8 @@
 	 * @return the set of named templates with the given name
 	 */
 	public List<Template> getTemplatesByName(String name) {
-		List<Template> matching = new ArrayList<Template>(templates.size());
-		for (Template template : templates) {
+		List<Template> matching = new ArrayList<Template>(templateModel.getTemplates().size());
+		for (Template template : templateModel.getTemplates()) {
 			if (name.equals(template.getName()))
 				matching.add(template);
 		}
@@ -130,8 +134,8 @@
 	 * @return the set of templates that match
 	 */
 	public List<Template> findMatching(Template toMatch) {
-		List<Template> matching = new ArrayList<Template>(templates.size());
-		for (Template template : templates) {
+		List<Template> matching = new ArrayList<Template>(templateModel.getTemplates().size());
+		for (Template template : templateModel.getTemplates()) {
 			if (template.equals(toMatch))
 				matching.add(template);
 		}
@@ -159,12 +163,12 @@
 		if (Debug.debugXSLModel) {
 			System.out.println("Fixing " + stylesheet.getFile() + "...");
 		}
-		templates.addAll(stylesheet.templates);
-		templateSet.addAll(stylesheet.templates);
-		for (Include inc : stylesheet.includes) {
+		templateModel.getTemplates().addAll(stylesheet.getTemplates());
+		templateSet.addAll(stylesheet.getTemplates());
+		for (Include inc : stylesheet.getIncludes()) {
 			handleInclude(inc);
 		}
-		for (Include inc : stylesheet.imports) {
+		for (Include inc : stylesheet.getImports()) {
 			handleInclude(inc);
 		}
 		if (Debug.debugXSLModel) {
@@ -189,15 +193,15 @@
 				file);
 		if (includedModel == null)
 			return;
-		stylesheets.add(includedModel.getStylesheet());
+		includeModel.getStylesheets().add(includedModel.getStylesheet());
 
 		if (include.getIncludeType() == Include.INCLUDE) {
-			templates.addAll(includedModel.templates);
-			templateSet.addAll(includedModel.templates);
+			templateModel.getTemplates().addAll(includedModel.templateModel.getTemplates());
+			templateSet.addAll(includedModel.templateModel.getTemplates());
 		} else {
-			for (Template includedTemplate : includedModel.templates) {
+			for (Template includedTemplate : includedModel.templateModel.getTemplates()) {
 				if (!templateSet.contains(includedTemplate)) {
-					templates.add(includedTemplate);
+					templateModel.getTemplates().add(includedTemplate);
 					templateSet.add(includedTemplate);
 				}
 			}
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/Templates.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/Templates.java
new file mode 100644
index 0000000..cbcc641
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/Templates.java
@@ -0,0 +1,17 @@
+package org.eclipse.wst.xsl.core.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.wst.xsl.core.internal.model.Template;
+
+public class Templates extends XSLModelObject
+{
+	private final List<Template> templates = new ArrayList<Template>();
+
+	public List<Template> getTemplates()
+	{
+		return templates;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/XSLModelObject.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/XSLModelObject.java
new file mode 100644
index 0000000..9ad8995
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/model/XSLModelObject.java
@@ -0,0 +1,8 @@
+package org.eclipse.wst.xsl.core.model;
+
+import org.eclipse.core.runtime.PlatformObject;
+
+class XSLModelObject extends PlatformObject
+{
+	
+}