[unrelated] Fix many PrettyPrint issues
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java
index 25c021c..e43fba2 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.qvtd.pivot.qvtimperative.utilities;
 
+import java.util.List;
+
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.ocl.pivot.Variable;
@@ -23,6 +25,7 @@
 import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern;
 import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment;
 import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
+import org.eclipse.qvtd.pivot.qvtcorebase.VariableAssignment;
 import org.eclipse.qvtd.pivot.qvtcorebase.utilities.QVTcoreBasePrettyPrintVisitor;
 import org.eclipse.qvtd.pivot.qvtimperative.ImperativeBottomPattern;
 import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel;
@@ -54,9 +57,16 @@
 		for (RealizedVariable pRealizedVariable : pBottomPattern.getRealizedVariable()) {
 			safeVisit(pRealizedVariable);
 		}
-		context.append(" |\n");
-		for (Assignment pAssignment : pBottomPattern.getAssignment()) {
-			safeVisit(pAssignment);
+		for (Variable pVariable : pBottomPattern.getVariable()) {
+			safeVisit(pVariable);
+		}
+		context.append(" |");
+		List<Assignment> assignments = pBottomPattern.getAssignment();
+		if (assignments.size() > 0) {
+			context.append("\n");
+			for (Assignment pAssignment : assignments) {
+				safeVisit(pAssignment);
+			}
 		}
 		return null;
 	}
@@ -66,9 +76,13 @@
 		for (Variable pVariable : pGuardPattern.getVariable()) {
 			safeVisit(pVariable);
 		}
-		context.append(" |\n");
-		for (Predicate pPredicate : pGuardPattern.getPredicate()) {
-			safeVisit(pPredicate);
+		context.append(" |");
+		List<Predicate> predicates = pGuardPattern.getPredicate();
+		if (predicates.size() > 0) {
+			context.append("\n");
+			for (Predicate pPredicate : predicates) {
+				safeVisit(pPredicate);
+			}
 		}
 		return null;
 	}
@@ -90,7 +104,7 @@
 		context.appendName(pMapping);
 		context.append(" in ");
 		context.appendName(pMapping.getTransformation());
