print mapping file for regular EMF obfuscator as well
diff --git a/plugins/org.eclipse.viatra.modelobfuscator.runtime/src/org/eclipse/viatra/modelobfuscator/emf/simple/EMFModelObfuscatorBuilder.xtend b/plugins/org.eclipse.viatra.modelobfuscator.runtime/src/org/eclipse/viatra/modelobfuscator/emf/simple/EMFModelObfuscatorBuilder.xtend
index a7c74b7..14581da 100644
--- a/plugins/org.eclipse.viatra.modelobfuscator.runtime/src/org/eclipse/viatra/modelobfuscator/emf/simple/EMFModelObfuscatorBuilder.xtend
+++ b/plugins/org.eclipse.viatra.modelobfuscator.runtime/src/org/eclipse/viatra/modelobfuscator/emf/simple/EMFModelObfuscatorBuilder.xtend
@@ -37,7 +37,7 @@
     private ResourceFilter filter
     private String saltString = ""
     private BigInteger seedNumber = new BigInteger(ObfuscatorUtil.generateBase36RandomString(32), 36)
-    private String prefix = ""
+    private String prefix = "o"
     private Map<String, String> obfuscationMap = null
 
     /**
diff --git a/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/handlers/UMLModelObfuscatorHandler.java b/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/handlers/UMLModelObfuscatorHandler.java
index 5e9e82f..946d24f 100644
--- a/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/handlers/UMLModelObfuscatorHandler.java
+++ b/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/handlers/UMLModelObfuscatorHandler.java
@@ -10,43 +10,28 @@
  *******************************************************************************/
 package org.eclipse.viatra.modelobfuscator.ui.uml.handlers;
 
-import java.io.ByteArrayInputStream;
-import java.io.UnsupportedEncodingException;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.HashMap;
 
 import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.viatra.modelobfuscator.api.ModelObfuscator;
 import org.eclipse.viatra.modelobfuscator.emf.simple.ResourceFilter;
 import org.eclipse.viatra.modelobfuscator.emf.uml.UMLObfuscatorBuilder;
 import org.eclipse.viatra.modelobfuscator.ui.handlers.AbstractModelObfuscatorHandler;
-import org.eclipse.viatra.modelobfuscator.ui.uml.util.UMLHelper;
 
 public class UMLModelObfuscatorHandler extends AbstractModelObfuscatorHandler {
 
-    private String mapFilePath;
-    
-	@Override
+    @Override
 	protected ModelObfuscator createModelObfuscator(ResourceSet resourceSet, final EditingDomain editingDomain, ExecutionEvent event) {
 		final Resource selectedResource = getSelectedResource(event);
 		if(selectedResource==null) {
 		    MessageDialog.openInformation(HandlerUtil.getActiveShell(event), "Model obfuscation", "Sorry, there is no selected resource. You may need to open a diagram.");
 		    return null;
 		}
-		mapFilePath = deleteUmlExtension(selectedResource.getURI().toPlatformString(true))+".mapping_"+getDate();
 		return UMLObfuscatorBuilder.create().setInput(resourceSet)
 				.setTraceMap(new HashMap<String,String>())
                 .setFilter(new ResourceFilter() {
@@ -57,46 +42,4 @@
                 }).build();
 	}
 
-    private Resource getSelectedResource(ExecutionEvent event) {
-		ISelection selection = HandlerUtil.getCurrentSelection(event);
-		
-		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).toList().size()>0){
-			Object selectedElement = ((IStructuredSelection)selection).toList().get(0); 
-			return UMLHelper.getResource(selectedElement);
-		}
-		return null;
-	}
-
-	private String deleteUmlExtension(String platformString) {
-        return platformString.substring(0, platformString.lastIndexOf(".uml"));
-    }
-
-    private String getDate() {
-        DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmm");
-        Date date = new Date();
-        return dateFormat.format(date);
-    }
-	
-	@Override
-	protected void print(String content) {
-	    try {
-    	    IFile mapFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(mapFilePath+".csv"));
-    	    int i = 0;
-    	    while(mapFile.exists()) {
-    	        i++;
-    	        mapFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(mapFilePath+"_"+i+".csv"));
-    	    }
-    	    try {
-                mapFile.create(new ByteArrayInputStream(content.getBytes("UTF-8")), true, null);
-            } catch (CoreException e) {
-                e.printStackTrace();
-            } catch (UnsupportedEncodingException e) {
-                e.printStackTrace();
-            }
-	    } catch (Exception ex) {
-	        ex.printStackTrace();
-	        super.print(content);
-	    }
-	}
-
 }
