diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/subeditors/FRaMEDFeatureEditor.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/subeditors/FRaMEDFeatureEditor.java
index c8ba6e95f66bf3eb3d7b110b0b758175b1728017..ea827fb34b69611e0ca6551e15539352b57f7058 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/subeditors/FRaMEDFeatureEditor.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/subeditors/FRaMEDFeatureEditor.java
@@ -1,15 +1,21 @@
 package org.framed.iorm.ui.subeditors;
 
+import static de.ovgu.featureide.fm.core.localization.StringTable.UPDATING_FEATURE_MODEL_EDITS;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.graphiti.mm.pictograms.Diagram;
@@ -37,12 +43,20 @@ import org.framed.iorm.ui.configuration.ChangeConfigurationCommand;
 import org.framed.iorm.ui.exceptions.FeatureModelNotReadableException;
 import org.framed.iorm.ui.multipage.MultipageEditor;
 
+import de.ovgu.featureide.fm.core.analysis.cnf.formula.FeatureModelFormula;
 import de.ovgu.featureide.fm.core.base.IFeatureModel;
 import de.ovgu.featureide.fm.core.configuration.Configuration;
+import de.ovgu.featureide.fm.core.configuration.ConfigurationAnalyzer;
+import de.ovgu.featureide.fm.core.configuration.ConfigurationPropagator;
+import de.ovgu.featureide.fm.core.configuration.ConfigurationPropagator.UpdateMethod;
 import de.ovgu.featureide.fm.core.configuration.SelectableFeature;
 import de.ovgu.featureide.fm.core.configuration.Selection;
 import de.ovgu.featureide.fm.core.configuration.TreeElement;
 import de.ovgu.featureide.fm.core.io.manager.FeatureModelManager;
+import de.ovgu.featureide.fm.core.job.LongRunningJob;
+import de.ovgu.featureide.fm.core.job.monitor.IMonitor;
+import de.ovgu.featureide.fm.ui.editors.featuremodel.operations.FeatureModelOperationWrapper;
+import de.ovgu.featureide.fm.ui.views.FeatureModelEditView;
 
 /**
  * the feature editor used by the {@link MultipageEditor}
@@ -97,7 +111,18 @@ public class FRaMEDFeatureEditor extends EditorPart {
 	 * the item of the tree view {@link #tree}
 	 */
 	private final Map<SelectableFeature, TreeItem> itemMap = new HashMap<SelectableFeature, TreeItem>();
+
+	
+	private ConfigurationPropagator configurationPropagator;
 	
+	/**
+	 * returns the ConfigurationPropagator for the configuration.
+	 * @return
+	 */
+	public ConfigurationPropagator getConfigurationPropagator() {
+		return configurationPropagator;
+	}
+
 	/**
 	 * the get method the configuration of the feature editor
 	 * @return the class variable {@link #configuration}
@@ -178,12 +203,30 @@ public class FRaMEDFeatureEditor extends EditorPart {
 	 */
 	private void loadConfiguration(Model rootModel, IFeatureModel featureModel) {
 	    FRaMEDConfiguration framedConfiguration = rootModel.getFramedConfiguration();
-	    configuration = new Configuration(featureModel);
-	    configuration.getPropagator().update();
+	    //Code for new version
+	    FeatureModelFormula formula=new FeatureModelFormula(featureModel);
+	    configuration = new Configuration(new FeatureModelFormula(featureModel));
+	    configurationPropagator=new ConfigurationPropagator(formula,configuration);
+	    
+	    //configuration = new Configuration(featureModel);
+	    //configuration.getPropagator().update();
 	    if (framedConfiguration != null) {
 	    	for (FRaMEDFeature f : framedConfiguration.getFeatures())
 	    		configuration.setManual(f.getName().getLiteral(), Selection.SELECTED);
 	    }
+//	    final LongRunningJob<Collection<SelectableFeature>> job=new LongRunningJob<>("updateing configuration", configurationPropagator.update());
+//	    job.schedule();
+//	    try {
+//			job.join();
+//		} catch (InterruptedException e) {
+//			e.printStackTrace();
+//		}
+//	    if (job.getResults()!=null) {
+//	    	System.out.println("INFO : "+job.getResults());
+//	    	for (SelectableFeature sf:job.getResults()) {
+//	    		configuration.setAutomatic(sf, sf.getAutomatic());
+//	    	}
+//	    }
 	}
 	
 	/**
@@ -290,7 +333,18 @@ public class FRaMEDFeatureEditor extends EditorPart {
 	 * updates the labels text and color if the configuration is valid or not
 	 */
 	 private void updateInfoLabel() {
-		 Boolean valid = configuration.isValid();
+		 //Boolean valid = configuration.isValid();
+		 //Code for new version
+		 LongRunningJob<Boolean> job=new LongRunningJob<Boolean>("isValid check",configurationPropagator.isValid());
+		 job.schedule();
+		 Boolean valid=false;
+		 try {
+			job.join();
+			if (job.getResults()!=null)
+				valid=job.getResults();
+		 } catch (InterruptedException e) {
+			e.printStackTrace();
+		 }		 
 		 infoLabel.setText(valid ? "VALID Configuration" : "INVALID Configuration");
 		 infoLabel.setForeground(valid ? COLOR_VALID_CONFIGURATION : COLOR_INVALID_CONFIGURATION);
 	}
@@ -301,6 +355,23 @@ public class FRaMEDFeatureEditor extends EditorPart {
 	private void updateTree() {
 	    tree.removeAll();
 	    final TreeItem root = new TreeItem(tree, 0);
+	    //New code
+//	    final LongRunningJob<Collection<SelectableFeature>> job=new LongRunningJob<>("updateing configuration", configurationPropagator.update());
+//	    job.setPriority(LongRunningJob.SHORT);
+//	    job.schedule();
+//		try {
+//			job.join();
+//		} catch (InterruptedException e) {
+//			e.printStackTrace();
+//		}
+//	    if (job.getResults()!=null) {
+//	    	System.out.println("INFO : "+job.getResults());
+//	    	for (SelectableFeature sf:job.getResults()) {
+//	    		configuration.setAutomatic(sf, sf.getAutomatic());
+//	    	}
+//	    }
+	    
+	    
 	    final SelectableFeature rootFeature = configuration.getRoot();
 		root.setText(configuration.getRoot().getName());
 	    root.setData(configuration.getRoot());
@@ -490,5 +561,7 @@ public class FRaMEDFeatureEditor extends EditorPart {
 	 */
 	@Override
 	public void doSaveAs() {}
+
+
 }