-		context.append(") {\n");
+		context.append(" {\n");
 		context.push("", "");
 		for (Domain pDomain : pMapping.getDomain()) {
 			if (pDomain instanceof CoreDomain) {
@@ -102,12 +116,14 @@
 		doArea(pMapping);
 		safeVisit(pMapping.getMappingStatement());
 		context.pop();
-		context.append("\n}");
 		return null;
 	}
 
 	@Override
 	public Object visitMappingCall(@NonNull MappingCall pMappingCall) {
+		if (pMappingCall.isIsInfinite()) {
+			context.append("infinite ");
+		}
 		context.append("map ");
 		context.appendName(pMappingCall.getReferredMapping());
 		context.append(" {\n");
@@ -123,7 +139,7 @@
 	@Override
 	public Object visitMappingCallBinding(@NonNull MappingCallBinding pMappingCallBinding) {
 		context.appendName(pMappingCallBinding.getBoundVariable());
-		context.append(" := ");
+		context.append(pMappingCallBinding.isIsPolled() ? " ?= " : " := ");
 		safeVisit(pMappingCallBinding.getValue());
 		context.append(";\n");
 		return null;
@@ -165,7 +181,9 @@
 	@Override
 	public Object visitPropertyAssignment(@NonNull PropertyAssignment pPropertyAssignment) {
 		safeVisit(pPropertyAssignment.getSlotExpression());
-		context.append(" = ");
+		context.append(".");
+		context.appendName(pPropertyAssignment.getTargetProperty());
+		context.append(" := ");
 		safeVisit(pPropertyAssignment.getValue());
 		context.append(";\n");
 		return null;
@@ -193,6 +211,15 @@
 	}
 
 	@Override
+	public Object visitVariableAssignment(@NonNull VariableAssignment pVariableAssignment) {
+		safeVisit(pVariableAssignment.getTargetVariable());
+		context.append(" := ");
+		safeVisit(pVariableAssignment.getValue());
+		context.append(";\n");
+		return null;
+	}
+
+	@Override
 	public @Nullable Object visitVariablePredicate(@NonNull VariablePredicate object) {
 		// TODO Auto-generated method stub
 		return null;
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/Source2Target_qvtp_qvtias.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/Source2Target_qvtp_qvtias.java
index b8cd535..7c90260 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/Source2Target_qvtp_qvtias.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/Source2Target_qvtp_qvtias.java
@@ -212,24 +212,18 @@
     
     /**
      * 
-     * map cSRoot_2_TRoot in Source2Target_qvtp_qvtias) {
+     * map cSRoot_2_TRoot in Source2Target_qvtp_qvtias {
      * leftCS (sRoot : source::SRoot[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize tRoot : target::TRoot[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * sRoot = tRoot;
+     * sRoot.ast := tRoot;
      * }
      * 
-     * }
      */
     protected boolean cSRoot_2_TRoot(final /*@NonNull*/ /*@NonInvalid*/ SRoot sRoot) {
         // predicates
@@ -245,26 +239,21 @@
     
     /**
      * 
-     * map cX_2_A3 in Source2Target_qvtp_qvtias) {
+     * map cX_2_A3 in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (x : source::X[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize a3 : target::A3[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * not disambiguatesToA1()
      *   not disambiguatesToA2())
      * { |
-     * x = a3;
+     * x.ast := a3;
      * }
      * 
-     * }
      */
     protected boolean cX_2_A3(final /*@NonNull*/ /*@NonInvalid*/ X x) {
         // predicates
@@ -290,26 +279,21 @@
     
     /**
      * 
-     * map cX_2_A2 in Source2Target_qvtp_qvtias) {
+     * map cX_2_A2 in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (x : source::X[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize a2 : target::A2[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * not disambiguatesToA1()
      *   disambiguatesToA2())
      * { |
-     * x = a2;
+     * x.ast := a2;
      * }
      * 
-     * }
      */
     protected boolean cX_2_A2(final /*@NonNull*/ /*@NonInvalid*/ X x_0) {
         // predicates
@@ -334,25 +318,20 @@
     
     /**
      * 
-     * map cX_2_A1 in Source2Target_qvtp_qvtias) {
+     * map cX_2_A1 in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (x : source::X[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize a1 : target::A1[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * disambiguatesToA1())
      * { |
-     * x = a1;
+     * x.ast := a1;
      * }
      * 
-     * }
      */
     protected boolean cX_2_A1(final /*@NonNull*/ /*@NonInvalid*/ X x_1) {
         // predicates
@@ -372,24 +351,18 @@
     
     /**
      * 
-     * map cY1_2_B in Source2Target_qvtp_qvtias) {
+     * map cY1_2_B in Source2Target_qvtp_qvtias {
      * leftCS (y1 : source::Y1[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize b : target::B[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * y1 = b;
+     * y1.ast := b;
      * }
      * 
-     * }
      */
     protected boolean cY1_2_B(final /*@NonNull*/ /*@NonInvalid*/ Y1 y1) {
         // predicates
@@ -405,24 +378,18 @@
     
     /**
      * 
-     * map cY2_2_C in Source2Target_qvtp_qvtias) {
+     * map cY2_2_C in Source2Target_qvtp_qvtias {
      * leftCS (y2 : source::Y2[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize c : target::C[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * y2 = c;
+     * y2.ast := c;
      * }
      * 
-     * }
      */
     protected boolean cY2_2_C(final /*@NonNull*/ /*@NonInvalid*/ Y2 y2) {
         // predicates
@@ -438,25 +405,20 @@
     
     /**
      * 
-     * map cZ_2_D_0 in Source2Target_qvtp_qvtias) {
+     * map cZ_2_D_0 in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (z : source::Z[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize d : target::D[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * not toY.oclIsKindOf(source::Y1))
      * { |
-     * z = d;
+     * z.ast := d;
      * }
      * 
-     * }
      */
     protected boolean cZ_2_D_0(final /*@NonNull*/ /*@NonInvalid*/ Z z) {
         // predicates
@@ -480,25 +442,20 @@
     
     /**
      * 
-     * map cZ_2_D_1 in Source2Target_qvtp_qvtias) {
+     * map cZ_2_D_1 in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (z : source::Z[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize d : target::D[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * toY.oclIsKindOf(source::Y1))
      * { |
-     * z = d;
+     * z.ast := d;
      * }
      * 
-     * }
      */
     protected boolean cZ_2_D_1(final /*@NonNull*/ /*@NonInvalid*/ Z z_0) {
         // predicates
@@ -521,25 +478,19 @@
     
     /**
      * 
-     * map uTRoot_ownedA in Source2Target_qvtp_qvtias) {
+     * map uTRoot_ownedA in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (sRoot : source::SRoot[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
      * sRoot.ast.oclAsType(target::TRoot)
-     *    = ownedX.ast.oclAsType(target::A);
+     *   .ownedA := ownedX.ast.oclAsType(target::A);
      * }
      * 
-     * }
      */
     protected boolean uTRoot_ownedA(final /*@NonNull*/ /*@NonInvalid*/ SRoot sRoot_0) {
         // predicates
@@ -582,26 +533,21 @@
     
     /**
      * 
-     * map uA3_name in Source2Target_qvtp_qvtias) {
+     * map uA3_name in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (x : source::X[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * not disambiguatesToA1()
      *   not disambiguatesToA2()
      *   )
      * { |
-     * x.ast.oclAsType(target::A3) = name;
+     * x.ast.oclAsType(target::A3).name := name;
      * }
      * 
-     * }
      */
     protected boolean uA3_name(final /*@NonNull*/ /*@NonInvalid*/ X x_2) {
         // predicates
@@ -629,28 +575,23 @@
     
     /**
      * 
-     * map uA3_ownsC in Source2Target_qvtp_qvtias) {
+     * map uA3_ownsC in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (x : source::X[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * not disambiguatesToA1()
      *   not disambiguatesToA2()
      *   )
      * { |
      * x.ast.oclAsType(target::A3)
-     *    = ownsY.oclAsType(source::Y2)
+     *   .ownsC := ownsY.oclAsType(source::Y2)
      *   .ast.oclAsType(target::C);
      * }
      * 
-     * }
      */
     protected boolean uA3_ownsC(final /*@NonNull*/ /*@NonInvalid*/ X x_3) {
         // predicates
@@ -720,26 +661,21 @@
     
     /**
      * 
-     * map uA2_name in Source2Target_qvtp_qvtias) {
+     * map uA2_name in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (x : source::X[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * not disambiguatesToA1()
      *   disambiguatesToA2()
      *   )
      * { |
-     * x.ast.oclAsType(target::A2) = name;
+     * x.ast.oclAsType(target::A2).name := name;
      * }
      * 
-     * }
      */
     protected boolean uA2_name(final /*@NonNull*/ /*@NonInvalid*/ X x_4) {
         // predicates
@@ -766,28 +702,23 @@
     
     /**
      * 
-     * map uA2_ownsC in Source2Target_qvtp_qvtias) {
+     * map uA2_ownsC in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (x : source::X[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * not disambiguatesToA1()
      *   disambiguatesToA2()
      *   )
      * { |
      * x.ast.oclAsType(target::A2)
-     *    = ownsY.oclAsType(source::Y2)
+     *   .ownsC := ownsY.oclAsType(source::Y2)
      *   .ast.oclAsType(target::C);
      * }
      * 
-     * }
      */
     protected boolean uA2_ownsC(final /*@NonNull*/ /*@NonInvalid*/ X x_5) {
         // predicates
@@ -856,25 +787,20 @@
     
     /**
      * 
-     * map uA1_name in Source2Target_qvtp_qvtias) {
+     * map uA1_name in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (x : source::X[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * disambiguatesToA1()
      *   )
      * { |
-     * x.ast.oclAsType(target::A1) = name;
+     * x.ast.oclAsType(target::A1).name := name;
      * }
      * 
-     * }
      */
     protected boolean uA1_name(final /*@NonNull*/ /*@NonInvalid*/ X x_6) {
         // predicates
@@ -896,27 +822,22 @@
     
     /**
      * 
-     * map uA1_ownsB in Source2Target_qvtp_qvtias) {
+     * map uA1_ownsB in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (x : source::X[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * disambiguatesToA1()
      *   )
      * { |
      * x.ast.oclAsType(target::A1)
-     *    = ownsY.oclAsType(source::Y1)
+     *   .ownsB := ownsY.oclAsType(source::Y1)
      *   .ast.oclAsType(target::B);
      * }
      * 
-     * }
      */
     protected boolean uA1_ownsB(final /*@NonNull*/ /*@NonInvalid*/ X x_7) {
         // predicates
@@ -980,25 +901,19 @@
     
     /**
      * 
-     * map uB_ownsD in Source2Target_qvtp_qvtias) {
+     * map uB_ownsD in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (y1 : source::Y1[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
      * y1.ast.oclAsType(target::B)
-     *    = ownsZ.ast.oclAsType(target::D);
+     *   .ownsD := ownsZ.ast.oclAsType(target::D);
      * }
      * 
-     * }
      */
     protected boolean uB_ownsD(final /*@NonNull*/ /*@NonInvalid*/ Y1 y1_0) {
         // predicates
@@ -1022,24 +937,18 @@
     
     /**
      * 
-     * map uB_name in Source2Target_qvtp_qvtias) {
+     * map uB_name in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (y1 : source::Y1[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * y1.ast.oclAsType(target::B) = name;
+     * y1.ast.oclAsType(target::B).name := name;
      * }
      * 
-     * }
      */
     protected boolean uB_name(final /*@NonNull*/ /*@NonInvalid*/ Y1 y1_1) {
         // predicates
@@ -1057,25 +966,19 @@
     
     /**
      * 
-     * map uC_ownsD in Source2Target_qvtp_qvtias) {
+     * map uC_ownsD in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (y2 : source::Y2[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
      * y2.ast.oclAsType(target::C)
-     *    = ownsZ.ast.oclAsType(target::D);
+     *   .ownsD := ownsZ.ast.oclAsType(target::D);
      * }
      * 
-     * }
      */
     protected boolean uC_ownsD(final /*@NonNull*/ /*@NonInvalid*/ Y2 y2_0) {
         // predicates
@@ -1099,24 +1002,18 @@
     
     /**
      * 
-     * map uC_name in Source2Target_qvtp_qvtias) {
+     * map uC_name in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (y2 : source::Y2[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * y2.ast.oclAsType(target::C) = name;
+     * y2.ast.oclAsType(target::C).name := name;
      * }
      * 
-     * }
      */
     protected boolean uC_name(final /*@NonNull*/ /*@NonInvalid*/ Y2 y2_1) {
         // predicates
@@ -1134,27 +1031,22 @@
     
     /**
      * 
-     * map uD_0_toA in Source2Target_qvtp_qvtias) {
+     * map uD_0_toA in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (z : source::Z[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * not toY.oclIsKindOf(source::Y1)
      *   )
      * { |
      * z.ast.oclAsType(target::D)
-     *    = toY.oclAsType(source::Y2)
+     *   .toA := toY.oclAsType(source::Y2)
      *   .ast.oclAsType(target::C).toA2;
      * }
      * 
-     * }
      */
     protected boolean uD_0_toA(final /*@NonNull*/ /*@NonInvalid*/ Z z_1) {
         // predicates
@@ -1190,27 +1082,22 @@
     
     /**
      * 
-     * map uD_0_refsC in Source2Target_qvtp_qvtias) {
+     * map uD_0_refsC in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (z : source::Z[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * not toY.oclIsKindOf(source::Y1)
      *   )
      * { |
      * z.ast.oclAsType(target::D)
-     *    = ast.oclAsType(target::D)
+     *   .refsC := ast.oclAsType(target::D)
      *   .lookupC(z);
      * }
      * 
-     * }
      */
     protected boolean uD_0_refsC(final /*@NonNull*/ /*@NonInvalid*/ Z z_2) {
         // predicates
@@ -1295,27 +1182,22 @@
     
     /**
      * 
-     * map uD_1_toA in Source2Target_qvtp_qvtias) {
+     * map uD_1_toA in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (z : source::Z[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * toY.oclIsKindOf(source::Y1)
      *   )
      * { |
      * z.ast.oclAsType(target::D)
-     *    = toY.oclAsType(source::Y1)
+     *   .toA := toY.oclAsType(source::Y1)
      *   .ast.oclAsType(target::B).toA1;
      * }
      * 
-     * }
      */
     protected boolean uD_1_toA(final /*@NonNull*/ /*@NonInvalid*/ Z z_3) {
         // predicates
@@ -1349,27 +1231,22 @@
     
     /**
      * 
-     * map uD_1_refsB in Source2Target_qvtp_qvtias) {
+     * map uD_1_refsB in Source2Target_qvtp_qvtias {
      * 
      *   leftCS (z : source::Z[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
      * where ( |
      * toY.oclIsKindOf(source::Y1)
      *   )
      * { |
      * z.ast.oclAsType(target::D)
-     *    = ast.oclAsType(target::D)
+     *   .refsB := ast.oclAsType(target::D)
      *   .lookupB(z);
      * }
      * 
-     * }
      */
     protected boolean uD_1_refsB(final /*@NonNull*/ /*@NonInvalid*/ Z z_4) {
         // predicates
@@ -1453,12 +1330,10 @@
     
     /**
      * 
-     * map __root__ in Source2Target_qvtp_qvtias) {
+     * map __root__ in Source2Target_qvtp_qvtias {
      * 
-     *   where ( |
-     * )
-     * { |
-     * }
+     *   where ( |)
+     * { |}
      * for sRoot : source::SRoot in source::SRoot.allInstances()
      *    {
      * map cSRoot_2_TRoot {
@@ -1574,7 +1449,6 @@
      * map uD_1_toA {
      * z := z;
      * }}
-     * }
      */
     protected boolean __root__() {
         // predicates
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/classescs2as_qvtp_qvtias.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/classescs2as_qvtp_qvtias.java
index 2263955..c3b6043 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/classescs2as_qvtp_qvtias.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/classescs2as_qvtp_qvtias.java
@@ -175,24 +175,18 @@
     
     /**
      * 
-     * map cClassCS_2_Class in classescs2as_qvtp_qvtias) {
+     * map cClassCS_2_Class in classescs2as_qvtp_qvtias {
      * leftCS (classCS : classescs::ClassCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize class : classes::Class[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * classCS = class;
+     * classCS.ast := class;
      * }
      * 
-     * }
      */
     protected boolean cClassCS_2_Class(final /*@NonNull*/ /*@NonInvalid*/ ClassCS classCS) {
         // predicates
@@ -208,24 +202,18 @@
     
     /**
      * 
-     * map cPackageCS_2_Package in classescs2as_qvtp_qvtias) {
+     * map cPackageCS_2_Package in classescs2as_qvtp_qvtias {
      * leftCS (packageCS : classescs::PackageCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize package : classes::Package[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * packageCS = package;
+     * packageCS.ast := package;
      * }
      * 
-     * }
      */
     protected boolean cPackageCS_2_Package(final /*@NonNull*/ /*@NonInvalid*/ PackageCS packageCS) {
         // predicates
@@ -241,24 +229,18 @@
     
     /**
      * 
-     * map cRootCS_2_Root in classescs2as_qvtp_qvtias) {
+     * map cRootCS_2_Root in classescs2as_qvtp_qvtias {
      * leftCS (rootCS : classescs::RootCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize root : classes::Root[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * rootCS = root;
+     * rootCS.ast := root;
      * }
      * 
-     * }
      */
     protected boolean cRootCS_2_Root(final /*@NonNull*/ /*@NonInvalid*/ RootCS rootCS) {
         // predicates
@@ -274,24 +256,18 @@
     
     /**
      * 
-     * map uClass_name in classescs2as_qvtp_qvtias) {
+     * map uClass_name in classescs2as_qvtp_qvtias {
      * 
      *   leftCS (classCS : classescs::ClassCS[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * classCS.ast.oclAsType(classes::Class) = name;
+     * classCS.ast.oclAsType(classes::Class).name := name;
      * }
      * 
-     * }
      */
     protected boolean uClass_name(final /*@NonNull*/ /*@NonInvalid*/ ClassCS classCS_0) {
         // predicates
@@ -309,26 +285,20 @@
     
     /**
      * 
-     * map uClass_superClass in classescs2as_qvtp_qvtias) {
+     * map uClass_superClass in classescs2as_qvtp_qvtias {
      * 
      *   leftCS (classCS : classescs::ClassCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
      * classCS.ast.oclAsType(classes::Class)
-     *    = ast.oclAsType(classes::Class)
+     *   .superClass := ast.oclAsType(classes::Class)
      *   .lookupClass(classCS);
      * }
      * 
-     * }
      */
     protected boolean uClass_superClass(final /*@NonNull*/ /*@NonInvalid*/ ClassCS classCS_1) {
         // predicates
@@ -398,24 +368,18 @@
     
     /**
      * 
-     * map uPackage_name in classescs2as_qvtp_qvtias) {
+     * map uPackage_name in classescs2as_qvtp_qvtias {
      * 
      *   leftCS (packageCS : classescs::PackageCS[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * packageCS.ast.oclAsType(classes::Package) = name;
+     * packageCS.ast.oclAsType(classes::Package).name := name;
      * }
      * 
-     * }
      */
     protected boolean uPackage_name(final /*@NonNull*/ /*@NonInvalid*/ PackageCS packageCS_0) {
         // predicates
@@ -433,26 +397,20 @@
     
     /**
      * 
-     * map uPackage_ownedClasses in classescs2as_qvtp_qvtias) {
+     * map uPackage_ownedClasses in classescs2as_qvtp_qvtias {
      * 
      *   leftCS (packageCS : classescs::PackageCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
      * packageCS.ast.oclAsType(classes::Package)
-     *    = ownedClasses.ast.oclAsType(classes::Class)
+     *   .ownedClasses := ownedClasses.ast.oclAsType(classes::Class)
      *   ->asOrderedSet();
      * }
      * 
-     * }
      */
     protected boolean uPackage_ownedClasses(final /*@NonNull*/ /*@NonInvalid*/ PackageCS packageCS_1) {
         // predicates
@@ -496,26 +454,20 @@
     
     /**
      * 
-     * map uPackage_ownedPackages in classescs2as_qvtp_qvtias) {
+     * map uPackage_ownedPackages in classescs2as_qvtp_qvtias {
      * 
      *   leftCS (packageCS : classescs::PackageCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
      * packageCS.ast.oclAsType(classes::Package)
-     *    = ownedPackages.ast.oclAsType(classes::Package)
+     *   .ownedPackages := ownedPackages.ast.oclAsType(classes::Package)
      *   ->asOrderedSet();
      * }
      * 
-     * }
      */
     protected boolean uPackage_ownedPackages(final /*@NonNull*/ /*@NonInvalid*/ PackageCS packageCS_2) {
         // predicates
@@ -558,26 +510,20 @@
     
     /**
      * 
-     * map uRoot_ownedPackages in classescs2as_qvtp_qvtias) {
+     * map uRoot_ownedPackages in classescs2as_qvtp_qvtias {
      * 
      *   leftCS (rootCS : classescs::RootCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
-     * { |
-     * }
-     * where ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
+     * { |}
+     * where ( |)
      * { |
      * rootCS.ast.oclAsType(classes::Root)
-     *    = ownedPackages.ast.oclAsType(classes::Package)
+     *   .ownedPackages := ownedPackages.ast.oclAsType(classes::Package)
      *   ->asOrderedSet();
      * }
      * 
-     * }
      */
     protected boolean uRoot_ownedPackages(final /*@NonNull*/ /*@NonInvalid*/ RootCS rootCS_0) {
         // predicates
@@ -621,12 +567,10 @@
     
     /**
      * 
-     * map __root__ in classescs2as_qvtp_qvtias) {
+     * map __root__ in classescs2as_qvtp_qvtias {
      * 
-     *   where ( |
-     * )
-     * { |
-     * }
+     *   where ( |)
+     * { |}
      * for rootCS : classescs::RootCS in classescs::RootCS.allInstances()
      *    {
      * map cRootCS_2_Root {
@@ -672,7 +616,6 @@
      * map uClass_superClass {
      * classCS := classCS;
      * }}
-     * }
      */
     protected boolean __root__() {
         // predicates
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/ManualUML2RDBMS.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/ManualUML2RDBMS.java
index 22a3d9a..b758b97 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/ManualUML2RDBMS.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/ManualUML2RDBMS.java
@@ -181,18 +181,15 @@
     
     /**
      * 
-     * map __root__ in ManualUML2RDBMS) {
+     * map __root__ in ManualUML2RDBMS {
      * 
-     *   where ( |
-     * )
-     * { |
-     * }
+     *   where ( |)
+     * { |}
      * for p1 : uml::Package in uml::Package.allInstances()
      *    {
      * map packageToSchemaLM {
      * p := p1;
      * }}
-     * }
      */
     protected boolean __root__() {
         // predicates
@@ -216,23 +213,18 @@
     
     /**
      * 
-     * map packageToSchemaLM in ManualUML2RDBMS) {
+     * map packageToSchemaLM in ManualUML2RDBMS {
      * 
      *   uml (p : uml::Package[1];
-     *  |
-     * )
-     * { |
-     * }
-     * middle ( |
-     * )
+     *  |)
+     * { |}
+     * middle ( |)
      * {realize p2s : uml2rdbms::PackageToSchema[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * p2s = p;
-     * p2s = p.name;
+     * p2s.umlPackage := p;
+     * p2s.name := p.name;
      * }
      * for child : uml::PackageElement in p.elements {
      * 
@@ -266,7 +258,6 @@
      *   map packageToSchemaMR {
      * p2s := p2s;
      * }
-     * }
      */
     protected boolean packageToSchemaLM(final @NonNull /*@NonInvalid*/ Package p) {
         // predicates
@@ -314,22 +305,17 @@
     
     /**
      * 
-     * map packageToSchemaMR in ManualUML2RDBMS) {
+     * map packageToSchemaMR in ManualUML2RDBMS {
      * 
      *   middle (p2s : uml2rdbms::PackageToSchema[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rdbms ( |
-     * )
+     *  |)
+     * { |}
+     * rdbms ( |)
      * {realize s : rdbms::Schema[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * p2s = s;
+     * p2s.schema := s;
      * }
      * map packageToSchemaMR_1 {
      * s_1 := s;
@@ -356,7 +342,6 @@
      * c2t := child;
      * s := s;
      * }}
-     * }
      */
     protected boolean packageToSchemaMR(final @NonNull /*@NonInvalid*/ PackageToSchema p2s) {
         // predicates
@@ -393,24 +378,18 @@
     
     /**
      * 
-     * map packageToSchemaMR_1 in ManualUML2RDBMS) {
+     * map packageToSchemaMR_1 in ManualUML2RDBMS {
      * middle (p2s_1 : uml2rdbms::PackageToSchema[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (s_1 : rdbms::Schema[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * s_1 = p2s_1.name;
+     * s_1.name := p2s_1.name;
      * }
      * 
-     * }
      */
     protected boolean packageToSchemaMR_1(final @NonNull /*@NonInvalid*/ PackageToSchema p2s_1, final @NonNull /*@NonInvalid*/ Schema s_1) {
         // predicates
@@ -424,29 +403,24 @@
     
     /**
      * 
-     * map integerToNumberLM in ManualUML2RDBMS) {
+     * map integerToNumberLM in ManualUML2RDBMS {
      * uml (p : uml::Package[1];
      * prim : uml::PrimitiveDataType[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (p2s : uml2rdbms::PackageToSchema[1];
-     *  |
-     * )
+     *  |)
      * {realize p2n : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * prim.namespace = pprim.name = 'Integer'p2s.umlPackage = p)
      * { |
-     * p2n = p2s;
-     * p2n = prim;
-     * p2n = prim.name + '2' + 'NUMBER';
-     * p2n = 'NUMBER';
+     * p2n.owner := p2s;
+     * p2n.primitive := prim;
+     * p2n.name := prim.name + '2' + 'NUMBER';
+     * p2n.typeName := 'NUMBER';
      * }
      * 
-     * }
      */
     protected boolean integerToNumberLM(final @NonNull /*@NonInvalid*/ Package p_0, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_0, final @NonNull /*@NonInvalid*/ PrimitiveDataType prim) {
         // predicates
@@ -483,23 +457,17 @@
     
     /**
      * 
-     * map integerToNumberMR in ManualUML2RDBMS) {
+     * map integerToNumberMR in ManualUML2RDBMS {
      * middle (p2s : uml2rdbms::PackageToSchema[1];
      * p2n : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rdbms ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rdbms ( |)
+     * { |}
      * where ( |
      * p2n.owner = p2sp2n.name = 'Integer' + '2' + 'NUMBER')
-     * { |
-     * }
+     * { |}
      * 
-     * }
      */
     protected boolean integerToNumberMR(final @NonNull /*@NonInvalid*/ PrimitiveToName p2n, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_2) {
         // predicates
@@ -523,29 +491,24 @@
     
     /**
      * 
-     * map booleanToBooleanLM in ManualUML2RDBMS) {
+     * map booleanToBooleanLM in ManualUML2RDBMS {
      * uml (p : uml::Package[1];
      * prim : uml::PrimitiveDataType[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (p2s : uml2rdbms::PackageToSchema[1];
-     *  |
-     * )
+     *  |)
      * {realize p2n : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * prim.namespace = pprim.name = 'Boolean'p2s.umlPackage = p)
      * { |
-     * p2n = p2s;
-     * p2n = prim;
-     * p2n = prim.name + '2' + 'BOOLEAN';
-     * p2n = 'BOOLEAN';
+     * p2n.owner := p2s;
+     * p2n.primitive := prim;
+     * p2n.name := prim.name + '2' + 'BOOLEAN';
+     * p2n.typeName := 'BOOLEAN';
      * }
      * 
-     * }
      */
     protected boolean booleanToBooleanLM(final @NonNull /*@NonInvalid*/ Package p_1, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_3, final @NonNull /*@NonInvalid*/ PrimitiveDataType prim_0) {
         // predicates
@@ -582,23 +545,17 @@
     
     /**
      * 
-     * map booleanToBooleanMR in ManualUML2RDBMS) {
+     * map booleanToBooleanMR in ManualUML2RDBMS {
      * middle (p2s : uml2rdbms::PackageToSchema[1];
      * p2n : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rdbms ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rdbms ( |)
+     * { |}
      * where ( |
      * p2n.owner = p2sp2n.name = 'Boolean' + '2' + 'BOOLEAN')
-     * { |
-     * }
+     * { |}
      * 
-     * }
      */
     protected boolean booleanToBooleanMR(final @NonNull /*@NonInvalid*/ PrimitiveToName p2n_0, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_4) {
         // predicates
@@ -622,29 +579,24 @@
     
     /**
      * 
-     * map stringToVarcharLM in ManualUML2RDBMS) {
+     * map stringToVarcharLM in ManualUML2RDBMS {
      * uml (p : uml::Package[1];
      * prim : uml::PrimitiveDataType[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (p2s : uml2rdbms::PackageToSchema[1];
-     *  |
-     * )
+     *  |)
      * {realize p2n : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * prim.namespace = pprim.name = 'String'p2s.umlPackage = p)
      * { |
-     * p2n = p2s;
-     * p2n = prim;
-     * p2n = prim.name + '2' + 'VARCHAR';
-     * p2n = 'VARCHAR';
+     * p2n.owner := p2s;
+     * p2n.primitive := prim;
+     * p2n.name := prim.name + '2' + 'VARCHAR';
+     * p2n.typeName := 'VARCHAR';
      * }
      * 
-     * }
      */
     protected boolean stringToVarcharLM(final @NonNull /*@NonInvalid*/ Package p_2, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_5, final @NonNull /*@NonInvalid*/ PrimitiveDataType prim_1) {
         // predicates
@@ -681,23 +633,17 @@
     
     /**
      * 
-     * map stringToVarcharMR in ManualUML2RDBMS) {
+     * map stringToVarcharMR in ManualUML2RDBMS {
      * middle (p2s : uml2rdbms::PackageToSchema[1];
      * p2n : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rdbms ( |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
+     * rdbms ( |)
+     * { |}
      * where ( |
      * p2n.owner = p2sp2n.name = 'String' + '2' + 'VARCHAR')
-     * { |
-     * }
+     * { |}
      * 
-     * }
      */
     protected boolean stringToVarcharMR(final @NonNull /*@NonInvalid*/ PrimitiveToName p2n_1, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_6) {
         // predicates
@@ -721,26 +667,22 @@
     
     /**
      * 
-     * map classToTableLM in ManualUML2RDBMS) {
+     * map classToTableLM in ManualUML2RDBMS {
      * uml (p : uml::Package[1];
      * c : uml::Class[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (p2s : uml2rdbms::PackageToSchema[1];
-     *  |
-     * )
+     *  |)
      * {realize c2t : uml2rdbms::ClassToTable[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * c.kind = 'persistent'c.namespace = pp2s.umlPackage =
      *   p)
      * { |
-     * c2t = p2s;
-     * c2t = c;
-     * c2t = c.name;
+     * c2t.owner := p2s;
+     * c2t.umlClass := c;
+     * c2t.name := c.name;
      * }
      * for anAttribute : uml::Attribute in c.attributes {
      * 
@@ -762,7 +704,6 @@
      * ca := anAttribute;
      * c := anAttribute.type;
      * }}
-     * }
      */
     protected boolean classToTableLM(final @NonNull /*@NonInvalid*/ manualuml2rdbms.uml.Class c, final @NonNull /*@NonInvalid*/ Package p_3, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_7) {
         // predicates
@@ -817,25 +758,21 @@
     
     /**
      * 
-     * map classToTableMR in ManualUML2RDBMS) {
+     * map classToTableMR in ManualUML2RDBMS {
      * middle (p2s : uml2rdbms::PackageToSchema[1];
      * c2t : uml2rdbms::ClassToTable[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (s : rdbms::Schema[1];
-     *  |
-     * )
+     *  |)
      * {realize t : rdbms::Table[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * c2t.owner =
      *   p2s)
      * { |
-     * t = 'base';
-     * t = s;
+     * t.kind := 'base';
+     * t.schema := s;
      * }
      * map classToTableMR_1 {
      * c2t_1 := c2t;
@@ -865,7 +802,6 @@
      * a2c := child;
      * t := t;
      * }}
-     * }
      */
     protected boolean classToTableMR(final @NonNull /*@NonInvalid*/ ClassToTable c2t, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_8, final @NonNull /*@NonInvalid*/ Schema s) {
         // predicates
@@ -947,25 +883,19 @@
     
     /**
      * 
-     * map classToTableMR_1 in ManualUML2RDBMS) {
+     * map classToTableMR_1 in ManualUML2RDBMS {
      * middle (c2t_1 : uml2rdbms::ClassToTable[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (t_1 : rdbms::Table[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * c2t_1 = t_1;
-     * t_1 = c2t_1.name;
+     * c2t_1.table := t_1;
+     * t_1.name := c2t_1.name;
      * }
      * 
-     * }
      */
     protected boolean classToTableMR_1(final @NonNull /*@NonInvalid*/ ClassToTable c2t_1, final @NonNull /*@NonInvalid*/ Table t_1) {
         // predicates
@@ -981,30 +911,25 @@
     
     /**
      * 
-     * map classToTableMR_2 in ManualUML2RDBMS) {
+     * map classToTableMR_2 in ManualUML2RDBMS {
      * 
      *   middle (c2t_2 : uml2rdbms::ClassToTable[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (t_2 : rdbms::Table[1];
-     *  |
-     * )
+     *  |)
      * {realize pk : rdbms::Key[1];
      * realize pc : rdbms::Column[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * pk = t_2;
-     * pk = 'primary';
-     * pc = t_2;
-     * pc = OrderedSet{pk
+     * pk.owner := t_2;
+     * pk.kind := 'primary';
+     * pc.owner := t_2;
+     * pc.key := OrderedSet{pk
      *   }
      *   ;
-     * pc = 'NUMBER';
+     * pc.type := 'NUMBER';
      * }
      * map classToTableMR_2_1 {
      * c2t_2_1 := c2t_2;
@@ -1016,7 +941,6 @@
      * pc_2_2 := pc;
      * t_2_2 := t_2;
      * }
-     * }
      */
     protected boolean classToTableMR_2(final @NonNull /*@NonInvalid*/ ClassToTable c2t_2, final @NonNull /*@NonInvalid*/ Table t_2) {
         // predicates
@@ -1045,26 +969,20 @@
     
     /**
      * 
-     * map classToTableMR_2_1 in ManualUML2RDBMS) {
+     * map classToTableMR_2_1 in ManualUML2RDBMS {
      * middle (c2t_2_1 : uml2rdbms::ClassToTable[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (pk_2_1 : rdbms::Key[1];
      * pc_2_1 : rdbms::Column[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * c2t_2_1 = pk_2_1;
-     * c2t_2_1 = pc_2_1;
+     * c2t_2_1.primaryKey := pk_2_1;
+     * c2t_2_1.column := pc_2_1;
      * }
      * 
-     * }
      */
     protected boolean classToTableMR_2_1(final @NonNull /*@NonInvalid*/ ClassToTable c2t_2_1, final @NonNull /*@NonInvalid*/ Column pc_2_1, final @NonNull /*@NonInvalid*/ Key pk_2_1) {
         // predicates
@@ -1078,26 +996,20 @@
     
     /**
      * 
-     * map classToTableMR_2_2 in ManualUML2RDBMS) {
-     * middle ( |
-     * )
-     * { |
-     * }
+     * map classToTableMR_2_2 in ManualUML2RDBMS {
+     * middle ( |)
+     * { |}
      * rdbms (pk_2_2 : rdbms::Key[1];
      * pc_2_2 : rdbms::Column[1];
      * t_2_2 : rdbms::Table[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * pc_2_2 = t_2_2.name + '_tid';
-     * pk_2_2 = t_2_2.name + '_pk';
+     * pc_2_2.name := t_2_2.name + '_tid';
+     * pk_2_2.name := t_2_2.name + '_pk';
      * }
      * 
-     * }
      */
     protected boolean classToTableMR_2_2(final @NonNull /*@NonInvalid*/ Column pc_2_2, final @NonNull /*@NonInvalid*/ Key pk_2_2, final @NonNull /*@NonInvalid*/ Table t_2_2) {
         // predicates
@@ -1114,32 +1026,28 @@
     
     /**
      * 
-     * map associationToForeignKeyLM in ManualUML2RDBMS) {
+     * map associationToForeignKeyLM in ManualUML2RDBMS {
      * uml (p : uml::Package[1];
      * sc : uml::Class[1];
      * dc : uml::Class[1];
      * a : uml::Association[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (p2s : uml2rdbms::PackageToSchema[1];
      * sc2t : uml2rdbms::ClassToTable[1];
      * dc2t : uml2rdbms::ClassToTable[1];
-     *  |
-     * )
+     *  |)
      * {realize a2f : uml2rdbms::AssociationToForeignKey[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * a.namespace = psc.namespace = pp2s.umlPackage =
      *   p)
      * { |
-     * sc2t = p2s;
-     * a2f = sc2t;
-     * a2f = dc2t;
-     * a2f = a;
-     * a2f = let dc2 : uml::Class[1] = dc;
+     * sc2t.owner := p2s;
+     * a2f.owner := sc2t;
+     * a2f.referenced := dc2t;
+     * a2f.association := a;
+     * a2f.name := let dc2 : uml::Class[1] = dc;
      * 
      *   in
      *     if a.destination = dc and a.source = sc
@@ -1156,7 +1064,6 @@
      *     endif;
      * }
      * 
-     * }
      */
     protected boolean associationToForeignKeyLM(final @NonNull /*@NonInvalid*/ Association a, final @NonNull /*@NonInvalid*/ Package p_4, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_9) {
         // predicates
@@ -1312,34 +1219,30 @@
     
     /**
      * 
-     * map associationToForeignKeyMR in ManualUML2RDBMS) {
+     * map associationToForeignKeyMR in ManualUML2RDBMS {
      * middle (p2s : uml2rdbms::PackageToSchema[1];
      * sc2t : uml2rdbms::ClassToTable[1];
      * dc2t : uml2rdbms::ClassToTable[1];
      * a2f : uml2rdbms::AssociationToForeignKey[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (s : rdbms::Schema[1];
      * st : rdbms::Table[1];
      * dt : rdbms::Table[1];
      * rk : rdbms::Key[1];
-     *  |
-     * )
+     *  |)
      * {realize fk : rdbms::ForeignKey[1];
      * realize fc : rdbms::Column[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * a2f.owner = sc2ta2f.referenced = dc2tp2s.schema = sst.schema = s)
      * { |
-     * sc2t = p2s;
-     * fk = a2f.name;
-     * fc = a2f.name +
+     * sc2t.owner := p2s;
+     * fk.name := a2f.name;
+     * fc.name := a2f.name +
      *   '_tid';
-     * fk = st;
-     * fc = st;
+     * fk.owner := st;
+     * fc.owner := st;
      * }
      * map associationToForeignKeyMR_1 {
      * fk := fk;
@@ -1352,7 +1255,6 @@
      * fk_1 := fk;
      * fc_1 := fc;
      * }
-     * }
      */
     protected boolean associationToForeignKeyMR(final @NonNull /*@NonInvalid*/ AssociationToForeignKey a2f, final @NonNull /*@NonInvalid*/ ClassToTable dc2t, final @NonNull /*@NonInvalid*/ Table dt, final @NonNull /*@NonInvalid*/ PackageToSchema p2s_10, final @NonNull /*@NonInvalid*/ Key rk, final @NonNull /*@NonInvalid*/ Schema s_0, final @NonNull /*@NonInvalid*/ ClassToTable sc2t, final @NonNull /*@NonInvalid*/ Table st) {
         // predicates
@@ -1406,31 +1308,25 @@
     
     /**
      * 
-     * map associationToForeignKeyMR_1 in ManualUML2RDBMS) {
+     * map associationToForeignKeyMR_1 in ManualUML2RDBMS {
      * 
-     *   middle ( |
-     * )
-     * { |
-     * }
+     *   middle ( |)
+     * { |}
      * rdbms (fk : rdbms::ForeignKey[1];
      * fc : rdbms::Column[1];
      * dt : rdbms::Table[1];
      * rk : rdbms::Key[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * fk = rk;
-     * fc = OrderedSet{fk
+     * fk.refersTo := rk;
+     * fc.foreignKeys := OrderedSet{fk
      *   }
      *   ;
-     * fc = rk.column->first().type;
+     * fc.type := rk.column->first().type;
      * }
      * 
-     * }
      */
     protected boolean associationToForeignKeyMR_1(final @NonNull /*@NonInvalid*/ Table dt_0, final @NonNull /*@NonInvalid*/ Column fc, final @NonNull /*@NonInvalid*/ ForeignKey fk, final @NonNull /*@NonInvalid*/ Key rk_0) {
         // predicates
@@ -1457,26 +1353,20 @@
     
     /**
      * 
-     * map associationToForeignKeyMR_2 in ManualUML2RDBMS) {
+     * map associationToForeignKeyMR_2 in ManualUML2RDBMS {
      * middle (a2f_1 : uml2rdbms::AssociationToForeignKey[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (fk_1 : rdbms::ForeignKey[1];
      * fc_1 : rdbms::Column[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * a2f_1 = fk_1;
-     * a2f_1 = fc_1;
+     * a2f_1.foreignKey := fk_1;
+     * a2f_1.column := fc_1;
      * }
      * 
-     * }
      */
     protected boolean associationToForeignKeyMR_2(final @NonNull /*@NonInvalid*/ AssociationToForeignKey a2f_1, final @NonNull /*@NonInvalid*/ Column fc_1, final @NonNull /*@NonInvalid*/ ForeignKey fk_1) {
         // predicates
@@ -1490,35 +1380,30 @@
     
     /**
      * 
-     * map classPrimitiveAttributesLM in ManualUML2RDBMS) {
+     * map classPrimitiveAttributesLM in ManualUML2RDBMS {
      * uml (c : uml::Class[1];
      * t : uml::PrimitiveDataType[1];
      * a : uml::Attribute[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (fao : uml2rdbms::ClassToTable[1];
      * p2n : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * )
+     *  |)
      * {realize atc : uml2rdbms::AttributeToColumn[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * a.owner = cfao.umlClass =
      *   c)
      * { |
-     * atc = a;
-     * atc = fao;
-     * atc = p2n;
-     * atc = a.kind;
-     * atc = a.name;
-     * atc = Set{atc
+     * atc.attribute := a;
+     * atc.owner := fao;
+     * atc.type := p2n;
+     * atc.kind := a.kind;
+     * atc.name := a.name;
+     * atc.leafs := Set{atc
      *   };
      * }
      * 
-     * }
      */
     protected boolean classPrimitiveAttributesLM(final @NonNull /*@NonInvalid*/ Attribute a_0, final @NonNull /*@NonInvalid*/ manualuml2rdbms.uml.Class c_0, final @NonNull /*@NonInvalid*/ ClassToTable fao) {
         // predicates
@@ -1566,32 +1451,27 @@
     
     /**
      * 
-     * map classComplexAttributesLM in ManualUML2RDBMS) {
+     * map classComplexAttributesLM in ManualUML2RDBMS {
      * uml (c : uml::Class[1];
      * t : uml::Class[1];
      * a : uml::Attribute[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (fao : uml2rdbms::ClassToTable[1];
-     *  |
-     * )
+     *  |)
      * {realize fa : uml2rdbms::NonLeafAttribute[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * a.owner = cfao.umlClass =
      *   c)
      * { |
-     * fa = a;
-     * fa = fao;
-     * fa = a.kind;
-     * fa = a.name;
-     * fa = fao.fromAttributes.leafs->asSet();
+     * fa.attribute := a;
+     * fa.owner := fao;
+     * fa.kind := a.kind;
+     * fa.name := a.name;
+     * fa.leafs := fao.fromAttributes.leafs->asSet();
      * }
      * 
-     * }
      */
     protected boolean classComplexAttributesLM(final @NonNull /*@NonInvalid*/ Attribute a_1, final @NonNull /*@NonInvalid*/ manualuml2rdbms.uml.Class c_1, final @NonNull /*@NonInvalid*/ ClassToTable fao_0) {
         // predicates
@@ -1659,23 +1539,18 @@
     
     /**
      * 
-     * map complexAttributePrimitiveAttributesLM in ManualUML2RDBMS) {
+     * map complexAttributePrimitiveAttributesLM in ManualUML2RDBMS {
      * uml (c : uml::Class[1];
      * ca : uml::Attribute[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (fao : uml2rdbms::NonLeafAttribute[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * where ( |
      * ca.type =
      *   c)
-     * { |
-     * }
+     * { |}
      * for anAttribute : uml::Attribute in c.attributes {
      * 
      *     map complexAttributePrimitiveAttributesLM_1 {
@@ -1684,7 +1559,6 @@
      * fao_1 := fao;
      * a_1 := anAttribute;
      * }}
-     * }
      */
     protected boolean complexAttributePrimitiveAttributesLM(final @NonNull /*@NonInvalid*/ manualuml2rdbms.uml.Class c_2, final @NonNull /*@NonInvalid*/ Attribute ca) {
         // predicates
@@ -1718,36 +1592,31 @@
     
     /**
      * 
-     * map complexAttributePrimitiveAttributesLM_1 in ManualUML2RDBMS) {
+     * map complexAttributePrimitiveAttributesLM_1 in ManualUML2RDBMS {
      * 
      *   uml (c_1 : uml::Class[1];
      * t_1 : uml::PrimitiveDataType[1];
      * a_1 : uml::Attribute[1];
      * ca_1 : uml::Attribute[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (fao_1 : uml2rdbms::NonLeafAttribute[1];
      * p2n_1 : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * )
+     *  |)
      * {realize fa : uml2rdbms::AttributeToColumn[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * )
      * { |
-     * fa = fao_1;
-     * fa = Set{fa
+     * fa.owner := fao_1;
+     * fa.leafs := Set{fa
      *   };
-     * fa = a_1;
-     * fa = p2n_1;
-     * fa = a_1.kind;
-     * fa = ca_1.name + '_' + a_1.name;
+     * fa.attribute := a_1;
+     * fa.type := p2n_1;
+     * fa.kind := a_1.kind;
+     * fa.name := ca_1.name + '_' + a_1.name;
      * }
      * 
-     * }
      */
     protected boolean complexAttributePrimitiveAttributesLM_1(final @NonNull /*@NonInvalid*/ Attribute a_1_0, final @NonNull /*@NonInvalid*/ manualuml2rdbms.uml.Class c_1_0, final @NonNull /*@NonInvalid*/ Attribute ca_1, final @NonNull /*@NonInvalid*/ NonLeafAttribute fao_1) {
         // predicates
@@ -1788,23 +1657,18 @@
     
     /**
      * 
-     * map complexAttributeComplexAttributesLM in ManualUML2RDBMS) {
+     * map complexAttributeComplexAttributesLM in ManualUML2RDBMS {
      * uml (c : uml::Class[1];
      * ca : uml::Attribute[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (fao : uml2rdbms::NonLeafAttribute[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * where ( |
      * ca.type =
      *   c)
-     * { |
-     * }
+     * { |}
      * for anAttribute : uml::Attribute in c.attributes {
      * 
      *     map complexAttributeComplexAttributesLM_1 {
@@ -1813,7 +1677,6 @@
      * c_1 := c;
      * fao_1 := fao;
      * }}
-     * }
      */
     protected boolean complexAttributeComplexAttributesLM(final @NonNull /*@NonInvalid*/ manualuml2rdbms.uml.Class c_3, final @NonNull /*@NonInvalid*/ Attribute ca_0) {
         // predicates
@@ -1847,33 +1710,28 @@
     
     /**
      * 
-     * map complexAttributeComplexAttributesLM_1 in ManualUML2RDBMS) {
+     * map complexAttributeComplexAttributesLM_1 in ManualUML2RDBMS {
      * uml (c_1 : uml::Class[1];
      * ca_1 : uml::Attribute[1];
      * t_1 : uml::Class[1];
      * a_1 : uml::Attribute[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (fao_1 : uml2rdbms::NonLeafAttribute[1];
-     *  |
-     * )
+     *  |)
      * {realize fa : uml2rdbms::NonLeafAttribute[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * a_1.owner =
      *   c_1)
      * { |
-     * fa = fao_1;
-     * fa = fao_1.fromAttributes.leafs->asSet();
-     * fa = a_1;
-     * fa = a_1.kind;
-     * fa = ca_1.name + '_' + a_1.name;
+     * fa.owner := fao_1;
+     * fa.leafs := fao_1.fromAttributes.leafs->asSet();
+     * fa.attribute := a_1;
+     * fa.kind := a_1.kind;
+     * fa.name := ca_1.name + '_' + a_1.name;
      * }
      * 
-     * }
      */
     protected boolean complexAttributeComplexAttributesLM_1(final @NonNull /*@NonInvalid*/ Attribute a_1_1, final @NonNull /*@NonInvalid*/ manualuml2rdbms.uml.Class c_1_1, final @NonNull /*@NonInvalid*/ Attribute ca_1_0, final @NonNull /*@NonInvalid*/ NonLeafAttribute fao_1_0) {
         // predicates
@@ -1939,26 +1797,22 @@
     
     /**
      * 
-     * map attributeColumnsMR in ManualUML2RDBMS) {
+     * map attributeColumnsMR in ManualUML2RDBMS {
      * middle (c2t : uml2rdbms::ClassToTable[1];
      * a2c : uml2rdbms::AttributeToColumn[1];
      * p2n : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (t : rdbms::Table[1];
      * ct : String[1];
-     *  |
-     * )
+     *  |)
      * {realize c : rdbms::Column[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * c2t.table =
      *   t)
      * { |
-     * c = t;
+     * c.owner := t;
      * }
      * map attributeColumnsMR_1 {
      * a2c_1 := a2c;
@@ -1974,7 +1828,6 @@
      * c_3 := c;
      * a2c_3 := a2c;
      * }
-     * }
      */
     protected boolean attributeColumnsMR(final @NonNull /*@NonInvalid*/ AttributeToColumn a2c, final @NonNull /*@NonInvalid*/ ClassToTable c2t_0, final @NonNull /*@NonInvalid*/ Table t) {
         // predicates
@@ -2008,24 +1861,18 @@
     
     /**
      * 
-     * map attributeColumnsMR_1 in ManualUML2RDBMS) {
+     * map attributeColumnsMR_1 in ManualUML2RDBMS {
      * middle (a2c_1 : uml2rdbms::AttributeToColumn[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (c_1 : rdbms::Column[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * a2c_1 = c_1;
+     * a2c_1.column := c_1;
      * }
      * 
-     * }
      */
     protected boolean attributeColumnsMR_1(final @NonNull /*@NonInvalid*/ AttributeToColumn a2c_1, final @NonNull /*@NonInvalid*/ Column c_1_2) {
         // predicates
@@ -2038,30 +1885,25 @@
     
     /**
      * 
-     * map attributeColumnsMR_2 in ManualUML2RDBMS) {
+     * map attributeColumnsMR_2 in ManualUML2RDBMS {
      * middle (p2n_2 : uml2rdbms::PrimitiveToName[1];
      * a2c_2 : uml2rdbms::AttributeToColumn[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (c_2 : rdbms::Column[1];
      * ct_2 : String[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * where ( |
      * a2c_2.type =
      *   p2n_2)
      * { |
-     * c_2 = ct_2;
+     * c_2.type := ct_2;
      * }
      * map attributeColumnsMR_2_1 {
      * p2n_2_1 := p2n_2;
      * ct_2_1 := ct_2;
      * }
-     * }
      */
     protected boolean attributeColumnsMR_2(final @NonNull /*@NonInvalid*/ AttributeToColumn a2c_2, final @NonNull /*@NonInvalid*/ Column c_2_0, final @NonNull /*@NonInvalid*/ String ct_2, final @NonNull /*@NonInvalid*/ PrimitiveToName p2n_2) {
         // predicates
@@ -2080,24 +1922,18 @@
     
     /**
      * 
-     * map attributeColumnsMR_2_1 in ManualUML2RDBMS) {
+     * map attributeColumnsMR_2_1 in ManualUML2RDBMS {
      * middle (p2n_2_1 : uml2rdbms::PrimitiveToName[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (ct_2_1 : String[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * p2n_2_1 = ct_2_1;
+     * p2n_2_1.typeName := ct_2_1;
      * }
      * 
-     * }
      */
     protected boolean attributeColumnsMR_2_1(final @NonNull /*@NonInvalid*/ String ct_2_1, final @NonNull /*@NonInvalid*/ PrimitiveToName p2n_2_1) {
         // predicates
@@ -2110,25 +1946,19 @@
     
     /**
      * 
-     * map attributeColumnsMR_3 in ManualUML2RDBMS) {
+     * map attributeColumnsMR_3 in ManualUML2RDBMS {
      * middle (a2c_3 : uml2rdbms::AttributeToColumn[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * rdbms (c_3 : rdbms::Column[1];
-     *  |
-     * )
+     *  |)
+     * { |}
+     * where ( |)
      * { |
-     * }
-     * where ( |
-     * )
-     * { |
-     * c_3 = a2c_3.name;
-     * c_3 = a2c_3.kind;
+     * c_3.name := a2c_3.name;
+     * c_3.kind := a2c_3.kind;
      * }
      * 
-     * }
      */
     protected boolean attributeColumnsMR_3(final @NonNull /*@NonInvalid*/ AttributeToColumn a2c_3, final @NonNull /*@NonInvalid*/ Column c_3_0) {
         // predicates
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as.java
index ff56d78..2c542cb 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as.java
@@ -142,24 +142,18 @@
     
     /**
      * 
-     * map mClassCS2Class_LM in classescs2as) {
+     * map mClassCS2Class_LM in classescs2as {
      * leftCS (classCS : classescs::ClassCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * middle ( |
-     * )
+     *  |)
+     * { |}
+     * middle ( |)
      * {realize c2c : classescstraces::ClassCS2Class[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * c2c = classCS;
+     * c2c.classCS := classCS;
      * }
      * 
-     * }
      */
     protected boolean mClassCS2Class_LM(final @NonNull /*@NonInvalid*/ ClassCS classCS) {
         // predicates
@@ -176,24 +170,18 @@
     
     /**
      * 
-     * map mRootCS2Root_LM in classescs2as) {
+     * map mRootCS2Root_LM in classescs2as {
      * leftCS (rootCS : classescs::RootCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * middle ( |
-     * )
+     *  |)
+     * { |}
+     * middle ( |)
      * {realize r2r : classescstraces::RootCS2Root[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * r2r = rootCS;
+     * r2r.rootCS := rootCS;
      * }
      * 
-     * }
      */
     protected boolean mRootCS2Root_LM(final @NonNull /*@NonInvalid*/ RootCS rootCS) {
         // predicates
@@ -210,24 +198,18 @@
     
     /**
      * 
-     * map mPackageCS2Package_LM in classescs2as) {
+     * map mPackageCS2Package_LM in classescs2as {
      * leftCS (packageCS : classescs::PackageCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * middle ( |
-     * )
+     *  |)
+     * { |}
+     * middle ( |)
      * {realize p2p : classescstraces::PackageCS2Package[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * p2p = packageCS;
+     * p2p.packageCS := packageCS;
      * }
      * 
-     * }
      */
     protected boolean mPackageCS2Package_LM(final @NonNull /*@NonInvalid*/ PackageCS packageCS) {
         // predicates
@@ -244,24 +226,18 @@
     
     /**
      * 
-     * map mClassCS2Class_MR in classescs2as) {
+     * map mClassCS2Class_MR in classescs2as {
      * middle (c2c : classescstraces::ClassCS2Class[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize class : classes::Class[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * c2c = class;
+     * c2c.class := class;
      * }
      * 
-     * }
      */
     protected boolean mClassCS2Class_MR(final @NonNull /*@NonInvalid*/ ClassCS2Class c2c) {
         // predicates
@@ -277,24 +253,18 @@
     
     /**
      * 
-     * map mRootCS2Root_MR in classescs2as) {
+     * map mRootCS2Root_MR in classescs2as {
      * middle (r2r : classescstraces::RootCS2Root[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize root : classes::Root[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * r2r = root;
+     * r2r.root := root;
      * }
      * 
-     * }
      */
     protected boolean mRootCS2Root_MR(final @NonNull /*@NonInvalid*/ RootCS2Root r2r) {
         // predicates
@@ -310,24 +280,18 @@
     
     /**
      * 
-     * map mPackageCS2Package_MR in classescs2as) {
+     * map mPackageCS2Package_MR in classescs2as {
      * middle (p2p : classescstraces::PackageCS2Package[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize package : classes::Package[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * p2p = package;
+     * p2p.package := package;
      * }
      * 
-     * }
      */
     protected boolean mPackageCS2Package_MR(final @NonNull /*@NonInvalid*/ PackageCS2Package p2p) {
         // predicates
@@ -343,24 +307,19 @@
     
     /**
      * 
-     * map uClass_name in classescs2as) {
+     * map uClass_name in classescs2as {
      * rightAS (class : classes::Class[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * leftCS (classCS : classescs::ClassCS[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * where ( |
      * classCS.ClassCS2Class.class = class)
      * { |
-     * class = classCS.name;
+     * class.name := classCS.name;
      * }
      * 
-     * }
      */
     protected boolean uClass_name(final @NonNull /*@NonInvalid*/ classes.Class symbol_0, final @NonNull /*@NonInvalid*/ ClassCS classCS_0) {
         // predicates
@@ -380,25 +339,20 @@
     
     /**
      * 
-     * map uRoot_ownedPackages in classescs2as) {
+     * map uRoot_ownedPackages in classescs2as {
      * rightAS (root : classes::Root[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * leftCS (rootCS : classescs::RootCS[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * where ( |
      * rootCS.RootCS2Root.root =
      *   root)
      * { |
-     * root = rootCS.ownedPackages.PackageCS2Package.package->asOrderedSet();
+     * root.ownedPackages := rootCS.ownedPackages.PackageCS2Package.package->asOrderedSet();
      * }
      * 
-     * }
      */
     protected boolean uRoot_ownedPackages(final @NonNull /*@NonInvalid*/ Root root, final @NonNull /*@NonInvalid*/ RootCS rootCS_0) {
         // predicates
@@ -462,24 +416,19 @@
     
     /**
      * 
-     * map uPackage_name in classescs2as) {
+     * map uPackage_name in classescs2as {
      * rightAS (package : classes::Package[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * leftCS (packageCS : classescs::PackageCS[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * where ( |
      * packageCS.PackageCS2Package.package = package)
      * { |
-     * package = packageCS.name;
+     * package.name := packageCS.name;
      * }
      * 
-     * }
      */
     protected boolean uPackage_name(final @NonNull /*@NonInvalid*/ Package symbol_1, final @NonNull /*@NonInvalid*/ PackageCS packageCS_0) {
         // predicates
@@ -499,25 +448,20 @@
     
     /**
      * 
-     * map uPackage_ownedClasses in classescs2as) {
+     * map uPackage_ownedClasses in classescs2as {
      * rightAS (package : classes::Package[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * leftCS (packageCS : classescs::PackageCS[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * where ( |
      * packageCS.PackageCS2Package.package =
      *   package)
      * { |
-     * package = packageCS.ownedClasses.ClassCS2Class.class->asOrderedSet();
+     * package.ownedClasses := packageCS.ownedClasses.ClassCS2Class.class->asOrderedSet();
      * }
      * 
-     * }
      */
     protected boolean uPackage_ownedClasses(final @NonNull /*@NonInvalid*/ Package symbol_2, final @NonNull /*@NonInvalid*/ PackageCS packageCS_1) {
         // predicates
@@ -581,12 +525,10 @@
     
     /**
      * 
-     * map __root__ in classescs2as) {
+     * map __root__ in classescs2as {
      * 
-     *   where ( |
-     * )
-     * { |
-     * }
+     *   where ( |)
+     * { |}
      * for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances()
      *    {
      * map mPackageCS2Package_LM {
@@ -654,7 +596,6 @@
      * root := root;
      * rootCS := rootCS;
      * }}}
-     * }
      */
     protected boolean __root__() {
         // predicates
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as_Bug459225.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as_Bug459225.java
index f06541c..8766cb6 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as_Bug459225.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as_Bug459225.java
@@ -164,29 +164,23 @@
     
     /**
      * 
-     * map createPackage in classescs2as_Bug459225) {
+     * map createPackage in classescs2as_Bug459225 {
      * 
      *   leftCS (packageCS : classescs::PackageCS[1];
-     *  |
-     * )
-     * { |
-     * }
-     * rightAS ( |
-     * )
+     *  |)
+     * { |}
+     * rightAS ( |)
      * {realize package : classes::Package[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * package = if
+     * package.name := if
      *     packageCS.hasName()
      *   then packageCS.computeName()
      *   else 'unnamed'
      *   endif;
      * }
      * 
-     * }
      */
     protected boolean createPackage(final @NonNull /*@NonInvalid*/ PackageCS packageCS) {
         // predicates
@@ -223,18 +217,15 @@
     
     /**
      * 
-     * map __root__ in classescs2as_Bug459225) {
+     * map __root__ in classescs2as_Bug459225 {
      * 
-     *   where ( |
-     * )
-     * { |
-     * }
+     *   where ( |)
+     * { |}
      * for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances()
      *    {
      * map createPackage {
      * packageCS := packageCS;
      * }}
-     * }
      */
     protected boolean __root__() {
         // predicates
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/hsv2hls.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/hsv2hls.java
index 995ca78..6d16892 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/hsv2hls.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/hsv2hls.java
@@ -109,18 +109,15 @@
     
     /**
      * 
-     * map __root__ in hsv2hls) {
+     * map __root__ in hsv2hls {
      * 
-     *   where ( |
-     * )
-     * { |
-     * }
+     *   where ( |)
+     * { |}
      * for hsvRoot : HSVTree::HSVNode in hsv.objectsOfKind(HSVTree::HSVNode)
      *    {
      * map HSV2MiddleRoot {
      * hsvRoot := hsvRoot;
      * }}
-     * }
      */
     protected boolean __root__() {
         // predicates
@@ -144,23 +141,19 @@
     
     /**
      * 
-     * map HSV2MiddleRoot in hsv2hls) {
+     * map HSV2MiddleRoot in hsv2hls {
      * hsv (hsvRoot : HSVTree::HSVNode[1];
-     *  |
-     * )
-     * { |
-     * }
-     * middle ( |
-     * )
+     *  |)
+     * { |}
+     * middle ( |)
      * {realize middleRoot : HSV2HLS::HSVNode2HLSNode[1];
-     *  |
-     * }
+     *  |}
      * where ( |
      * hsvRoot.parent =
      *   null)
      * { |
-     * middleRoot = hsvRoot;
-     * middleRoot = hsvRoot.name;
+     * middleRoot.hsv := hsvRoot;
+     * middleRoot.name := hsvRoot.name;
      * }
      * for hsvChild : HSVTree::HSVNode in hsvRoot.children {
      * 
@@ -171,7 +164,6 @@
      *   map Middle2HLSRoot {
      * middleNode := middleRoot;
      * }
-     * }
      */
     protected boolean HSV2MiddleRoot(final @NonNull /*@NonInvalid*/ HSVNode hsvRoot) {
         // predicates
@@ -204,25 +196,20 @@
     
     /**
      * 
-     * map HSV2MiddleRecursion in hsv2hls) {
+     * map HSV2MiddleRecursion in hsv2hls {
      * 
      *   hsv (hsvNode : HSVTree::HSVNode[1];
-     *  |
-     * )
-     * { |
-     * }
+     *  |)
+     * { |}
      * middle (middleParent : HSV2HLS::HSVNode2HLSNode[1];
-     *  |
-     * )
+     *  |)
      * {realize middleNode : HSV2HLS::HSVNode2HLSNode[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * middleNode = middleParent;
-     * middleNode = hsvNode;
-     * middleNode = hsvNode.name;
+     * middleNode.parent := middleParent;
+     * middleNode.hsv := hsvNode;
+     * middleNode.name := hsvNode.name;
      * }
      * for hsvChild : HSVTree::HSVNode in hsvNode.children {
      * 
@@ -230,7 +217,6 @@
      * hsvNode := hsvChild;
      * middleParent := middleNode;
      * }}
-     * }
      */
     protected boolean HSV2MiddleRecursion(final @NonNull /*@NonInvalid*/ HSVNode hsvNode, final @NonNull /*@NonInvalid*/ HSVNode2HLSNode middleParent) {
         // predicates
@@ -258,31 +244,25 @@
     
     /**
      * 
-     * map Middle2HLSRoot in hsv2hls) {
+     * map Middle2HLSRoot in hsv2hls {
      * 
      *   middle (middleNode : HSV2HLS::HSVNode2HLSNode[1];
-     *  |
-     * )
-     * { |
-     * }
-     * hls ( |
-     * )
+     *  |)
+     * { |}
+     * hls ( |)
      * {realize hlsNode : HLSTree::HLSNode[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * hlsNode = null;
-     * middleNode = hlsNode;
-     * hlsNode = middleNode.name;
+     * hlsNode.parent := null;
+     * middleNode.hls := hlsNode;
+     * hlsNode.name := middleNode.name;
      * }
      * for middleChild : HSV2HLS::HSVNode2HLSNode in middleNode.children {
      * 
      *     map Middle2HLSRecursion {
      * middleNode := middleChild;
      * }}
-     * }
      */
     protected boolean Middle2HLSRoot(final @NonNull /*@NonInvalid*/ HSVNode2HLSNode middleNode) {
         // predicates
@@ -310,31 +290,25 @@
     
     /**
      * 
-     * map Middle2HLSRecursion in hsv2hls) {
+     * map Middle2HLSRecursion in hsv2hls {
      * 
      *   middle (middleNode : HSV2HLS::HSVNode2HLSNode[1];
-     *  |
-     * )
-     * { |
-     * }
-     * hls ( |
-     * )
+     *  |)
+     * { |}
+     * hls ( |)
      * {realize hlsNode : HLSTree::HLSNode[1];
-     *  |
-     * }
-     * where ( |
-     * )
+     *  |}
+     * where ( |)
      * { |
-     * hlsNode = middleNode.parent.hls;
-     * middleNode = hlsNode;
-     * hlsNode = middleNode.name;
+     * hlsNode.parent := middleNode.parent.hls;
+     * middleNode.hls := hlsNode;
+     * hlsNode.name := middleNode.name;
      * }
      * for middleChild : HSV2HLS::HSVNode2HLSNode in middleNode.children {
      * 
      *     map Middle2HLSRecursion {
      * middleNode := middleChild;
      * }}
-     * }
      */
     protected boolean Middle2HLSRecursion(final @NonNull /*@NonInvalid*/ HSVNode2HLSNode middleNode_0) {
         // predicates