diff --git a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/ServiceExtensionManager.java b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/ServiceExtensionManager.java
index c503bfe..eeaedb4 100644
--- a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/ServiceExtensionManager.java
+++ b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/ServiceExtensionManager.java
@@ -234,12 +234,12 @@
 			ASMModel aslMM = ServiceTransformationUtil
 					.loadModel(
 							"ASL", ml.getMOF(), ml, "resources/ASL/ASL.ecore", "", false, false, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-							"org.eclipse.m2m.atl.service.core"); //$NON-NLS-4$
+							"org.eclipse.m2m.atl.service.core");  //$NON-NLS-1$
 			ASMModel sample = ServiceTransformationUtil
 					.ebnfInjection(
 							"sample-ASL", aslPath, aslMM, new HashMap(), //$NON-NLS-1$
-							"resources/ASL/ASL-importer.jar", "ASL", //$NON-NLS-2$ //$NON-NLS-3$
-							"org.eclipse.m2m.atl.service.core"); //$NON-NLS-4$
+							"resources/ASL/ASL-importer.jar", "ASL",  //$NON-NLS-1$//$NON-NLS-2$ 
+							"org.eclipse.m2m.atl.service.core");  //$NON-NLS-1$
 			Set modelElements = sample.getElementsByType("ASL"); //$NON-NLS-1$
 			for (Iterator it = modelElements.iterator(); it.hasNext();) {
 				ASMModelElement me = (ASMModelElement)it.next();
diff --git a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/ServiceTransformationUtil.java b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/ServiceTransformationUtil.java
index db4985c..6885719 100644
--- a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/ServiceTransformationUtil.java
+++ b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/ServiceTransformationUtil.java
@@ -217,7 +217,7 @@
 			final ModelLoader ml = amh.createModelLoader();
 			ASMModel tcs = loadModel(
 					"TCS", ml.getMOF(), ml, "resources/TCS.ecore", null, false, false, //$NON-NLS-1$ //$NON-NLS-2$
-					"org.eclipse.m2m.atl.service.core"); //$NON-NLS-3$
+					"org.eclipse.m2m.atl.service.core");  //$NON-NLS-1$
 
 			Map tempParam = new HashMap();
 
@@ -292,7 +292,7 @@
 
 			final AtlModelHandler amh = AtlModelHandler.getHandler(metamodel);
 			final ModelLoader ml = amh.createModelLoader();
-			final ASMModel model = ml.newModel(name, "model.xmi", metamodel);
+			final ASMModel model = ml.newModel(name, "model.xmi", metamodel); //$NON-NLS-1$
 			final TCSInjector inj = new TCSInjector();
 
 			final ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
@@ -303,9 +303,9 @@
 					.loadClass2("org.eclipse.gmt.tcs.injector." + metamodelName + "Parser", true); //$NON-NLS-1$ //$NON-NLS-2$
 
 			Map injParams = new HashMap();
-			injParams.put("name", metamodelName);
-			injParams.put("lexerClass", lexer);
-			injParams.put("parserClass", parser);
+			injParams.put("name", metamodelName); //$NON-NLS-1$
+			injParams.put("lexerClass", lexer); //$NON-NLS-1$
+			injParams.put("parserClass", parser); //$NON-NLS-1$
 			inj.inject(model, in, injParams);
 			in.close();
 
diff --git a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/configuration/ComposedTransformationConfiguration.java b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/configuration/ComposedTransformationConfiguration.java
index ffe906c..03761d5 100644
--- a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/configuration/ComposedTransformationConfiguration.java
+++ b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/configuration/ComposedTransformationConfiguration.java
@@ -93,7 +93,7 @@
 		} else {
 			try {
 				models.put(name, new Model(name, ((Model)models.get(metamodel)).getAsmModel(), ml, path,
-						null, false, pluginId)); //$NON-NLS-1$
+						null, false, pluginId));
 			} catch (ServiceException e) {
 				e.printStackTrace();
 			} catch (IOException e) {
diff --git a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/configuration/SingleTransformationConfiguration.java b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/configuration/SingleTransformationConfiguration.java
index e55e8b8..20dd2ed 100644
--- a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/configuration/SingleTransformationConfiguration.java
+++ b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/configuration/SingleTransformationConfiguration.java
@@ -78,7 +78,7 @@
 				transformation.addInNotPreloadedList(name);
 			} else {
 				models.put(name, new Model(name, ((Model)models.get(metamodel)).getAsmModel(), ml, path, null,
-						false, pluginId)); //$NON-NLS-1$
+						false, pluginId)); 
 			}
 			transformation.addInModel(name, name);
 		} catch (ServiceException e) {
@@ -104,7 +104,7 @@
 	 */
 	public void addOutModel(String name, String fileName, String metamodel, ModelLoader ml) {
 		// TODO
-		models.put(name, new Model(name, ((Model)models.get(metamodel)).getAsmModel(), ml, fileName)); //$NON-NLS-1$
+		models.put(name, new Model(name, ((Model)models.get(metamodel)).getAsmModel(), ml, fileName)); 
 		transformation.addOutModel(name, name, metamodel);
 	}
 
diff --git a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/nestedElements/Model.java b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/nestedElements/Model.java
index ecc5ae2..25aa219 100644
--- a/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/nestedElements/Model.java
+++ b/plugins/org.eclipse.m2m.atl.service.core/src/org/eclipse/m2m/atl/service/core/nestedElements/Model.java
@@ -201,8 +201,8 @@
 							path,
 							asmMetamodel,
 							this.injector.params,
-							(String)this.injector.params.get("parserPath"), 
-							asmMetamodel.getName(), pluginId); //$NON-NLS-1$
+							(String)this.injector.params.get("parserPath"),  //$NON-NLS-1$
+							asmMetamodel.getName(), pluginId); 
 		}
 	}
 
