diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleDataModel.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleDataModel.java
index 60a09e4..bc97032 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleDataModel.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleDataModel.java
@@ -2,7 +2,7 @@
 
 import org.eclipse.wst.common.frameworks.internal.operations.WTPOperation;
 
-public class DependentDeployableModuleDataModel extends DeployableModuleDataModel {
+public class DependentDeployableModuleDataModel extends DeployableModuleBuilderDataModel {
 
     /**
      * 
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleDataModel.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderDataModel.java
similarity index 92%
rename from plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleDataModel.java
rename to plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderDataModel.java
index d40b7f0..7421b9e 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleDataModel.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderDataModel.java
@@ -3,7 +3,7 @@
 import org.eclipse.wst.common.frameworks.internal.operations.WTPOperation;
 import org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel;
 
-public abstract class DeployableModuleDataModel extends WTPOperationDataModel {
+public abstract class DeployableModuleBuilderDataModel extends WTPOperationDataModel {
 	/**
 	 * Required, type IProject
 	 */
@@ -39,7 +39,7 @@
     /**
      * 
      */
-    public DeployableModuleDataModel() {
+    public DeployableModuleBuilderDataModel() {
         super();
         // TODO Auto-generated constructor stub
     }
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleFactory.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderFactory.java
similarity index 64%
rename from plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleFactory.java
rename to plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderFactory.java
index 0791c90..da5f0dc 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleFactory.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderFactory.java
@@ -3,12 +3,12 @@
 
 
 
-public interface DeployableModuleFactory {
+public interface DeployableModuleBuilderFactory {
     /**
      *
      * This method is used to create a fully populated data model for the 
      * DeployableModuleProjectBuilderDataModel to then run on.  
      * 
      */
-   public DeployableModuleDataModel createDeploymentModuleDataModel();
+   public DeployableModuleBuilderDataModel createDeploymentModuleDataModel();
 }
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderFactoryRegistry.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderFactoryRegistry.java
new file mode 100644
index 0000000..44c9761
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderFactoryRegistry.java
@@ -0,0 +1,26 @@
+package org.eclipse.wst.common.modulecore.builder;
+
+import java.util.HashMap;
+
+public class DeployableModuleBuilderFactoryRegistry {
+    public static DeployableModuleBuilderFactoryRegistry INSTANCE = new DeployableModuleBuilderFactoryRegistry();
+
+    private HashMap factories;
+    /**
+     * 
+     */
+    public DeployableModuleBuilderFactoryRegistry() {
+        super();
+    }
+
+    public void registerDeployableFactory(String id, DeployableModuleBuilderFactory factoryClassName){
+        if(factories == null)
+            factories = new HashMap();
+        factories.put(id, factoryClassName);
+    }
+    
+    public DeployableModuleBuilderFactory createDeployableFactory(String id) {
+        if(factories == null) return null;
+        return (DeployableModuleBuilderFactory)factories.get(id);
+    }
+}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderOperation.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderOperation.java
new file mode 100644
index 0000000..4209ba8
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleBuilderOperation.java
@@ -0,0 +1,36 @@
+package org.eclipse.wst.common.modulecore.builder;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.wst.common.frameworks.internal.operations.WTPOperation;
+import org.eclipse.wst.common.frameworks.internal.operations.WTPOperationDataModel;
+
+public class DeployableModuleBuilderOperation extends WTPOperation {
+
+    /**
+     * @param operationDataModel
+     */
+    public DeployableModuleBuilderOperation(WTPOperationDataModel operationDataModel) {
+        super(operationDataModel);
+        // TODO Auto-generated constructor stub
+    }
+
+    /**
+     * 
+     */
+    public DeployableModuleBuilderOperation() {
+        super();
+        // TODO Auto-generated constructor stub
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.wst.common.frameworks.internal.operations.WTPOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
+     */
+    protected void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException {
+        // TODO Auto-generated method stub
+
+    }
+
+}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleFactoryRegistry.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleFactoryRegistry.java
deleted file mode 100644
index e0a49d8..0000000
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleFactoryRegistry.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.wst.common.modulecore.builder;
-
-import java.util.HashMap;
-
-public class DeployableModuleFactoryRegistry {
-    public static DeployableModuleFactoryRegistry INSTANCE = new DeployableModuleFactoryRegistry();
-
-    private HashMap factories;
-    /**
-     * 
-     */
-    public DeployableModuleFactoryRegistry() {
-        super();
-    }
-
-    public void registerDeployableFactory(String id, DeployableModuleFactory factoryClassName){
-        if(factories == null)
-            factories = new HashMap();
-        factories.put(id, factoryClassName);
-    }
-    
-    public DeployableModuleFactory createDeployableFactory(String id) {
-        if(factories == null) return null;
-        return (DeployableModuleFactory)factories.get(id);
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleProjectBuilderDataModel.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleProjectBuilderDataModel.java
index aa742e2..ab19365 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleProjectBuilderDataModel.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DeployableModuleProjectBuilderDataModel.java
@@ -94,11 +94,11 @@
         
         if(wbModules == null) return null;
         
-        DeployableModuleFactory factory = null;
-        DeployableModuleDataModel dataModel = null;
+        DeployableModuleBuilderFactory factory = null;
+        DeployableModuleBuilderDataModel dataModel = null;
         
         for(int i = 0; i<wbModules.length; i++){
-            factory = DeployableModuleFactoryRegistry.INSTANCE.createDeployableFactory(wbModules[i].getModuleType().getModuleTypeId());
+            factory = DeployableModuleBuilderFactoryRegistry.INSTANCE.createDeployableFactory(wbModules[i].getModuleType().getModuleTypeId());
             if(factory != null) {
                 dataModel = factory.createDeploymentModuleDataModel();
                 // TODO: set relevant DM info;