diff --git a/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/handlers/UMLProfileReplacerHandler.java b/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/handlers/UMLProfileReplacerHandler.java
index a0165d3..2caae61 100644
--- a/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/handlers/UMLProfileReplacerHandler.java
+++ b/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/handlers/UMLProfileReplacerHandler.java
@@ -43,7 +43,7 @@
 import org.eclipse.uml2.uml.Profile;
 import org.eclipse.viatra.modelobfuscator.emf.uml.SimpleUMLProfileReplacer;
 import org.eclipse.viatra.modelobfuscator.emf.uml.UMLProfileReplacerBuilder;
-import org.eclipse.viatra.modelobfuscator.ui.uml.util.UMLHelper;
+import org.eclipse.viatra.modelobfuscator.ui.util.ModelObfuscatorUIHelper;
 
 public class UMLProfileReplacerHandler extends AbstractHandler {
 
@@ -151,7 +151,7 @@
 		if (selection instanceof IStructuredSelection
 				&& ((IStructuredSelection) selection).toList().size() > 0) {
 			Object selectedElement = ((IStructuredSelection) selection).toList().get(0);
-			Resource selectedResource = UMLHelper.getResource(selectedElement);
+			Resource selectedResource = ModelObfuscatorUIHelper.getResource(selectedElement);
 			EObject eObject = selectedResource.getContents().get(0);
             if(eObject instanceof Model)
 			    return (Model) eObject;
diff --git a/plugins/org.eclipse.viatra.modelobfuscator.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.viatra.modelobfuscator.ui/META-INF/MANIFEST.MF
index 5e246aa..cb83598 100644
--- a/plugins/org.eclipse.viatra.modelobfuscator.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.viatra.modelobfuscator.ui/META-INF/MANIFEST.MF
@@ -13,4 +13,6 @@
  org.eclipse.emf.transaction
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.viatra.modelobfuscator.ui.handlers
+Export-Package: org.eclipse.viatra.modelobfuscator.ui,
+ org.eclipse.viatra.modelobfuscator.ui.handlers,
+ org.eclipse.viatra.modelobfuscator.ui.util
diff --git a/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/handlers/AbstractModelObfuscatorHandler.java b/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/handlers/AbstractModelObfuscatorHandler.java
index af5b358..6fef7b7 100644
--- a/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/handlers/AbstractModelObfuscatorHandler.java
+++ b/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/handlers/AbstractModelObfuscatorHandler.java
@@ -11,30 +11,51 @@
  *******************************************************************************/
 package org.eclipse.viatra.modelobfuscator.ui.handlers;
 
+import java.io.ByteArrayInputStream;
+import java.io.UnsupportedEncodingException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.Map;
 
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.ILog;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.common.command.AbstractCommand;
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.domain.IEditingDomainProvider;
 import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.viatra.modelobfuscator.api.ModelObfuscator;
 import org.eclipse.viatra.modelobfuscator.ui.ModelObfuscatorUIPlugin;
+import org.eclipse.viatra.modelobfuscator.ui.util.ModelObfuscatorUIHelper;
 
 public abstract class AbstractModelObfuscatorHandler extends AbstractHandler {
 	
-	protected abstract ModelObfuscator createModelObfuscator(ResourceSet resourceSet, final EditingDomain editingDomain, ExecutionEvent event);
+	protected String mapFilePath;
+
+    protected abstract ModelObfuscator createModelObfuscator(ResourceSet resourceSet, final EditingDomain editingDomain, ExecutionEvent event);
 	
 	@Override
     public Object execute(ExecutionEvent event) throws ExecutionException {
         IEditorPart editorPart = HandlerUtil.getActiveEditor(event);
+        final Resource selectedResource = getSelectedResource(event);
+        if(selectedResource==null) {
+            MessageDialog.openInformation(HandlerUtil.getActiveShell(event), "Model obfuscation", "Sorry, there is no selected resource. You may need to open a diagram.");
+            return null;
+        }
+        final String mapFilePath = selectedResource.getURI().toPlatformString(true)+".mapping_"+getDate();
         ResourceSet resourceSet = null;
         if (editorPart instanceof IEditingDomainProvider) {
             IEditingDomainProvider editingDomainProvider = (IEditingDomainProvider) editorPart;
@@ -53,16 +74,16 @@
                 StringBuilder messageBuilder = new StringBuilder();
                 messageBuilder.append("This tool replaces all string attribute values with obfuscated values.\n");
                 messageBuilder.append("You can Undo the operation or restore the original values with\n");
-                messageBuilder.append("- seed:").append(seed);
+                messageBuilder.append("- seed: ").append(seed);
                 if(!salt.isEmpty()){
-                    messageBuilder.append("\n- salt:").append(salt);
+                    messageBuilder.append("\n- salt: ").append(salt);
                 }
                 if(!prefix.isEmpty()){
-                    messageBuilder.append("\n- prefix:").append(prefix);
+                    messageBuilder.append("\n- prefix: ").append(prefix);
                 }
                 String logMessage = messageBuilder.toString();
                 messageBuilder.append("\n(logged also as an Info level event)");
-                messageBuilder.append("Do you want to perform model obuscation?");
+                messageBuilder.append("\nDo you want to perform model obfuscation?");
                 String message = messageBuilder.toString();
                 boolean confirmed = MessageDialog.openConfirm(
                                 HandlerUtil.getActiveShell(event),
@@ -108,7 +129,7 @@
 	                        	for (String key : oMap.keySet()) {
 									mapContent.append("\n"+key+";"+oMap.get(key)+";");
 								}
-	                      		print(mapContent.toString());
+	                      		print(mapFilePath, mapContent.toString());
                         	}
                         }
                     };
@@ -119,10 +140,40 @@
         return null;
     }
 	
-	/**
-	 * Subclasses should override this method to store the printed content to file
-	 */
-	protected void print(String content) {
-	    System.out.println(content);
-	}
+    private String getDate() {
+        DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmm");
+        Date date = new Date();
+        return dateFormat.format(date);
+    }
+    
+    protected Resource getSelectedResource(ExecutionEvent event) {
+    	ISelection selection = HandlerUtil.getCurrentSelection(event);
+    	
+    	if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).toList().size()>0){
+    		Object selectedElement = ((IStructuredSelection)selection).toList().get(0); 
+    		return ModelObfuscatorUIHelper.getResource(selectedElement);
+    	}
+    	return null;
+    }
+
+    protected void print(String mapFilePath,String content) {
+        try {
+    	    IFile mapFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(mapFilePath+".csv"));
+    	    int i = 0;
+    	    while(mapFile.exists()) {
+    	        i++;
+    	        mapFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(mapFilePath+"_"+i+".csv"));
+    	    }
+    	    try {
+                mapFile.create(new ByteArrayInputStream(content.getBytes("UTF-8")), true, null);
+            } catch (CoreException e) {
+                e.printStackTrace();
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            System.out.println(content);
+        }
+    }
 }
