bugs fixed
diff --git a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/core/RelationLoader.class b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/core/RelationLoader.class
index 4270b94..661f264 100644
--- a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/core/RelationLoader.class
+++ b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/core/RelationLoader.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/handler/SuggestRefactoringAction.class b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/handler/SuggestRefactoringAction.class
index 3651ed7..61dada0 100644
--- a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/handler/SuggestRefactoringAction.class
+++ b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/handler/SuggestRefactoringAction.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/managers/EraseManager.class b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/managers/EraseManager.class
index 5026a66..11fe063 100644
--- a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/managers/EraseManager.class
+++ b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/managers/EraseManager.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/managers/PluginXMLManager.class b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/managers/PluginXMLManager.class
index 6db8586..11e373f 100644
--- a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/managers/PluginXMLManager.class
+++ b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/managers/PluginXMLManager.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/ui/RelationsPropertyPage.class b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/ui/RelationsPropertyPage.class
index 330acf2..9b805fe 100644
--- a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/ui/RelationsPropertyPage.class
+++ b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/ui/RelationsPropertyPage.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/ui/SuggestionDialog.class b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/ui/SuggestionDialog.class
index af5fd98..a05dfb1 100644
--- a/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/ui/SuggestionDialog.class
+++ b/org.eclipse.emf.refactor.smells.eraser/bin/org/eclipse/emf/refactor/smells/eraser/ui/SuggestionDialog.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/core/RelationLoader.java b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/core/RelationLoader.java
index 5a75069..2502438 100644
--- a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/core/RelationLoader.java
+++ b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/core/RelationLoader.java
@@ -35,9 +35,9 @@
 						smellIDs.add(relationElementChild.getAttribute(ExtensionPointTags.SMELL_ID_TAG));

 					}

 				}

-				Refactoring refactoring = EraseManager.getRefactoring(refactoringID);