diff --git a/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/handlers/EMFModelObfuscatorHandler.java b/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/handlers/EMFModelObfuscatorHandler.java
index 0cdc376..04d96c8 100644
--- a/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/handlers/EMFModelObfuscatorHandler.java
+++ b/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/handlers/EMFModelObfuscatorHandler.java
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.viatra.modelobfuscator.ui.handlers;
 
+import java.util.HashMap;
+
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
@@ -37,6 +39,7 @@
 	@Override
 	protected AbstractModelObfuscator createModelObfuscator(ResourceSet resourceSet, final EditingDomain editingDomain, ExecutionEvent event ) {
 		return EMFModelObfuscatorBuilder.create().setInput(resourceSet)
+		        .setTraceMap(new HashMap<String,String>())
                 .setFilter(new ResourceFilter() {
                     @Override
                     public boolean avoidObfuscation(Resource resource) {
diff --git a/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/util/UMLHelper.java b/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/util/ModelObfuscatorUIHelper.java
similarity index 90%
rename from plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/util/UMLHelper.java
rename to plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/util/ModelObfuscatorUIHelper.java
index cc7e967..8780a60 100644
--- a/plugins/org.eclipse.viatra.modelobfuscator.ui.uml/src/org/eclipse/viatra/modelobfuscator/ui/uml/util/UMLHelper.java
+++ b/plugins/org.eclipse.viatra.modelobfuscator.ui/src/org/eclipse/viatra/modelobfuscator/ui/util/ModelObfuscatorUIHelper.java
@@ -8,15 +8,15 @@
  * Contributors:
  *   Tamas Borbas - initial API and implementation
  *******************************************************************************/
-package org.eclipse.viatra.modelobfuscator.ui.uml.util;
+package org.eclipse.viatra.modelobfuscator.ui.util;
 
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
 
-public class UMLHelper {
-    protected UMLHelper() {}
+public class ModelObfuscatorUIHelper {
+    protected ModelObfuscatorUIHelper() {}
     
     public static Resource getResource(Object element) {
         if (element instanceof EObject){