+				Refactoring refactoring = EraseManager.getInstance().getRefactoring(refactoringID);

 				for(String smellIDFromList : smellIDs){

-					ModelSmell smell = EraseManager.getSmell(smellIDFromList);

+					ModelSmell smell = EraseManager.getInstance().getSmell(smellIDFromList);

 					if(refactoring != null && smell != null){

 						if(relationMap.containsKey(refactoring)){

 							relationMap.get(refactoring).add(smell);

@@ -70,9 +70,9 @@
 						refactoringIDs.add(relationElementChild.getAttribute(ExtensionPointTags.REFACTORING_ID_TAG));

 					}

 				}

-				ModelSmell smell = EraseManager.getSmell(smellID);

+				ModelSmell smell = EraseManager.getInstance().getSmell(smellID);

 				for(String refactoringID : refactoringIDs){

-					Refactoring refactoring = EraseManager.getRefactoring(refactoringID);				

+					Refactoring refactoring = EraseManager.getInstance().getRefactoring(refactoringID);				

 					if(refactoring != null && smell != null){

 						if(relationMap.containsKey(smell)){

 							relationMap.get(smell).add(refactoring);

diff --git a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/handler/SuggestRefactoringAction.java b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/handler/SuggestRefactoringAction.java
index 0a85538..5a502ab 100644
--- a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/handler/SuggestRefactoringAction.java
+++ b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/handler/SuggestRefactoringAction.java
@@ -38,7 +38,7 @@
 		if(group != null){
 			System.out.println("Group: " +  group);			
 			ModelSmell smell = group.getModelSmell();
-			SuggestionDialog dialog = new SuggestionDialog(shell, EraseManager.getCausedModelSmells(EraseManager.getFixingRefactorings(smell)), group);
+			SuggestionDialog dialog = new SuggestionDialog(shell, EraseManager.getInstance().getCausedModelSmells(EraseManager.getInstance().getFixingRefactorings(smell)), group);
 			int dialogResult = dialog.open();
 			if(dialogResult == Dialog.OK) {
 				Refactoring selectedRefactoring = dialog.getSelectedRefactoring();
diff --git a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/managers/EraseManager.java b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/managers/EraseManager.java
index 693f148..5bb7753 100644
--- a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/managers/EraseManager.java
+++ b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/managers/EraseManager.java
@@ -40,12 +40,24 @@
 	

 	private static final SmellToRefactoringsRelation smellToRefactorings = SmellToRefactoringsRelation.INSTANCE;

 	private static final RefactoringToSmellsRelation refactoringToSmellsRelation = RefactoringToSmellsRelation.INSTANCE;

-	private static final List<Refactoring> allRefactorings = RefactoringManager.getAllRefactorings();

-	private static final List<ModelSmell> allSmells = ModelSmellManager.getAllModelSmells();

+	private static List<Refactoring> allRefactorings = RefactoringManager.getAllRefactorings();

+	private static List<ModelSmell> allSmells = ModelSmellManager.getAllModelSmells();

 	

-	public EraseManager() { }

+	private static EraseManager instance;

 	

-	public static ModelSmell getSmell(String id) {

+	private EraseManager() {

+		System.out.println("EraseManager initialized!");

+	}

+	

+	public static EraseManager getInstance() {

+		if (instance == null) {

+			instance = new EraseManager();

+		}

+		return instance;

+	}

+	

+	public ModelSmell getSmell(String id) {

+		allSmells = ModelSmellManager.getAllModelSmells();

 		for(ModelSmell currentSmell : allSmells) {

 			if(currentSmell.getId().equals(id))

 				return currentSmell;

@@ -53,7 +65,8 @@
 		return null;

 	}

 	

-	public static Refactoring getRefactoring(String id) {

+	public Refactoring getRefactoring(String id) {

+		allRefactorings = RefactoringManager.getAllRefactorings();

 		for(Refactoring currentRefactoring : allRefactorings) {

 			if(currentRefactoring.getId().equals(id))

 				return currentRefactoring;

@@ -67,7 +80,7 @@
 	 * @param group - The EObjectGroup for which the applicable refactorings are requested

 	 * @return Map containing the applicable refactorings (key) and their possible context objects (value)

 	 */

-	public static Map<Refactoring, Set<EObject>> getApplicableRefactoringsDynamically(EObjectGroup group){

+	public Map<Refactoring, Set<EObject>> getApplicableRefactoringsDynamically(EObjectGroup group){

 		Map<Refactoring, Set<EObject>> applicableRefactorings = new HashMap<Refactoring, Set<EObject>>();

 		for(Refactoring refactoring : allRefactorings){

 			for(EObject eObject : group.getEObjects()){

@@ -93,7 +106,7 @@
 	 * @param refactoring - the EMFRefactoring of which the initial check is supposed to be performed

 	 * @return boolean indicating whether or not the initial check passed (true) or not (false)

 	 */

-	public static boolean passesInitialCheck(EObject contextObject, Refactoring refactoring) {

+	public boolean passesInitialCheck(EObject contextObject, Refactoring refactoring) {

 		ArrayList<EObject> selection = new ArrayList<EObject>();

 		selection.add(contextObject);

 		if (refactoring.getGui().showInMenu(selection)) {

@@ -123,7 +136,7 @@
 	 * @param entries - the RelationEntries in which the relations are stored

 	 * @param saveDanglingEntries - flag indicating whether dangling relations should be saved (true) or discarded (false)

 	 */

-	public static void saveRelations(IProgressMonitor monitor, IProject project, ProjectEntries entries, boolean saveDanglingEntries){

+	public void saveRelations(IProgressMonitor monitor, IProject project, ProjectEntries entries, boolean saveDanglingEntries){

 		PluginXMLManager.saveProjectEntries(entries, project, saveDanglingEntries);

 		try {

 			project.refreshLocal(IProject.DEPTH_ZERO, monitor);

@@ -146,7 +159,7 @@
 	 * @param smell - ModelSmell for which the fixing refactorings are found

 	 * @return - Set of Refactoring objects

 	 */

-	public static Set<Refactoring> getFixingRefactorings(ModelSmell smell){

+	public Set<Refactoring> getFixingRefactorings(ModelSmell smell){

 		return smellToRefactorings.getFixingRefactorings(smell);

 	}

 	

@@ -156,7 +169,7 @@
 	 * @param refactoring -  the Refactoring for which the caused smells are to be found

 	 * @return Set of ModelSmell objects

 	 */

-	public static Set<ModelSmell> getCausedModelSmells(Refactoring refactoring){

+	public Set<ModelSmell> getCausedModelSmells(Refactoring refactoring){

 		return refactoringToSmellsRelation.getCausedSmells(refactoring);

 	}

 	

@@ -165,7 +178,7 @@
 	 * @param refactorings - the Collection of refactorings for which the smells are to be found

 	 * @return Map containing the refactorings as keys and the lists of caused smells as values

 	 */

-	public static Map<Refactoring, Set<ModelSmell>> getCausedModelSmells(Collection<Refactoring> refactorings){

+	public Map<Refactoring, Set<ModelSmell>> getCausedModelSmells(Collection<Refactoring> refactorings){

 		HashMap<Refactoring, Set<ModelSmell>> relation = new HashMap<Refactoring, Set<ModelSmell>>();

 		for(Refactoring refactoring : refactorings){

 			relation.put(refactoring, getCausedModelSmells(refactoring));

@@ -178,7 +191,7 @@
 	 * 

 	 * @return Set of Strings representing the metamodel URIs

 	 */

-	public static Set<String> getMetamodelURIs(){

+	public Set<String> getMetamodelURIs(){

 		HashSet<String> metamodelURIs = new HashSet<String>();

 		for(ModelSmell smell : allSmells){

 			metamodelURIs.add(smell.getMetamodel());

@@ -194,7 +207,7 @@
 	 * 

 	 * @return List of Refactoring objects.

 	 */

-	public static List<Refactoring> getAllrefactorings() {

+	public List<Refactoring> getAllrefactorings() {

 		return allRefactorings;

 	}

 

@@ -203,7 +216,7 @@
 	 * 

 	 * @return List of ModelSmell objects

 	 */

-	public static List<ModelSmell> getAllsmells() {

+	public List<ModelSmell> getAllsmells() {

 		return allSmells;

 	}

 	

@@ -213,7 +226,7 @@
 	 * @param metamodelURI - String containing the metamodel URI

 	 * @return Set of ModelSmell objects.

 	 */

-	public static Set<ModelSmell> getAllInstalledSmellsForMetamodel(String metamodelURI){

+	public Set<ModelSmell> getAllInstalledSmellsForMetamodel(String metamodelURI){

 		return filterSmellsForMetamodel(allSmells, metamodelURI);

 	}

 	

@@ -223,7 +236,7 @@
 	 * @param metamodelURI - String containing the metamodel URI

 	 * @return Set of Refactoring objects

 	 */

-	public static Set<Refactoring> getAllInstalledRefactoringsForMetamodel(String metamodelURI){

+	public Set<Refactoring> getAllInstalledRefactoringsForMetamodel(String metamodelURI){

 		return filterRefactoringsForMetamodel(allRefactorings, metamodelURI);

 	}

 	

@@ -232,7 +245,7 @@
 	 * 

 	 * @return Set of ModelRefactoringStub objects

 	 */

-	public static Set<ModelRefactoringStub> getAllRefactoringStubsFromWorkspace(){

+	public Set<ModelRefactoringStub> getAllRefactoringStubsFromWorkspace(){

 		Set<ModelRefactoringStub> refactorings = new HashSet<ModelRefactoringStub>();

 		List<IProject> pluginProject = getAllPluginProjects();

 		for(IProject project : pluginProject){

@@ -248,14 +261,14 @@
 	 * @param metamodelURI - String containing the metamodel URI

 	 * @return Set of ModelRefactoringStub objects

 	 */

-	public static Set<ModelRefactoringStub> getAllRefactoringStubsFromWorkspaceForMetamodel(String metamodelURI){

+	public Set<ModelRefactoringStub> getAllRefactoringStubsFromWorkspaceForMetamodel(String metamodelURI){

 		return filterRefactoringStubsForMetamodel(getAllRefactoringStubsFromWorkspace(), metamodelURI);

 	}

 	

 	/*

 	 * Filters a Set of ModelRefactoringStubs to contain only those corresponding to a certain metamodel.

 	 */

-	private static Set<ModelRefactoringStub> filterRefactoringStubsForMetamodel(Set<ModelRefactoringStub> refactoringStubs, String metamodelURI) {

+	private Set<ModelRefactoringStub> filterRefactoringStubsForMetamodel(Set<ModelRefactoringStub> refactoringStubs, String metamodelURI) {

 		HashSet<ModelRefactoringStub> result = new HashSet<ModelRefactoringStub>();

 		for(ModelRefactoringStub stub : refactoringStubs){

 			if(stub.getMetamodel().equals(metamodelURI)){

@@ -268,7 +281,7 @@
 	/*

 	 * Filters a Collection of Refactoring objects to contain only those corresponding to a certain metamodel.

 	 */

-	private static Set<Refactoring> filterRefactoringsForMetamodel(Collection<Refactoring> refactorings, String metamodelURI){

+	private Set<Refactoring> filterRefactoringsForMetamodel(Collection<Refactoring> refactorings, String metamodelURI){

 		HashSet<Refactoring> result = new HashSet<Refactoring>();

 		for(Refactoring refactoring : refactorings){

 			if(refactoring.getNamespaceUri().equals(metamodelURI)){

@@ -283,7 +296,7 @@
 	 * 

 	 * @return Set of ModelSmellStub objects

 	 */

-	public static Set<ModelSmellStub> getAllSmellStubsFromWorkspace(){

+	public Set<ModelSmellStub> getAllSmellStubsFromWorkspace(){

 		Set<ModelSmellStub> smells = new HashSet<ModelSmellStub>();

 		List<IProject> pluginProjects = getAllPluginProjects();

 		for(IProject project : pluginProjects){

@@ -299,14 +312,14 @@
 	 * @param metamodelURI - String containing the metamodel URI

 	 * @return Set of ModelSmellStub objects

 	 */

-	public static Set<ModelSmellStub> getAllSmellStubsFromWorkspaceForMetamodel(String metamodelURI){

+	public Set<ModelSmellStub> getAllSmellStubsFromWorkspaceForMetamodel(String metamodelURI){

 		return filterSmellStubsForMetamodel(getAllSmellStubsFromWorkspace(), metamodelURI);

 	}

 	

 	/*

 	 * Filters a Set of ModelSmellStubs to contain only those corresponding to a certain metamodel.

 	 */

-	private static Set<ModelSmellStub> filterSmellStubsForMetamodel(Set<ModelSmellStub> smellStubs, String metamodelURI) {

+	private Set<ModelSmellStub> filterSmellStubsForMetamodel(Set<ModelSmellStub> smellStubs, String metamodelURI) {

 		HashSet<ModelSmellStub> result = new HashSet<ModelSmellStub>();

 		for(ModelSmellStub stub : smellStubs){

 			if(stub.getMetamodel().equals(metamodelURI)){

@@ -319,7 +332,7 @@
 	/*

 	 * Filters a Set of ModelSmells to contain only those corresponding to a certain metamodel.

 	 */

-	private static Set<ModelSmell> filterSmellsForMetamodel(Collection<ModelSmell> smells, String metamodelURI){

+	private Set<ModelSmell> filterSmellsForMetamodel(Collection<ModelSmell> smells, String metamodelURI){

 		HashSet<ModelSmell> result = new HashSet<ModelSmell>();

 		for(ModelSmell smell : smells){

 			if(smell.getMetamodel().equals(metamodelURI)){

@@ -332,7 +345,7 @@
 	/*

 	 * Returns all projects in the currently active workspace which  are plugin projects.

 	 */

-	private static List<IProject> getAllPluginProjects(){

+	private List<IProject> getAllPluginProjects(){

 		LinkedList<IProject> projects = new LinkedList<IProject>();

 		IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();

 		for (IProject project : allProjects) {

@@ -355,7 +368,7 @@
 	 * 

 	 * @return - Set of ModelSmellStub objects

 	 */

-	public static Set<ModelSmellStub> getStubsForAllModelSmells(){

+	public Set<ModelSmellStub> getStubsForAllModelSmells(){

 		Set<ModelSmellStub> allStubs = new HashSet<ModelSmellStub>();

 		allStubs.addAll(getAllSmellStubsFromWorkspace());

 		for(ModelSmell smell : getAllsmells()){

@@ -369,7 +382,7 @@
 	 * 

 	 * @return - Set of ModelRefactoringStubs

 	 */

-	public static Set<ModelRefactoringStub> getStubsForAllRefactorings(){

+	public Set<ModelRefactoringStub> getStubsForAllRefactorings(){

 		Set<ModelRefactoringStub> allStubs = new HashSet<ModelRefactoringStub>();

 		allStubs.addAll(getAllRefactoringStubsFromWorkspace());

 		for(Refactoring refactoring : getAllrefactorings()){

@@ -385,7 +398,7 @@
 	 * @param metamodelURI - String containing the metamodel URI

 	 * @return - Set of ModelSmellStubs

 	 */

-	public static Set<ModelSmellStub> getAllSmellStubsForMetamodel(String metamodelURI){

+	public Set<ModelSmellStub> getAllSmellStubsForMetamodel(String metamodelURI){

 		return filterSmellStubsForMetamodel(getStubsForAllModelSmells(), metamodelURI);

 	}

 	

@@ -396,7 +409,7 @@
 	 * @param metamodelURI - String containing the metamodel URI

 	 * @return - Set of ModelRefactoringStubs

 	 */

-	public static Set<ModelRefactoringStub> getAllRefactoringStubsForMetamodel(String metamodelURI){

+	public Set<ModelRefactoringStub> getAllRefactoringStubsForMetamodel(String metamodelURI){

 		return filterRefactoringStubsForMetamodel(getStubsForAllRefactorings(), metamodelURI);

 	}

 }

diff --git a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/managers/PluginXMLManager.java b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/managers/PluginXMLManager.java
index 8553d0d..b9d8479 100644
--- a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/managers/PluginXMLManager.java
+++ b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/managers/PluginXMLManager.java
@@ -69,8 +69,8 @@
 	public static ProjectEntries getRelationEntries(IProject project){

 		ProjectEntries entries = new ProjectEntries(project);		

 		

-		Set<ModelSmellStub> smellsInWorkspace = EraseManager.getAllSmellStubsFromWorkspace();

-		Set<ModelRefactoringStub> refactoringsInWorkspace = EraseManager.getAllRefactoringStubsFromWorkspace();

+		Set<ModelSmellStub> smellsInWorkspace = EraseManager.getInstance().getAllSmellStubsFromWorkspace();

+		Set<ModelRefactoringStub> refactoringsInWorkspace = EraseManager.getInstance().getAllRefactoringStubsFromWorkspace();

 		

 		final DocumentBuilder builder = createDocumentBuilder();

 		final String path = project.getLocation().toString() + PLUGIN_FILE;

@@ -100,7 +100,7 @@
 								Node smellIdEntry = smellToRefactoringsExtensionEntries.item(j);

 								String smellID = smellIdEntry.getAttributes().getNamedItem(ExtensionPointTags.SMELL_ID_TAG).getNodeValue();

 								

-								ModelSmell smell = EraseManager.getSmell(smellID);

+								ModelSmell smell = EraseManager.getInstance().getSmell(smellID);

 								ModelSmellStub smellStub = null;

 								if(smell != null){

 									smellStub = ModelSmellStub.convertModelSmell(smell);

@@ -119,7 +119,7 @@
 										Refactoring refactoring = null;

 										ModelRefactoringStub refactoringStub = null;

 										try{

-											refactoring = EraseManager.getRefactoring(refactoringID);

+											refactoring = EraseManager.getInstance().getRefactoring(refactoringID);

 											refactoringStub = ModelRefactoringStub.convertRefactoring(refactoring);

 										}catch(IllegalArgumentException ex){

 											for(ModelRefactoringStub stub : refactoringsInWorkspace){

@@ -149,7 +149,7 @@
 							Refactoring refactoring = null;

 							ModelRefactoringStub refactoringStub = null;

 							try{

-								refactoring = EraseManager.getRefactoring(refactoringID);

+								refactoring = EraseManager.getInstance().getRefactoring(refactoringID);

 								refactoringStub = ModelRefactoringStub.convertRefactoring(refactoring);

 							}catch(IllegalArgumentException ex){

 //								ex.printStackTrace();

@@ -163,7 +163,7 @@
 									.getElementsByTagName(ExtensionPointTags.REFACTORING_TO_SMELLS_SMELL_ELEMENT_TAG);

 								for(int k = 0; k < smellIDEntries.getLength(); k++){

 									String smellID = smellIDEntries.item(k).getAttributes().getNamedItem(ExtensionPointTags.SMELL_ID_TAG).getNodeValue();

-									ModelSmell smell = EraseManager.getSmell(smellID);

+									ModelSmell smell = EraseManager.getInstance().getSmell(smellID);

 									ModelSmellStub smellStub = null;

 									if(smell != null){

 										smellStub = ModelSmellStub.convertModelSmell(smell);

diff --git a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/ui/RelationsPropertyPage.java b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/ui/RelationsPropertyPage.java
index 7d9979b..2e568f2 100644
--- a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/ui/RelationsPropertyPage.java
+++ b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/ui/RelationsPropertyPage.java
@@ -124,7 +124,7 @@
 		label.setText(METAMODEL_LABEL);

 		metamodelCombo = new Combo(group, SWT.LEFT | SWT.READ_ONLY);

 		metamodelCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-		for(String metamodelURI : EraseManager.getMetamodelURIs()){

+		for(String metamodelURI : EraseManager.getInstance().getMetamodelURIs()){

 			metamodelCombo.add(metamodelURI);

 		}

 		metamodelCombo.addListener(SWT.Selection, new Listener(){

@@ -221,7 +221,7 @@
 	 */

 	protected void fillCombos(String metamodelURI) {

 		smellCombo.removeAll();

-		Set<ModelSmellStub> smellStubs = EraseManager.getAllSmellStubsForMetamodel(metamodelURI);

+		Set<ModelSmellStub> smellStubs = EraseManager.getInstance().getAllSmellStubsForMetamodel(metamodelURI);

 		int i = 0;

 		for(ModelSmellStub smellStub : SetSorter.sortSmellStubSet(smellStubs)){ //SetSorter.sortSmellSet(EraseManager.getAllInstalledSmellsForMetamodel(metamodelURI))){

 			smellCombo.setData("" + i, smellStub);

@@ -238,7 +238,7 @@
 		});

 		

 		refactoringCombo.removeAll();

-		Set<ModelRefactoringStub> refactoringStubs = EraseManager.getAllRefactoringStubsForMetamodel(metamodelURI);

+		Set<ModelRefactoringStub> refactoringStubs = EraseManager.getInstance().getAllRefactoringStubsForMetamodel(metamodelURI);

 		i = 0;

 		for(ModelRefactoringStub refactoringStub : SetSorter.sortRefactoringStubSet(refactoringStubs)){

 			refactoringCombo.setData("" + i, refactoringStub);

@@ -333,7 +333,7 @@
 	 */

 	protected void fillSmellTable(ModelSmellStub smellStub) {

 		smellToRefactoringsTable.setData(smellStub);

-		for(ModelRefactoringStub refactoringStub : SetSorter.sortRefactoringStubSet(EraseManager.getAllRefactoringStubsForMetamodel(smellStub.getMetamodel()))){

+		for(ModelRefactoringStub refactoringStub : SetSorter.sortRefactoringStubSet(EraseManager.getInstance().getAllRefactoringStubsForMetamodel(smellStub.getMetamodel()))){

 			TableItem item = new TableItem(smellToRefactoringsTable, SWT.NONE);

 			boolean checked = entries.getFixingRefactorings(smellStub) != null && entries.getFixingRefactorings(smellStub).contains(refactoringStub);

 			item.setData(refactoringStub);

@@ -350,7 +350,7 @@
 	 */

 	protected void fillRefactoringTable(ModelRefactoringStub refactoringStub) {

 		refactoringToSmellsTable.setData(refactoringStub);

-		for(ModelSmellStub smellStub : SetSorter.sortSmellStubSet(EraseManager.getAllSmellStubsForMetamodel(refactoringStub.getMetamodel()))){

+		for(ModelSmellStub smellStub : SetSorter.sortSmellStubSet(EraseManager.getInstance().getAllSmellStubsForMetamodel(refactoringStub.getMetamodel()))){

 			TableItem item = new TableItem(refactoringToSmellsTable, SWT.NONE);

 			item.setData(smellStub);

 			boolean checked = entries.getCausedSmells(refactoringStub) != null && entries.getCausedSmells(refactoringStub).contains(smellStub);

@@ -400,7 +400,7 @@
 		}

 		saveTableContent();

 		NullProgressMonitor monitor = new NullProgressMonitor();

-		EraseManager.saveRelations(monitor, project, entries, saveDanglingEntries);

+		EraseManager.getInstance().saveRelations(monitor, project, entries, saveDanglingEntries);

 		return super.performOk();

 	}

 

diff --git a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/ui/SuggestionDialog.java b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/ui/SuggestionDialog.java
index f142fd2..8d43c1e 100644
--- a/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/ui/SuggestionDialog.java
+++ b/org.eclipse.emf.refactor.smells.eraser/src/org/eclipse/emf/refactor/smells/eraser/ui/SuggestionDialog.java
@@ -78,7 +78,7 @@
 		super(parentShell);

 		this.relationMap = relationMap;

 		this.eObjects = eObjects;

-		this.dynamicallyCalculatedRefactorings = EraseManager.getApplicableRefactoringsDynamically(eObjects);

+		this.dynamicallyCalculatedRefactorings = EraseManager.getInstance().getApplicableRefactoringsDynamically(eObjects);

 		

 	}

 	

@@ -179,7 +179,7 @@
 			String smells = buildCausedSmellsTableEntry(refactoring);

 			ArrayList<EObject> contextObjects = new ArrayList<EObject>();

 			for(EObject eObject : eObjects.getEObjects()){

-				if(EraseManager.passesInitialCheck(eObject, refactoring)){

+				if(EraseManager.getInstance().passesInitialCheck(eObject, refactoring)){

 					contextObjects.add(eObject);

 				}

 			}		

@@ -209,7 +209,7 @@
 	private String buildCausedSmellsTableEntry(Refactoring refactoring) {

 		String smells = "";

 		

-		Set<ModelSmell> currentSet = EraseManager.getCausedModelSmells(refactoring);

+		Set<ModelSmell> currentSet = EraseManager.getInstance().getCausedModelSmells(refactoring);

 		if(currentSet != null){

 			for(ModelSmell smell : currentSet){

 				smells += smell.getName() + ", ";