diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..50328437753245c6bebf0a183ce0f96ec127f875
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,203 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation
+   distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+    i) changes to the Program, and
+   ii) additions to the Program;
+
+   where such changes and/or additions to the Program originate from and are
+   distributed by that particular Contributor. A Contribution 'originates'
+   from a Contributor if it was added to the Program by such Contributor
+   itself or anyone acting on such Contributor's behalf. Contributions do not
+   include additions to the Program which: (i) are separate modules of
+   software distributed in conjunction with the Program under their own
+   license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+  a) Subject to the terms of this Agreement, each Contributor hereby grants
+     Recipient a non-exclusive, worldwide, royalty-free copyright license to
+     reproduce, prepare derivative works of, publicly display, publicly
+     perform, distribute and sublicense the Contribution of such Contributor,
+     if any, and such derivative works, in source code and object code form.
+  b) Subject to the terms of this Agreement, each Contributor hereby grants
+     Recipient a non-exclusive, worldwide, royalty-free patent license under
+     Licensed Patents to make, use, sell, offer to sell, import and otherwise
+     transfer the Contribution of such Contributor, if any, in source code and
+     object code form. This patent license shall apply to the combination of
+     the Contribution and the Program if, at the time the Contribution is
+     added by the Contributor, such addition of the Contribution causes such
+     combination to be covered by the Licensed Patents. The patent license
+     shall not apply to any other combinations which include the Contribution.
+     No hardware per se is licensed hereunder.
+  c) Recipient understands that although each Contributor grants the licenses
+     to its Contributions set forth herein, no assurances are provided by any
+     Contributor that the Program does not infringe the patent or other
+     intellectual property rights of any other entity. Each Contributor
+     disclaims any liability to Recipient for claims brought by any other
+     entity based on infringement of intellectual property rights or
+     otherwise. As a condition to exercising the rights and licenses granted
+     hereunder, each Recipient hereby assumes sole responsibility to secure
+     any other intellectual property rights needed, if any. For example, if a
+     third party patent license is required to allow Recipient to distribute
+     the Program, it is Recipient's responsibility to acquire that license
+     before distributing the Program.
+  d) Each Contributor represents that to its knowledge it has sufficient
+     copyright rights in its Contribution, if any, to grant the copyright
+     license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under
+its own license agreement, provided that:
+
+  a) it complies with the terms and conditions of this Agreement; and
+  b) its license agreement:
+      i) effectively disclaims on behalf of all Contributors all warranties
+         and conditions, express and implied, including warranties or
+         conditions of title and non-infringement, and implied warranties or
+         conditions of merchantability and fitness for a particular purpose;
+     ii) effectively excludes on behalf of all Contributors all liability for
+         damages, including direct, indirect, special, incidental and
+         consequential damages, such as lost profits;
+    iii) states that any provisions which differ from this Agreement are
+         offered by that Contributor alone and not by any other party; and
+     iv) states that source code for the Program is available from such
+         Contributor, and informs licensees how to obtain it in a reasonable
+         manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+  a) it must be made available under this Agreement; and
+  b) a copy of this Agreement must be included with each copy of the Program.
+     Contributors may not remove or alter any copyright notices contained
+     within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution,
+if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore,
+if a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits and
+other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such Commercial
+Contributor in connection with its distribution of the Program in a commercial
+product offering. The obligations in this section do not apply to any claims
+or Losses relating to any actual or alleged intellectual property
+infringement. In order to qualify, an Indemnified Contributor must:
+a) promptly notify the Commercial Contributor in writing of such claim, and
+b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement
+negotiations. The Indemnified Contributor may participate in any such claim at
+its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If
+that Commercial Contributor then makes performance claims, or offers
+warranties related to Product X, those performance claims and warranties are
+such Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using
+and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the
+risks and costs of program errors, compliance with applicable laws, damage to
+or loss of data, programs or equipment, and unavailability or interruption of
+operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION
+LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of the
+remainder of the terms of this Agreement, and without further action by the
+parties hereto, such provision shall be reformed to the minimum extent
+necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+(excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted
+under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue
+and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to
+time. No one other than the Agreement Steward has the right to modify this
+Agreement. The Eclipse Foundation is the initial Agreement Steward. The
+Eclipse Foundation may assign the responsibility to serve as the Agreement
+Steward to a suitable separate entity. Each new version of the Agreement will
+be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version of the
+Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly
+stated in Sections 2(a) and 2(b) above, Recipient receives no rights or
+licenses to the intellectual property of any Contributor under this Agreement,
+whether expressly, by implication, estoppel or otherwise. All rights in the
+Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
\ No newline at end of file
diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/Data.xtext b/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/Data.xtext
index ef5b52061aacaf38bba1ed7d8a623a6127aec239..48cfb0b756dc14266cd87a4d5cf87ede0393312e 100644
--- a/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/Data.xtext
+++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/Data.xtext
@@ -48,18 +48,22 @@ EString returns ecore::EString:
 DataInstanceUse returns DataInstanceUse:
 	dataInstance=[DataInstance|EString]
 	('(' argument+=ParameterBinding ( "," argument+=ParameterBinding)* ')' )?
-	('.' reduction+=[Member|EString])*
+	('.' reduction+=MemberReference)*
 	//TODO: if for some reason the data instance use does have a name
 	//it will cause problems... same applies for other scenarios 
 	//TODO: create a more elegant way to handle that gracefully)
 	//(name=EString)?
 	;
 
+MemberReference returns MemberReference:
+	member=[Member|EString]
+;
+
 
 FormalParameterUse returns FormalParameterUse:
 	parameter=[FormalParameter|EString]
 	('(' argument+=ParameterBinding ( "," argument+=ParameterBinding)* ')' )?
-	( "." reduction+=[Member|EString])*
+	( "." reduction+=MemberReference)*
 	;
 
 FunctionCall returns FunctionCall:
@@ -67,7 +71,7 @@ FunctionCall returns FunctionCall:
 	'('
 	(argument+=ParameterBinding ( "," argument+=ParameterBinding)*)?
 	')'
-	('.' reduction+=[Member|EString])*
+	('.' reduction+=MemberReference)*
 	;
 
 VariableUse returns VariableUse:
@@ -75,7 +79,7 @@ VariableUse returns VariableUse:
 	'->'
 	variable=[Variable|EString]
 	('(' argument+=ParameterBinding ( "," argument+=ParameterBinding)* ')' )?
-	("." reduction+=[Member|EString])*
+	("." reduction+=MemberReference)*
 	;
 
 TimeLabelUse returns TimeLabelUse:
@@ -518,7 +522,7 @@ Variable returns Variable:
 Interaction returns Message:
 	sourceGate=[GateReference|EStringDot]
 	('sends' | isTrigger=Trigger) 
-	argument+=DataUse
+	argument=DataUse
 	'to' 
 	target+=Target ( "," target+=Target)* 
 	(
@@ -540,7 +544,7 @@ Trigger returns ecore::EBoolean :
 
 Target returns Target:
 	targetGate=[GateReference|EStringDot]
-	('where it is' 'assigned' 'to' variable+=[Variable|EString])?
+	('where it is' 'assigned' 'to' variable=[Variable|EString])?
    	(
     'with'
     '{'
@@ -600,11 +604,17 @@ Behaviour returns Behaviour:
 ;
 
 Block returns Block:
-	('[' guard=DataUse ']')?
+	('[' guard+=LocalExpression ']')?
 	'{'
 		behaviour+=Behaviour ( behaviour+=Behaviour)* 
 	'}'
 	;
+
+LocalExpression returns LocalExpression:
+	 expression=DataUse
+;
+
+
 CompoundBehaviour returns CompoundBehaviour:
 	block=Block
 ;
@@ -634,7 +644,7 @@ TimerStart returns TimerStart:
 
 BoundedLoopBehaviour returns BoundedLoopBehaviour:
 	'repeat'
-	numIteration=DataUse
+	numIteration+=LocalExpression
 	'times'
 //	'from' startValue=DataInstanceSpecification
 //	'to' endValue=DataInstanceSpecification
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.graphical.viewpoint/META-INF/MANIFEST.MF
index 1004acadacce8ca2ebd5d28b986664e566bfbce4..eb87a42fa09d547d4ced60ce3ebcd791dde2c8b5 100644
--- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/META-INF/MANIFEST.MF
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/META-INF/MANIFEST.MF
@@ -22,6 +22,7 @@ Require-Bundle: org.eclipse.ui,
  org.etsi.mts.tdl.model,
  org.eclipse.sirius.diagram.sequence.ui,
  org.eclipse.sirius.ext.base,
- org.eclipse.ui.ide
+ org.eclipse.ui.ide,
+ org.eclipse.sirius.diagram.sequence
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/description/TDL.odesign b/plugins/org.etsi.mts.tdl.graphical.viewpoint/description/TDL.odesign
index 11b01aa163a39f5b277536c4e8ccce006642067e..198d6da9a0cf006b91baea424401e7264471de7c 100644
--- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/description/TDL.odesign
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/description/TDL.odesign
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/sequence/description/2.0.0" xmlns:description_2="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" name="TDL" version="10.1.3.201511131800">
+<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/sequence/description/2.0.0" xmlns:description_2="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/sequence/description/tool/2.0.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" xmlns:tool_2="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" name="TDL" version="12.0.0.2017041100">
   <ownedViewpoints name="org.etsi.mts.tdl" label="TDL">
     <ownedRepresentations xsi:type="description_1:SequenceDiagramDescription" name="TestDescriptionDiagram" label="TDL Behavior" domainClass="tdl.TestDescription" enablePopupBars="true" endsOrdering="[getOccurrences()->select(e|eventEnds->includes(e))/]" instanceRolesOrdering="[testConfiguration.connection.endPoint->sortedBy(ref|ref.component.name + '.' + ref.gate.name)/]">
-      <metamodel href="../tdl.ecore#/"/>
+      <metamodel href="../../org.etsi.mts.tdl.model/model/tdl.ecore#/"/>
       <defaultLayer name="Default">
         <nodeMappings xsi:type="description_1:InstanceRoleMapping" name="gateReference" semanticCandidatesExpression="[testConfiguration.componentInstance->collect(c|c.type.gateInstance->select(g|self.testConfiguration.connection.endPoint->exists(ref|ref.component = c and ref.gate = g))->collect(g|self.testConfiguration.connection.endPoint->any(ref|ref.component = c and ref.gate = g)))/]" domainClass="tdl.GateReference">
           <borderedNodeMappings xsi:type="description_1:ExecutionMapping" name="lifelineExecution" semanticCandidatesExpression="[self/]" domainClass="tdl.GateReference" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[self/]">
@@ -39,7 +39,7 @@
             <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </nodeMappings>
-        <edgeMappings xsi:type="description_1:BasicMessageMapping" name="interaction" sourceMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@nodeMappings[name='gateReference']/@borderedNodeMappings[name='lifelineExecution']" targetMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@nodeMappings[name='gateReference']/@borderedNodeMappings[name='lifelineExecution']" targetFinderExpression="[diagram.diagramElements.target->select(e|e.oclIsKindOf(tdl::GateReference))->asSet().oclAsType(tdl::GateReference)->any(ref|ref.component = self.targetGate.component and ref.gate = self.targetGate.gate)/]" sourceFinderExpression="[diagram.diagramElements.target->select(e|e.oclIsKindOf(tdl::GateReference))->asSet().oclAsType(tdl::GateReference)->any(ref|ref.component = self.owner().oclAsType(tdl::Interaction).sourceGate.component and ref.gate = self.owner().oclAsType(tdl::Interaction).sourceGate.gate)/]" targetExpression="[self.owner()/]" domainClass="tdl.Target" useDomainElement="true" sendingEndFinderExpression="[self.owner()/]" receivingEndFinderExpression="[self.owner()/]">
+        <edgeMappings xsi:type="description_1:BasicMessageMapping" name="interaction" semanticCandidatesExpression="[allBehaviours()/]" semanticElements="[self.owner()/]" sourceMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@nodeMappings[name='gateReference']/@borderedNodeMappings[name='lifelineExecution']" targetMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@nodeMappings[name='gateReference']/@borderedNodeMappings[name='lifelineExecution']" targetFinderExpression="[diagram.diagramElements.target->select(e|e.oclIsKindOf(tdl::GateReference))->asSet().oclAsType(tdl::GateReference)->any(ref|ref.component = self.targetGate.component and ref.gate = self.targetGate.gate)/]" sourceFinderExpression="[diagram.diagramElements.target->select(e|e.oclIsKindOf(tdl::GateReference))->asSet().oclAsType(tdl::GateReference)->any(ref|ref.component = self.owner().oclAsType(tdl::Interaction).sourceGate.component and ref.gate = self.owner().oclAsType(tdl::Interaction).sourceGate.gate)/]" targetExpression="[self.owner()/]" domainClass="tdl.Target" useDomainElement="true" sendingEndFinderExpression="[self.owner()/]" receivingEndFinderExpression="[self.owner().getEnd()/]">
           <style sizeComputationExpression="2">
             <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
             <centerLabelStyleDescription showIcon="false" labelExpression="[ serialise(self.owner().oclAsType(tdl::Interaction).argument) /]">
@@ -57,7 +57,7 @@
               </endLabelStyleDescription>
             </style>
           </conditionnalStyles>
-          <conditionnalStyles predicateExpression="[self.owner().oclAsType(tdl::Interaction).target->asSequence()->indexOf(self) > 1 and self.owner().oclAsType(tdl::Interaction).isTrigger/]">
+          <conditionnalStyles predicateExpression="[self.owner().oclIsKindOf(tdl::Message) and self.owner().oclAsType(tdl::Message).target->asSequence()->indexOf(self) > 1 and self.owner().oclAsType(tdl::Message).isTrigger/]">
             <style targetArrow="NoDecoration" sizeComputationExpression="2">
               <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <endLabelStyleDescription showIcon="false" labelExpression="[ if (self.variable.oclIsUndefined()) then '' else self.variable.name endif /]">
@@ -65,7 +65,7 @@
               </endLabelStyleDescription>
             </style>
           </conditionnalStyles>
-          <conditionnalStyles predicateExpression="[self.owner().oclAsType(tdl::Interaction).isTrigger/]">
+          <conditionnalStyles predicateExpression="[self.owner().oclIsKindOf(tdl::Message) and self.owner().oclAsType(tdl::Message).isTrigger/]">
             <style targetArrow="NoDecoration" sizeComputationExpression="2">
               <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <centerLabelStyleDescription showIcon="false" labelExpression="[ serialise(self.owner().oclAsType(tdl::Interaction).argument) /]">
@@ -93,7 +93,7 @@
             </centerLabelStyleDescription>
           </style>
         </edgeMappings>
-        <containerMappings xsi:type="description_1:CombinedFragmentMapping" name="combinedBehaviour" preconditionExpression="[oclIsKindOf(CombinedBehaviour) or oclIsKindOf(ExceptionalBehaviour) or oclIsKindOf(PeriodicBehaviour)/]" domainClass="tdl.Behaviour" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[tdl::GateReference.allInstances()/]">
+        <containerMappings xsi:type="description_1:CombinedFragmentMapping" name="combinedBehaviour" preconditionExpression="[oclIsKindOf(CombinedBehaviour) or oclIsKindOf(ExceptionalBehaviour) or oclIsKindOf(PeriodicBehaviour)/]" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.Behaviour" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[getTestConfiguration().connection.endPoint/]">
           <subContainerMappings name="boundedLoopBehaviour" semanticCandidatesExpression="[self/]" domainClass="tdl.BoundedLoopBehaviour" childrenPresentation="List">
             <subNodeMappings name="boundedLoop.keyword" semanticCandidatesExpression="[self/]" domainClass="tdl.BoundedLoopBehaviour">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="iteration: " labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
@@ -104,7 +104,7 @@
               </style>
             </subNodeMappings>
             <subNodeMappings name="boundedLoop.iteration" semanticCandidatesExpression="[self/]" domainClass="tdl.BoundedLoopBehaviour">
-              <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[serialise(self.numIteration)/]" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
+              <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[if (not self.numIteration->isEmpty()) then '[' + serialise(self.numIteration.expression->any(true))+  ']' else '' endif/]" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
@@ -127,7 +127,7 @@
               </style>
             </subNodeMappings>
             <subNodeMappings name="periodicBehaviour.iteration" semanticCandidatesExpression="[self/]" domainClass="tdl.PeriodicBehaviour">
-              <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[serialise(self.period)/]" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
+              <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[if (not self.period->isEmpty()) then '[' + serialise(self.period->any(true))+  ']' else '' endif/]" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
@@ -141,7 +141,7 @@
             </style>
           </subContainerMappings>
           <subContainerMappings xsi:type="description_1:OperandMapping" name="block" semanticCandidatesExpression="[getBlocks()/]" domainClass="tdl.Block" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]">
-            <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="[if (not self.guard.oclIsUndefined()) then '[' + serialise(self.guard)+  ']' else '' endif/]" labelAlignment="LEFT">
+            <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="[if (not self.guard->isEmpty()) then '[' + serialise(self.guard.expression->any(true))+  ']' else '' endif/]" labelAlignment="LEFT">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
@@ -245,7 +245,7 @@
             </style>
           </conditionnalStyles>
         </containerMappings>
-        <containerMappings xsi:type="description_1:InteractionUseMapping" name="globalAction" preconditionExpression="[not oclIsKindOf(Assertion) and not oclIsKindOf(VerdictAssignment) and not oclIsKindOf(TimerOperation) and not oclIsKindOf(TimeOperation) and not oclIsKindOf(ActionBehaviour) and not oclIsKindOf(TestDescriptionReference) and not oclIsKindOf(Interaction)/]" domainClass="tdl.AtomicBehaviour" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[tdl::GateReference.allInstances()/]">
+        <containerMappings xsi:type="description_1:InteractionUseMapping" name="globalAction" preconditionExpression="[not oclIsKindOf(Assertion) and not oclIsKindOf(VerdictAssignment) and not oclIsKindOf(TimerOperation) and not oclIsKindOf(TimeOperation) and not oclIsKindOf(ActionBehaviour) and not oclIsKindOf(TestDescriptionReference) and not oclIsKindOf(Interaction)/]" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.AtomicBehaviour" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[getTestConfiguration().connection.endPoint/]">
           <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="[(if (self.oclIsKindOf(ActionReference)) then  'Action ' + self.oclAsType(ActionReference).action.name else if (self.oclIsKindOf(InlineAction))  then 'Inline Action ' + self.oclAsType(InlineAction)._body else if (self.oclIsKindOf(VerdictAssignment))  then 'Verdict ' + serialise(self.oclAsType(VerdictAssignment).verdict) else if (self.oclIsKindOf(TestDescriptionReference))  then 'Test Description ' + serialise(self.oclAsType(TestDescriptionReference)) else if (self.oclIsKindOf(Assertion)) then 'Assert '  + serialise(self.oclAsType(Assertion)) else self.name endif endif endif endif endif)/]">
             <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
             <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -271,7 +271,7 @@
             </style>
           </conditionnalStyles>
         </containerMappings>
-        <containerMappings xsi:type="description_1:InteractionUseMapping" name="assertion" domainClass="tdl.Assertion" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[tdl::GateReference.allInstances()/]">
+        <containerMappings xsi:type="description_1:InteractionUseMapping" name="assertion" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.Assertion" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[getTestConfiguration().connection.endPoint/]">
           <subNodeMappings name="assertion.config" semanticCandidatesExpression="[self/]" domainClass="tdl.Assertion"/>
           <subNodeMappings name="assertion.condition" semanticCandidatesExpression="[self/]" domainClass="tdl.Assertion">
             <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="['condition ' + serialise(self.condition)/]" labelPosition="node" resizeKind="NSEW">
@@ -293,14 +293,14 @@
             <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
           </style>
         </containerMappings>
-        <containerMappings xsi:type="description_1:InteractionUseMapping" name="verdictAssignment" domainClass="tdl.VerdictAssignment" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[tdl::GateReference.allInstances()/]">
+        <containerMappings xsi:type="description_1:InteractionUseMapping" name="verdictAssignment" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.VerdictAssignment" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[getTestConfiguration().connection.endPoint/]">
           <subNodeMappings name="verdictAssignment.config" semanticCandidatesExpression="[self/]" domainClass="tdl.VerdictAssignment"/>
           <style xsi:type="style:WorkspaceImageDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="[serialise(self.verdict)/]" workspacePath="org.etsi.mts.tdl.graphical.viewpoint/images/Verdict.svg">
             <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
             <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
           </style>
         </containerMappings>
-        <containerMappings xsi:type="description_1:InteractionUseMapping" name="timerOperation" domainClass="tdl.TimerOperation" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[tdl::GateReference.allInstances()->select(ref|ref.component = self.componentInstance)/]">
+        <containerMappings xsi:type="description_1:InteractionUseMapping" name="timerOperation" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.TimerOperation" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[getTestConfiguration().connection.endPoint->select(ref|ref.component = self.componentInstance)/]">
           <subNodeMappings name="timerOperation.config" semanticCandidatesExpression="[self/]" domainClass="tdl.TimerOperation"/>
           <conditionnalStyles predicateExpression="[oclIsTypeOf(TimerStart)/]">
             <style xsi:type="style:WorkspaceImageDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="[self.timer.name + '('+serialise(self.oclAsType(TimerStart).period)+')'/]" workspacePath="org.etsi.mts.tdl.graphical.viewpoint/images/TimerStart.svg">
@@ -321,10 +321,10 @@
             </style>
           </conditionnalStyles>
         </containerMappings>
-        <containerMappings xsi:type="description_1:InteractionUseMapping" name="assignment" domainClass="tdl.Assignment" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[tdl::GateReference.allInstances()->select(ref|ref.component = self.componentInstance)/]">
+        <containerMappings xsi:type="description_1:InteractionUseMapping" name="assignment" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.Assignment" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[getTestConfiguration().connection.endPoint->select(ref|ref.component = self.componentInstance)/]">
           <subNodeMappings name="assignment.config" semanticCandidatesExpression="[self/]" domainClass="tdl.Assignment"/>
           <subNodeMappings name="assignment.assignment" semanticCandidatesExpression="[self/]" domainClass="tdl.Assignment">
-            <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[self.variable.name + ' := ' + serialise(self.expression)/]" labelPosition="node" resizeKind="NSEW">
+            <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[self.variable.variable.name + ' := ' + serialise(self.expression)/]" labelPosition="node" resizeKind="NSEW">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/>
@@ -338,7 +338,7 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings xsi:type="description_1:InteractionUseMapping" name="actionReference" domainClass="tdl.ActionReference" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[if (not self.componentInstance.oclIsUndefined()) then tdl::GateReference.allInstances()->select(ref|ref.component = self.componentInstance) else tdl::GateReference.allInstances() endif/]">
+        <containerMappings xsi:type="description_1:InteractionUseMapping" name="actionReference" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.ActionReference" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[if (not self.componentInstance.oclIsUndefined()) then getTestConfiguration().connection.endPoint->select(ref|ref.component = self.componentInstance) else getTestConfiguration().connection.endPoint endif/]">
           <subNodeMappings name="actionReference.config" semanticCandidatesExpression="[self/]" domainClass="tdl.ActionReference"/>
           <subNodeMappings name="actionReference.action" semanticCandidatesExpression="[self/]" domainClass="tdl.ActionReference">
             <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[self.action.name/]" labelPosition="node" resizeKind="NSEW">
@@ -362,7 +362,7 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings xsi:type="description_1:InteractionUseMapping" name="inlineAction" domainClass="tdl.InlineAction" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[if (not self.componentInstance.oclIsUndefined()) then tdl::GateReference.allInstances()->select(ref|ref.component = self.componentInstance) else tdl::GateReference.allInstances() endif/]">
+        <containerMappings xsi:type="description_1:InteractionUseMapping" name="inlineAction" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.InlineAction" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[if (not self.componentInstance.oclIsUndefined()) then getTestConfiguration().connection.endPoint->select(ref|ref.component = self.componentInstance) else getTestConfiguration().connection.endPoint endif/]">
           <subNodeMappings name="inlineAction.config" semanticCandidatesExpression="[self/]" domainClass="tdl.InlineAction"/>
           <subNodeMappings name="inlineAction.Body" semanticCandidatesExpression="[self/]" domainClass="tdl.InlineAction">
             <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[self._body/]" labelPosition="node" resizeKind="NSEW">
@@ -379,7 +379,7 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings xsi:type="description_1:InteractionUseMapping" name="testDescriptionReference" domainClass="tdl.TestDescriptionReference" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[tdl::GateReference.allInstances()/]">
+        <containerMappings xsi:type="description_1:InteractionUseMapping" name="testDescriptionReference" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.TestDescriptionReference" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[getTestConfiguration().connection.endPoint/]">
           <subNodeMappings name="testDescriptionReference.config" semanticCandidatesExpression="[self/]" domainClass="tdl.TestDescriptionReference"/>
           <subNodeMappings name="testDescriptionReference.testDescription" semanticCandidatesExpression="[self/]" domainClass="tdl.TestDescriptionReference">
             <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[self.testDescription.name/]" labelPosition="node" resizeKind="NSEW">
@@ -410,7 +410,7 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings xsi:type="description_1:InteractionUseMapping" name="timeOperation" domainClass="tdl.TimeOperation" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[if (not self.componentInstance.oclIsUndefined()) then tdl::GateReference.allInstances()->select(ref|ref.component = self.componentInstance) else if (self.oclIsTypeOf(Quiescence) and not self.oclAsType(Quiescence).gateReference.oclIsUndefined()) then tdl::GateReference.allInstances()->select(ref|ref = self.oclAsType(Quiescence).gateReference) else tdl::GateReference.allInstances() endif endif/]">
+        <containerMappings xsi:type="description_1:InteractionUseMapping" name="timeOperation" semanticCandidatesExpression="[allBehaviours()/]" domainClass="tdl.TimeOperation" startingEndFinderExpression="[self/]" finishingEndFinderExpression="[getEnd()/]" coveredLifelinesExpression="[if (not self.componentInstance.oclIsUndefined()) then getTestConfiguration().connection.endPoint->select(ref|ref.component = self.componentInstance) else if (self.oclIsTypeOf(Quiescence) and not self.oclAsType(Quiescence).gateReference.oclIsUndefined()) then getTestConfiguration().connection.endPoint->select(ref|ref = self.oclAsType(Quiescence).gateReference) else getTestConfiguration().connection.endPoint endif endif/]">
           <subNodeMappings name="timeOperation.config" semanticCandidatesExpression="[self/]" domainClass="tdl.TimeOperation"/>
           <subNodeMappings name="timeOperation.period" semanticCandidatesExpression="[self/]" domainClass="tdl.TimeOperation">
             <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[serialise(self.period)/]" labelPosition="node" resizeKind="NSEW">
@@ -454,19 +454,376 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
+        <toolSections name="editBehaviour">
+          <ownedTools xsi:type="tool:ReorderTool" name="behaviourReorder" mappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@edgeMappings[name='interaction'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='actionReference'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='assertion'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='assignment'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='combinedBehaviour'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='globalAction'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='inlineAction'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='testDescriptionReference'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='timeOperation'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='timerOperation'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='verdictAssignment']">
+            <startingEndPredecessorBefore name="startingEndPredecessorBefore"/>
+            <startingEndPredecessorAfter name="startingEndPredecessorAfter"/>
+            <finishingEndPredecessorBefore name="finishingEndPredecessorBefore"/>
+            <finishingEndPredecessorAfter name="finishingEndPredecessorAfter"/>
+            <onEventMovedOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[reorderBehaviour(self, startingEndPredecessorAfter)/]"/>
+            </onEventMovedOperation>
+          </ownedTools>
+        </toolSections>
+        <toolSections name="createCombined" label="Combined Behaviours">
+          <ownedTools xsi:type="tool:CombinedFragmentCreationTool" name="createAlternativeBehaviour" label="Alternative" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='combinedBehaviour']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createAlternativeBehaviourAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="AlternativeBehaviour"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool:CombinedFragmentCreationTool" name="createBoundedLoopBehaviour" label="Bounded Loop" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='combinedBehaviour']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createBoundedLoopBehaviourAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="BoundedLoopBehaviour"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool:CombinedFragmentCreationTool" name="createConditionalBehaviour" label="Conditional" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='combinedBehaviour']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createConditionalBehaviourAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="ConditionalBehaviour"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool:CombinedFragmentCreationTool" name="createParallelBehaviour" label="Parallel" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='combinedBehaviour']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createParallelBehaviourAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="ParallelBehaviour"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool:CombinedFragmentCreationTool" name="createUnboundedLoopBehaviour" label="Unbounded Loop" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='combinedBehaviour']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createUnboundedLoopBehaviourAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="UnboundedLoopBehaviour"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool:OperandCreationTool" name="createBlock" label="Block" precondition="[oclIsKindOf(MultipleCombinedBehaviour)/]" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='combinedBehaviour']/@subContainerMappings[name='block']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createBlockAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="container" value="[variable/]"/>
+                  <parameters name="class" value="Block"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+          </ownedTools>
+        </toolSections>
+        <toolSections name="createAtomic" label="Atomic Behaviours">
+          <ownedTools xsi:type="tool:MessageCreationTool" name="createMessage" label="Message" edgeMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@edgeMappings[name='interaction']">
+            <sourceVariable name="sourceVariable"/>
+            <targetVariable name="targetVariable"/>
+            <sourceViewVariable name="sourceViewVariable"/>
+            <targetViewVariable name="targetViewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createMessageAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="source" value="[sourceVariable/]"/>
+                  <parameters name="target" value="[targetVariable/]"/>
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[sourceViewVariable/]"/>
+                  <parameters name="class" value="Message"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool:InteractionUseCreationTool" name="createBreak" label="Break" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='globalAction']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createBreakAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="Break"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool:InteractionUseCreationTool" name="createStop" label="Stop" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='globalAction']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createStopAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="Stop"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createVerdictAssignment" label="Verdict Assignment" candidatesExpression="[getVerdicts()/]">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createMessageAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[container/]"/>
+                  <parameters name="diagramElement" value="[containerView/]"/>
+                  <parameters name="element" value="[element/]"/>
+                  <parameters name="class" value="VerdictAssignment"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createTestDescriptionReference" label="Test Description Reference" candidatesExpression="[getTestDescriptions()/]">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createTestDescriptionReferenceAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[container/]"/>
+                  <parameters name="diagramElement" value="[containerView/]"/>
+                  <parameters name="element" value="[element/]"/>
+                  <parameters name="class" value="TestDescriptionReference"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createActionReference" label="Action Reference" candidatesExpression="[getActions()/]">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createActionReferenceAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[container/]"/>
+                  <parameters name="diagramElement" value="[containerView/]"/>
+                  <parameters name="element" value="[element/]"/>
+                  <parameters name="class" value="ActionReference"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool:InteractionUseCreationTool" name="createInlineAction" label="Inline Action" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='inlineAction']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createInlineAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="InlineAction"/>
+                  <parameters name="lifelines" value="[coveredLifelines/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+        </toolSections>
+        <toolSections name="createDataUse" label="Data Use">
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createDataInstanceUse" label="Data Instance" precondition="[oclIsKindOf(BoundedLoopBehaviour) or oclIsKindOf(PeriodicBehaviour) or oclIsKindOf(Block) or oclIsKindOf(Target) or oclIsKindOf(Interaction) or oclIsKindOf(Assertion) or oclIsKindOf(Assignment) or oclIsKindOf(TimerStart) or oclIsKindOf(TimeOperation) or oclIsKindOf(TimeConstraint)/]" candidatesExpression="[getDataInstances()/]">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createDataInstanceUseAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="target" value="[container/]"/>
+                  <parameters name="element" value="[element/]"/>
+                  <parameters name="class" value="DataInstanceUse"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createVariableUse" label="Variable" precondition="[oclIsKindOf(BoundedLoopBehaviour) or oclIsKindOf(PeriodicBehaviour) or oclIsKindOf(Block) or oclIsKindOf(Target) or oclIsKindOf(Interaction) or oclIsKindOf(Assertion) or oclIsKindOf(Assignment) or oclIsKindOf(TimerStart) or oclIsKindOf(TimeOperation) or oclIsKindOf(TimeConstraint)/]" candidatesExpression="[getVariables()/]">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createVariableUseAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="target" value="[container/]"/>
+                  <parameters name="element" value="[element/]"/>
+                  <parameters name="class" value="VariableUse"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createFunctionCall" label="Function Call" precondition="[oclIsKindOf(BoundedLoopBehaviour) or oclIsKindOf(PeriodicBehaviour) or oclIsKindOf(Block) or oclIsKindOf(Target) or oclIsKindOf(Interaction) or oclIsKindOf(Assertion) or oclIsKindOf(Assignment) or oclIsKindOf(TimerStart) or oclIsKindOf(TimeOperation) or oclIsKindOf(TimeConstraint)/]" candidatesExpression="[getFunctions()/]">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createFunctionCallAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="target" value="[container/]"/>
+                  <parameters name="element" value="[element/]"/>
+                  <parameters name="class" value="FunctionCall"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+        </toolSections>
+        <toolSections name="createTimeUse" label="Time">
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createTimerStart" label="Timer Start" candidatesExpression="[getTimers()/]">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createTimerStartAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[container/]"/>
+                  <parameters name="diagramElement" value="[containerView/]"/>
+                  <parameters name="element" value="[element/]"/>
+                  <parameters name="class" value="TimerStart"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createTimerStop" label="Timer Stop" candidatesExpression="[getTimers()/]">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createTimerStopAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[container/]"/>
+                  <parameters name="diagramElement" value="[containerView/]"/>
+                  <parameters name="element" value="[element/]"/>
+                  <parameters name="class" value="TimerStop"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool:InteractionUseCreationTool" name="createWait" label="Wait" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='timeOperation']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createWaitAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="Wait"/>
+                  <parameters name="lifelines" value="[coveredLifelines/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool:InteractionUseCreationTool" name="createQuiescence" label="Quiescence" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='TestDescriptionDiagram']/@defaultLayer/@containerMappings[name='timeOperation']">
+            <variable name="variable"/>
+            <viewVariable name="viewVariable"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createQuiescenceAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="startingEndPredecessor" value="[startingEndPredecessor/]"/>
+                  <parameters name="diagramElement" value="[viewVariable/]"/>
+                  <parameters name="class" value="Quiescence"/>
+                  <parameters name="lifelines" value="[coveredLifelines/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+            <startingEndPredecessor name="startingEndPredecessor"/>
+            <finishingEndPredecessor name="finishingEndPredecessor"/>
+            <coveredLifelines name="coveredLifelines"/>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:ToolDescription" name="createTimeLabel" label="Time Label" precondition="[oclIsKindOf(AtomicBehaviour)/]">
+            <element name="element"/>
+            <elementView name="elementView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createTimeLabelAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="element" value="[container/]"/>
+                  <parameters name="class" value="TimeLabel"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:ToolDescription" name="createTimeConstraint" label="Time Constraint" precondition="[oclIsKindOf(AtomicBehaviour)/]">
+            <element name="element"/>
+            <elementView name="elementView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:ExternalJavaAction" name="createTimeConstraintAction" id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+                  <parameters name="element" value="[container/]"/>
+                  <parameters name="class" value="TimeConstraint"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+        </toolSections>
       </defaultLayer>
     </ownedRepresentations>
     <ownedRepresentations xsi:type="description_2:DiagramDescription" name="GenericDiagram" label="Generic TDL" domainClass="tdl.Package" enablePopupBars="true">
-      <metamodel href="../tdl.ecore#/"/>
+      <metamodel href="../../org.etsi.mts.tdl.model/model/tdl.ecore#/"/>
       <layout xsi:type="description_2:CompositeLayout"/>
       <defaultLayer name="Default">
-        <nodeMappings name="comment" semanticCandidatesExpression="[nestedPackage.comment->union(packagedElement.comment)/]" domainClass="tdl.Comment">
-          <style xsi:type="style:WorkspaceImageDescription" showIcon="false" labelExpression="[_body/]" labelAlignment="LEFT" sizeComputationExpression="-1" labelPosition="node" resizeKind="NSEW" workspacePath="org.etsi.mts.tdl.graphical.viewpoint/images/Comment.svg">
+        <nodeMappings name="comment" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editCommentBody']" semanticCandidatesExpression="[nestedPackage.comment->union(packagedElement.comment)/]" domainClass="tdl.Comment">
+          <style xsi:type="style:WorkspaceImageDescription" showIcon="false" labelExpression="[_body/]" labelAlignment="LEFT" sizeComputationExpression="5" labelPosition="node" resizeKind="NSEW" workspacePath="org.etsi.mts.tdl.graphical.viewpoint/images/Comment.svg">
             <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
             <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
           </style>
         </nodeMappings>
-        <edgeMappings name="commentedElement" sourceMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@nodeMappings[name='comment']" targetMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='package']" targetFinderExpression="[commentedElement/]">
+        <edgeMappings name="commentedElement" sourceMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@nodeMappings[name='comment']" targetMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='action'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='annotationType'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='componentType'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='componentType']/@borderedNodeMappings[name='gateInstance'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='dataElementMapping'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='dataResourceMapping'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='function'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='gateType'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='package'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='simpleDataInstance'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='simpleDataType'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='structuredDataInstance'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='structuredDataType'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testConfiguration'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testDescription'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testObjective']" targetFinderExpression="[commentedElement/]">
           <style lineStyle="dash" targetArrow="NoDecoration" sizeComputationExpression="2">
             <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
             <centerLabelStyleDescription>
@@ -490,7 +847,7 @@
             </centerLabelStyleDescription>
           </style>
         </edgeMappings>
-        <edgeMappings name="testConfiguration.connection" sourceMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testConfiguration']/@subContainerMappings[name='testConfiguration.configuration']/@subContainerMappings[name='testConfiguration.componentInstance']/@borderedNodeMappings[name='testConfiguration.gateReference']" targetMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testConfiguration']/@subContainerMappings[name='testConfiguration.configuration']/@subContainerMappings[name='testConfiguration.componentInstance']/@borderedNodeMappings[name='testConfiguration.gateReference']" targetFinderExpression="[diagram.diagramElements.target->select(e|e.oclIsKindOf(tdl::GateReference))->asSet().oclAsType(tdl::GateReference)->any(ref|ref.component = self.endPoint->sortedBy(g|g.name)->at(2).component and ref.gate = self.endPoint->sortedBy(g|g.name)->at(2).gate)/]" sourceFinderExpression="[diagram.diagramElements.target->select(e|e.oclIsKindOf(tdl::GateReference))->asSet().oclAsType(tdl::GateReference)->any(ref|ref.component = self.endPoint->sortedBy(g|g.name)->at(1).component and ref.gate = self.endPoint->sortedBy(g|g.name)->at(1).gate)/]" domainClass="tdl.Connection" useDomainElement="true">
+        <edgeMappings name="testConfiguration.connection" sourceMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testConfiguration']/@subContainerMappings[name='testConfiguration.configuration']/@subContainerMappings[name='testConfiguration.componentInstance']/@borderedNodeMappings[name='testConfiguration.gateReference'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testConfiguration']/@subContainerMappings[name='testConfiguration.configuration']/@subContainerMappings[name='testConfiguration.componentInstance']/@borderedNodeMappings[name='testConfiguration.gateInstance']" targetMapping="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testConfiguration']/@subContainerMappings[name='testConfiguration.configuration']/@subContainerMappings[name='testConfiguration.componentInstance']/@borderedNodeMappings[name='testConfiguration.gateReference'] //@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testConfiguration']/@subContainerMappings[name='testConfiguration.configuration']/@subContainerMappings[name='testConfiguration.componentInstance']/@borderedNodeMappings[name='testConfiguration.gateInstance']" targetFinderExpression="[diagram.diagramElements.target->select(e|e.oclIsKindOf(tdl::GateReference))->asSet().oclAsType(tdl::GateReference)->any(ref|ref.component = self.endPoint->sortedBy(g|g.gate.name)->at(2).component and ref.gate = self.endPoint->sortedBy(g|g.gate.name)->at(2).gate)/]" sourceFinderExpression="[diagram.diagramElements.target->select(e|e.oclIsKindOf(tdl::GateReference))->asSet().oclAsType(tdl::GateReference)->any(ref|ref.component = self.endPoint->sortedBy(g|g.gate.name)->at(1).component and ref.gate = self.endPoint->sortedBy(g|g.gate.name)->at(1).gate)/]" domainClass="tdl.Connection" useDomainElement="true">
           <style targetArrow="NoDecoration" sizeComputationExpression="2" routingStyle="manhattan">
             <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
             <centerLabelStyleDescription showIcon="false" labelExpression="[name/]">
@@ -514,8 +871,8 @@
             </centerLabelStyleDescription>
           </style>
         </edgeMappings>
-        <containerMappings name="annotationType" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.AnnotationType" childrenPresentation="List">
-          <subNodeMappings name="annotationType.name" semanticCandidatesExpression="[self/]" domainClass="tdl.AnnotationType">
+        <containerMappings name="annotationType" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.AnnotationType" childrenPresentation="List">
+          <subNodeMappings name="annotationType.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.AnnotationType">
             <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -530,8 +887,8 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="simpleDataType" preconditionExpression="[oclIsTypeOf(tdl::SimpleDataType)/]" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.SimpleDataType" childrenPresentation="List">
-          <subNodeMappings name="simpleDataType.name" semanticCandidatesExpression="[self/]" domainClass="tdl.SimpleDataType">
+        <containerMappings name="simpleDataType" preconditionExpression="[oclIsTypeOf(tdl::SimpleDataType)/]" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.SimpleDataType" childrenPresentation="List">
+          <subNodeMappings name="simpleDataType.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.SimpleDataType">
             <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -546,8 +903,8 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="time" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.Time" childrenPresentation="List">
-          <subNodeMappings name="time.name" semanticCandidatesExpression="[self/]" domainClass="tdl.Time">
+        <containerMappings name="time" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.Time" childrenPresentation="List">
+          <subNodeMappings name="time.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.Time">
             <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -562,8 +919,8 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="simpleDataInstance" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.SimpleDataInstance" childrenPresentation="List">
-          <subNodeMappings name="simpleDataInstance.name" semanticCandidatesExpression="[self/]" domainClass="tdl.SimpleDataInstance">
+        <containerMappings name="simpleDataInstance" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.SimpleDataInstance" childrenPresentation="List">
+          <subNodeMappings name="simpleDataInstance.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.SimpleDataInstance">
             <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -578,7 +935,7 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="package" semanticCandidatesExpression="[nestedPackage/]" domainClass="tdl.Package">
+        <containerMappings name="package" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[nestedPackage/]" domainClass="tdl.Package">
           <subContainerMappings name="package.imports" semanticCandidatesExpression="[self/]" domainClass="tdl.Package" childrenPresentation="List">
             <subNodeMappings name="import" label="Import" semanticCandidatesExpression="[import/]" domainClass="tdl.ElementImport">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="['from '.concat(self.importedPackage.name).concat(' ').concat(if self.importedElement->isEmpty() then ' all' else separator(self.importedElement->collect(e|e.name)->asSequence(), ', ') endif)/]" resizeKind="NSEW">
@@ -611,8 +968,8 @@
               <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
             </style>
           </subContainerMappings>
-          <subContainerMappings name="package.name" semanticCandidatesExpression="[self/]" domainClass="tdl.Package" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.Package">
+          <subContainerMappings name="package.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.Package" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.Package">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -634,9 +991,9 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="action" preconditionExpression="[not oclIsKindOf(Function)/]" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.Action">
-          <subContainerMappings name="action.name" semanticCandidatesExpression="[self/]" domainClass="tdl.Action" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.Action">
+        <containerMappings name="action" preconditionExpression="[not oclIsKindOf(Function)/]" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editActionBody']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.Action">
+          <subContainerMappings name="action.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.Action" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.Action">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -667,8 +1024,8 @@
               <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
             </style>
           </subContainerMappings>
-          <subContainerMappings name="action.body" semanticCandidatesExpression="[self/]" domainClass="tdl.Action" childrenPresentation="List">
-            <subNodeMappings name="Body" semanticCandidatesExpression="[self/]" domainClass="tdl.Action">
+          <subContainerMappings name="action.body" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editActionBody']" semanticCandidatesExpression="[self/]" domainClass="tdl.Action" childrenPresentation="List">
+            <subNodeMappings name="Body" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editActionBody']" semanticCandidatesExpression="[self/]" domainClass="tdl.Action">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[_body/]" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -690,16 +1047,16 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="componentType" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.ComponentType">
-          <borderedNodeMappings name="gateInstance" semanticCandidatesExpression="[gateInstance/]" domainClass="tdl.GateInstance">
+        <containerMappings name="componentType" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.ComponentType">
+          <borderedNodeMappings name="gateInstance" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[gateInstance/]" domainClass="tdl.GateInstance">
             <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="[name + ' : ' + type.name/]" labelAlignment="LEFT" resizeKind="NSEW">
               <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
               <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
             </style>
           </borderedNodeMappings>
-          <subContainerMappings name="componentType.name" semanticCandidatesExpression="[self/]" domainClass="tdl.ComponentType" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.ComponentType">
+          <subContainerMappings name="componentType.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.ComponentType" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.ComponentType">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -715,7 +1072,7 @@
             </style>
           </subContainerMappings>
           <subContainerMappings name="componentType.timers" semanticCandidatesExpression="[self/]" domainClass="tdl.ComponentType" childrenPresentation="List">
-            <subNodeMappings name="componentType.timer" semanticCandidatesExpression="[timer/]" domainClass="tdl.Timer">
+            <subNodeMappings name="componentType.timer" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[timer/]" domainClass="tdl.Timer">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -731,7 +1088,7 @@
             </style>
           </subContainerMappings>
           <subContainerMappings name="componentType.variables" semanticCandidatesExpression="[self/]" domainClass="tdl.ComponentType" childrenPresentation="List">
-            <subNodeMappings name="componentType.variable" semanticCandidatesExpression="[variable/]" domainClass="tdl.Variable">
+            <subNodeMappings name="componentType.variable" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[variable/]" domainClass="tdl.Variable">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name + ' : ' + dataType.name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -753,9 +1110,9 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="testConfiguration" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.TestConfiguration">
-          <subContainerMappings name="testConfiguration.name" semanticCandidatesExpression="[self/]" domainClass="tdl.TestConfiguration" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.TestConfiguration">
+        <containerMappings name="testConfiguration" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.TestConfiguration">
+          <subContainerMappings name="testConfiguration.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.TestConfiguration" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.TestConfiguration">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -770,16 +1127,23 @@
               <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
             </style>
           </subContainerMappings>
-          <subContainerMappings name="testConfiguration.configuration" semanticCandidatesExpression="[self/]" domainClass="tdl.TestConfiguration">
-            <subContainerMappings name="testConfiguration.componentInstance" semanticCandidatesExpression="[componentInstance/]" domainClass="tdl.ComponentInstance" childrenPresentation="List">
+          <subContainerMappings name="testConfiguration.configuration" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.TestConfiguration">
+            <subContainerMappings name="testConfiguration.componentInstance" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[componentInstance/]" domainClass="tdl.ComponentInstance" childrenPresentation="List">
               <borderedNodeMappings name="testConfiguration.gateReference" semanticCandidatesExpression="[type.gateInstance->collect(gate|tdl::TestConfiguration.allInstances()->select(conf|conf.componentInstance->includes(self)).connection.endPoint->select(ep|ep.component = self)->any(ep|ep.gate = gate))/]" domainClass="tdl.GateReference">
-                <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="[name + ' : ' + gate.type.name/]" labelAlignment="LEFT" resizeKind="NSEW">
+                <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="[gate.name + ' : ' + gate.type.name/]" labelAlignment="LEFT" resizeKind="NSEW">
                   <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                   <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                   <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
                 </style>
               </borderedNodeMappings>
-              <subNodeMappings name="testConfiguration.componentInstance.name" semanticCandidatesExpression="[self/]" domainClass="tdl.ComponentInstance">
+              <borderedNodeMappings name="testConfiguration.gateInstance" semanticCandidatesExpression="[type.gateInstance->reject(gate|owner().oclAsType(TestConfiguration).connection.endPoint.gate->includes(gate))/]" domainClass="tdl.GateInstance">
+                <style xsi:type="style:SquareDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="[name + ' : ' + type.name/]" labelAlignment="LEFT" resizeKind="NSEW">
+                  <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+                  <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+                  <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+                </style>
+              </borderedNodeMappings>
+              <subNodeMappings name="testConfiguration.componentInstance.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.ComponentInstance">
                 <style xsi:type="style:SquareDescription" borderSizeComputationExpression="-1" showIcon="false" labelExpression="[name + ' : ' + type.name/]" labelPosition="node" resizeKind="NSEW">
                   <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                   <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -809,9 +1173,9 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="testObjective" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.TestObjective">
-          <subContainerMappings name="testObjective.name" semanticCandidatesExpression="[self/]" domainClass="tdl.TestObjective" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.TestObjective">
+        <containerMappings name="testObjective" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.TestObjective">
+          <subContainerMappings name="testObjective.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.TestObjective" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.TestObjective">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -865,9 +1229,9 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="structuredDataType" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.StructuredDataType">
-          <subContainerMappings name="structuredDataType.name" semanticCandidatesExpression="[self/]" domainClass="tdl.StructuredDataType" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.StructuredDataType">
+        <containerMappings name="structuredDataType" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.StructuredDataType">
+          <subContainerMappings name="structuredDataType.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.StructuredDataType" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.StructuredDataType">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -905,9 +1269,9 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="structuredDataInstance" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.StructuredDataInstance">
-          <subContainerMappings name="structuredDataInstance.name" semanticCandidatesExpression="[self/]" domainClass="tdl.StructuredDataInstance" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.StructuredDataInstance">
+        <containerMappings name="structuredDataInstance" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.StructuredDataInstance">
+          <subContainerMappings name="structuredDataInstance.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.StructuredDataInstance" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.StructuredDataInstance">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -946,8 +1310,8 @@
           </style>
         </containerMappings>
         <containerMappings name="dataResourceMapping" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.DataResourceMapping">
-          <subContainerMappings name="dataResourceMapping.name" semanticCandidatesExpression="[self/]" domainClass="tdl.DataResourceMapping" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.DataResourceMapping">
+          <subContainerMappings name="dataResourceMapping.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.DataResourceMapping" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.DataResourceMapping">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -986,8 +1350,8 @@
           </style>
         </containerMappings>
         <containerMappings name="dataElementMapping" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.DataElementMapping">
-          <subContainerMappings name="dataElementMapping.name" semanticCandidatesExpression="[self/]" domainClass="tdl.DataElementMapping" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.DataElementMapping">
+          <subContainerMappings name="dataElementMapping.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.DataElementMapping" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.DataElementMapping">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name + (if (self.elementURI.oclIsUndefined()) then '' else ' := '+ self.elementURI endif)/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -1026,8 +1390,8 @@
           </style>
         </containerMappings>
         <containerMappings name="testDescription" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.TestDescription">
-          <subContainerMappings name="testDescription.name" semanticCandidatesExpression="[self/]" domainClass="tdl.TestDescription" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.TestDescription">
+          <subContainerMappings name="testDescription.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.TestDescription" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.TestDescription">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -1115,9 +1479,9 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
-        <containerMappings name="function" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.Function">
-          <subContainerMappings name="function.name" semanticCandidatesExpression="[self/]" domainClass="tdl.Function" childrenPresentation="List">
-            <subNodeMappings name="name" semanticCandidatesExpression="[self/]" domainClass="tdl.Function">
+        <containerMappings name="function" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editActionBody']" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.Function">
+          <subContainerMappings name="function.name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.Function" childrenPresentation="List">
+            <subNodeMappings name="name" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[self/]" domainClass="tdl.Function">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -1156,7 +1520,7 @@
             </style>
           </subContainerMappings>
           <subContainerMappings name="function.parameter" semanticCandidatesExpression="[self/]" domainClass="tdl.Function" childrenPresentation="List">
-            <subNodeMappings name="Parameter" semanticCandidatesExpression="[formalParameter/]" domainClass="tdl.FormalParameter">
+            <subNodeMappings name="Parameter" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editName']" semanticCandidatesExpression="[formalParameter/]" domainClass="tdl.FormalParameter">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[self.name + ' : ' + dataType.name/]" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -1171,8 +1535,8 @@
               <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
             </style>
           </subContainerMappings>
-          <subContainerMappings name="function.body" semanticCandidatesExpression="[self/]" domainClass="tdl.Action" childrenPresentation="List">
-            <subNodeMappings name="Body" semanticCandidatesExpression="[self/]" domainClass="tdl.Action">
+          <subContainerMappings name="function.body" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editActionBody']" semanticCandidatesExpression="[self/]" domainClass="tdl.Action" childrenPresentation="List">
+            <subNodeMappings name="Body" labelDirectEdit="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@toolSections.0/@ownedTools[name='editActionBody']" semanticCandidatesExpression="[self/]" domainClass="tdl.Action">
               <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[_body/]" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
                 <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
                 <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
@@ -1194,9 +1558,354 @@
             <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
           </style>
         </containerMappings>
+        <containerMappings name="gateType" semanticCandidatesExpression="[packagedElement/]" domainClass="tdl.GateType" childrenPresentation="List">
+          <borderedNodeMappings name="gateTypeGateType" semanticCandidatesExpression="[self/]" domainClass="tdl.GateType">
+            <style xsi:type="style:SquareDescription" borderSizeComputationExpression="5" showIcon="false" labelExpression="[name/]">
+              <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+              <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+              <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+            </style>
+          </borderedNodeMappings>
+          <subNodeMappings name="gateTypeDataType" semanticCandidatesExpression="[dataType/]" domainClass="tdl.DataType">
+            <style xsi:type="style:SquareDescription" showIcon="false" labelExpression="[name/]" labelAlignment="LEFT" labelPosition="node" resizeKind="NSEW">
+              <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+              <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+              <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+            </style>
+          </subNodeMappings>
+          <style xsi:type="style:FlatContainerStyleDescription" borderSizeComputationExpression="1" showIcon="false" labelExpression="DataType:" labelAlignment="LEFT">
+            <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+            <labelFormat>bold</labelFormat>
+            <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+            <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+          </style>
+        </containerMappings>
+        <toolSections name="edit">
+          <ownedTools xsi:type="tool_2:DirectEditLabel" name="editName" inputLabelExpression="[name/]">
+            <mask mask="{0}"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="[arg0/]"/>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_2:DirectEditLabel" name="editCommentBody" inputLabelExpression="[_body/]">
+            <mask mask="{0}"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:SetValue" featureName="body" valueExpression="[arg0/]"/>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_2:DirectEditLabel" name="editActionBody" inputLabelExpression="[_body/]">
+            <mask mask="{0}"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:SetValue" featureName="body" valueExpression="[arg0/]"/>
+            </initialOperation>
+          </ownedTools>
+        </toolSections>
+        <toolSections name="createFoundation" label="Foundation">
+          <ownedTools xsi:type="tool_2:ContainerCreationDescription" name="createPackage" label="Package" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='package']">
+            <variable name="container"/>
+            <viewVariable name="containerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Package" referenceName="nestedPackage"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createPackageImport" label="Package Import" precondition="[oclIsKindOf(Package)/]" candidatesExpression="[tdl::Package.allInstances()->excluding(self)/]">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="ElementImport" referenceName="import">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="importedPackage" valueExpression="[element/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createTestDescription" label="Test Description" precondition="[oclIsKindOf(Package)/]" candidatesExpression="[getTestConfigurations()/]" message="Select Test Configuration">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="TestDescription" referenceName="packagedElement">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="a Test Case"/>
+                  <subModelOperations xsi:type="tool_1:CreateInstance" typeName="BehaviourDescription" referenceName="behaviourDescription">
+                    <subModelOperations xsi:type="tool_1:CreateInstance" typeName="CompoundBehaviour" referenceName="behaviour">
+                      <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Block" referenceName="block"/>
+                    </subModelOperations>
+                  </subModelOperations>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:ToolDescription" name="createComment" label="Comment">
+            <element name="element"/>
+            <elementView name="elementView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[element/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Comment" referenceName="comment">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="body" valueExpression="&lt;no comment>"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_2:ContainerCreationDescription" name="createAnnotationType" label="Annotation Type" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='annotationType']">
+            <variable name="container"/>
+            <viewVariable name="containerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="AnnotationType" referenceName="packagedElement"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createAnnotation" label="Annotation" candidatesExpression="[getAnnotationTypes()/]" message="Select Annotation Type">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[container/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Annotation" referenceName="annotation">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="key" valueExpression="[element/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+        </toolSections>
+        <toolSections name="createConfiguration" label="Configuration">
+          <ownedTools xsi:type="tool_2:ContainerCreationDescription" name="createTestConfiguration" label="Test Configuration" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='testConfiguration']">
+            <variable name="container"/>
+            <viewVariable name="containerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="TestConfiguration" referenceName="packagedElement"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createComponentInstance" label="Component Instance" precondition="[oclIsKindOf(TestConfiguration)/]" candidatesExpression="[getComponentTypes()/]" message="Select Component Type">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="ComponentInstance" referenceName="componentInstance">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="type" valueExpression="[element/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_2:EdgeCreationDescription" name="createConnection" label="Connection" edgeMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@edgeMappings[name='testConfiguration.connection']">
+            <sourceVariable name="source"/>
+            <targetVariable name="target"/>
+            <sourceViewVariable name="sourceView"/>
+            <targetViewVariable name="targetView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[sourceView.getContainingTestComponent().owner()/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Connection" referenceName="connection" variableName="newConnection">
+                  <subModelOperations xsi:type="tool_1:CreateInstance" typeName="GateReference" referenceName="endPoint" variableName="sourceGate">
+                    <subModelOperations xsi:type="tool_1:If" conditionExpression="[source.oclIsKindOf(GateReference)/]">
+                      <subModelOperations xsi:type="tool_1:SetValue" featureName="component" valueExpression="[source.component/]"/>
+                      <subModelOperations xsi:type="tool_1:SetValue" featureName="gate" valueExpression="[source.gate/]"/>
+                    </subModelOperations>
+                    <subModelOperations xsi:type="tool_1:If" conditionExpression="[source.oclIsKindOf(GateInstance)/]">
+                      <subModelOperations xsi:type="tool_1:SetValue" featureName="component" valueExpression="[sourceView.getContainingTestComponent()/]"/>
+                      <subModelOperations xsi:type="tool_1:SetValue" featureName="gate" valueExpression="[source/]"/>
+                    </subModelOperations>
+                  </subModelOperations>
+                  <subModelOperations xsi:type="tool_1:CreateInstance" typeName="GateReference" referenceName="endPoint" variableName="targetGate">
+                    <subModelOperations xsi:type="tool_1:If" conditionExpression="[target.oclIsKindOf(GateReference)/]">
+                      <subModelOperations xsi:type="tool_1:SetValue" featureName="component" valueExpression="[target.component/]"/>
+                      <subModelOperations xsi:type="tool_1:SetValue" featureName="gate" valueExpression="[target.gate/]"/>
+                    </subModelOperations>
+                    <subModelOperations xsi:type="tool_1:If" conditionExpression="[target.oclIsKindOf(GateInstance)/]">
+                      <subModelOperations xsi:type="tool_1:SetValue" featureName="component" valueExpression="[targetView.getContainingTestComponent()/]"/>
+                      <subModelOperations xsi:type="tool_1:SetValue" featureName="gate" valueExpression="[target/]"/>
+                    </subModelOperations>
+                  </subModelOperations>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_2:ContainerCreationDescription" name="createComponentType" label="Component Type" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='componentType']">
+            <variable name="container"/>
+            <viewVariable name="containerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="ComponentType" referenceName="packagedElement"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createGateInstance" label="Gate Instance" precondition="[oclIsKindOf(ComponentType)/]" candidatesExpression="[getGateTypes()/]" message="Select Gate Type">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[container/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="GateInstance" referenceName="gateInstance">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="type" valueExpression="[element/]"/>
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="['gate_' + element.name/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createVariable" label="Variable" precondition="[oclIsKindOf(ComponentType)/]" candidatesExpression="[getDataTypes()/]" message="Select Variable Type">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[container/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Variable" referenceName="variable">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="dataType" valueExpression="[element/]"/>
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="['var_' + element.name/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_2:NodeCreationDescription" name="createTimer" label="Timer" nodeMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='componentType']/@subContainerMappings[name='componentType.timers']/@subNodeMappings[name='componentType.timer']">
+            <variable name="container"/>
+            <viewVariable name="containerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Timer" referenceName="timer">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="['t_' + container.timer->size()/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_2:ContainerCreationDescription" name="createGateType" label="Gate Type" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='gateType']">
+            <variable name="container"/>
+            <viewVariable name="containerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="GateType" referenceName="packagedElement"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="addGateTypeDataType" label="Gate Data Type" precondition="[oclIsKindOf(GateType)/]" candidatesExpression="[getDataTypes()/]" message="Select Variable Type">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[container/]">
+                <subModelOperations xsi:type="tool_1:SetValue" featureName="dataType" valueExpression="[element/]"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+        </toolSections>
+        <toolSections name="createData" label="Data">
+          <ownedTools xsi:type="tool_2:ContainerCreationDescription" name="createSimpleDataType" label="Simple Data Type" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='simpleDataType']">
+            <variable name="container"/>
+            <viewVariable name="containerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="SimpleDataType" referenceName="packagedElement"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_2:ContainerCreationDescription" name="createStructuredDataType" label="Structured Data Type" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='structuredDataType']">
+            <variable name="container"/>
+            <viewVariable name="containerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="StructuredDataType" referenceName="packagedElement"/>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createMember" label="Member" precondition="[oclIsKindOf(StructuredDataType)/]" candidatesExpression="[getDataTypes()/]" message="Select Type for Member">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Member" referenceName="member">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="['a' + element.name/]"/>
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="dataType" valueExpression="[element/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createSimpleDataInstance" label="Simple Data Instance" precondition="[oclIsKindOf(Package)/]" candidatesExpression="[getSimpleDataTypes()/]" message="Select Type for Data Instance">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="SimpleDataInstance" referenceName="packagedElement">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="['a' + element.name/]"/>
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="dataType" valueExpression="[element/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createStructuredDataInstance" label="Structured Data Instance" precondition="[oclIsKindOf(Package)/]" candidatesExpression="[getStructuredDataTypes()/]" message="Select Type for Data Instance">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="StructuredDataInstance" referenceName="packagedElement">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="['a' + element.name/]"/>
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="dataType" valueExpression="[element/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createMemberAssignment" label="Member Assignment" precondition="[oclIsKindOf(StructuredDataInstance)/]" candidatesExpression="[dataType.oclAsType(StructuredDataType).member/]" message="Select Member to create Assignment for">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="MemberAssignment" referenceName="memberAssignment">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="member" valueExpression="[element/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_2:ContainerCreationDescription" name="createAction" label="Action" containerMappings="//@ownedViewpoints[name='org.etsi.mts.tdl']/@ownedRepresentations[name='GenericDiagram']/@defaultLayer/@containerMappings[name='action']">
+            <variable name="container"/>
+            <viewVariable name="containerView"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Action" referenceName="packagedElement">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="an action"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createFunction" label="Function" precondition="[oclIsKindOf(Package)/]" candidatesExpression="[getDataTypes()/]" message="Select return type for Function">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[self/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="Function" referenceName="packagedElement">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="a function"/>
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="returnType" valueExpression="[element/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+          <ownedTools xsi:type="tool_1:SelectionWizardDescription" name="createParameter" label="Parameter" precondition="[oclIsKindOf(Action)/]" candidatesExpression="[getDataTypes()/]" message="Select Type for Parameter">
+            <element name="element"/>
+            <containerView name="containerView"/>
+            <container name="container"/>
+            <initialOperation>
+              <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[container/]">
+                <subModelOperations xsi:type="tool_1:CreateInstance" typeName="FormalParameter" referenceName="formalParameter">
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="['p' + element.name/]"/>
+                  <subModelOperations xsi:type="tool_1:SetValue" featureName="dataType" valueExpression="[element/]"/>
+                </subModelOperations>
+              </firstModelOperations>
+            </initialOperation>
+          </ownedTools>
+        </toolSections>
       </defaultLayer>
     </ownedRepresentations>
     <ownedJavaExtensions qualifiedClassName="org.etsi.mts.tdl.graphical.extensions.DataUseLabelProvider"/>
-    <ownedJavaExtensions qualifiedClassName="org.etsi.mts.tdl.graphical.extensions.BehaviorProvider"/>
+    <ownedJavaExtensions qualifiedClassName="org.etsi.mts.tdl.graphical.extensions.BehaviourProvider"/>
+    <ownedJavaExtensions qualifiedClassName="org.etsi.mts.tdl.graphical.extensions.ModelHelper"/>
+    <ownedJavaExtensions qualifiedClassName="org.etsi.mts.tdl.graphical.extensions.BehaviourModifications"/>
   </ownedViewpoints>
 </description:Group>
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/plugin.xml b/plugins/org.etsi.mts.tdl.graphical.viewpoint/plugin.xml
index 23a6c243241364909bc7a7195e67c9ddbb17f848..7c55bec302fa4a879fc2cc2333bcb7b7725dd926 100644
--- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/plugin.xml
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/plugin.xml
@@ -74,6 +74,13 @@
             providerClass="org.etsi.mts.tdl.graphical.sirius.layout.RefreshExtensionProvider">
       </refreshExtensionProvider>
    </extension>
+   <extension
+         point="org.eclipse.sirius.externalJavaAction">
+      <javaActions
+            actionClass="org.etsi.mts.tdl.graphical.sirius.actions.CreateAction"
+            id="org.etsi.mts.tdl.graphical.viewpoint.createAction">
+      </javaActions>
+   </extension>
 
 
 </plugin>
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/BehaviourModifications.java b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/BehaviourModifications.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a20082ae8c11113aa85f760dc51feda3647c244
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/BehaviourModifications.java
@@ -0,0 +1,93 @@
+package org.etsi.mts.tdl.graphical.extensions;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.sirius.diagram.DDiagramElement;
+import org.eclipse.sirius.diagram.DSemanticDiagram;
+import org.eclipse.sirius.diagram.sequence.ordering.EventEnd;
+import org.etsi.mts.tdl.Behaviour;
+import org.etsi.mts.tdl.Block;
+import org.etsi.mts.tdl.MultipleCombinedBehaviour;
+import org.etsi.mts.tdl.SingleCombinedBehaviour;
+import org.etsi.mts.tdl.Target;
+import org.etsi.mts.tdl.TestDescription;
+import org.etsi.mts.tdl.tdlFactory;
+
+public class BehaviourModifications {
+	
+	private ModelHelper helper = new ModelHelper();
+	
+	public static void addBehaviour(EObject startingEndPredecessor, Object diagramElement, Behaviour behaviour) {
+		DSemanticDiagram diagram =
+				diagramElement instanceof DSemanticDiagram ? (DSemanticDiagram) diagramElement :
+				(DSemanticDiagram) ((DDiagramElement)diagramElement).getParentDiagram();
+		TestDescription td = (TestDescription) diagram.getTarget();
+		addBehaviour(startingEndPredecessor, td, behaviour);
+	}
+		
+	public static void addBehaviour(EObject endPredecessor, TestDescription td, Behaviour behaviour) {
+		if (endPredecessor instanceof EventEnd)
+			endPredecessor = ((EventEnd) endPredecessor).getSemanticEnd();
+		
+		Block parent = null;
+		Behaviour prev = null;
+		if (endPredecessor instanceof Behaviour) {
+			prev = (Behaviour) endPredecessor;
+			
+		} else if (endPredecessor instanceof Block) {
+			parent = (Block) endPredecessor;
+			
+		} else if (endPredecessor == null || endPredecessor instanceof TestDescription) {
+			parent = ((SingleCombinedBehaviour)td.getBehaviourDescription().getBehaviour()).getBlock();
+			
+		} else {
+			EObject begin = BehaviourProvider.getBegin(endPredecessor);
+			if (begin instanceof Block)
+				prev = (Behaviour)begin.eContainer();
+			else
+				prev = (Behaviour) begin;
+		}
+		
+		if (parent == null && prev != null)
+			parent = (Block) prev.eContainer();
+
+		List<Behaviour> list = parent.getBehaviour();
+		list.remove(behaviour);
+		int index = 0;
+		if (prev != null)
+			index = list.indexOf(prev) + 1;
+		list.add(index, behaviour);
+	}
+	
+	public Object reorderBehaviour(Object selection, Object preAfter) {
+		
+		Behaviour b = null;
+		if (selection instanceof Target)
+			b = (Behaviour) ((Target) selection).eContainer();
+		else
+			b = (Behaviour) selection;
+		
+		addBehaviour((EObject)preAfter, helper.getTestDescription(b), b);
+		
+		return selection;
+	}
+	
+	public static void addBlock(EObject endPredecessor, MultipleCombinedBehaviour combinedBheviour) {
+		if (endPredecessor instanceof EventEnd)
+			endPredecessor = ((EventEnd) endPredecessor).getSemanticEnd();
+
+		Block prevBlock;
+		if (endPredecessor instanceof Block)
+			prevBlock = (Block) endPredecessor;
+		else {
+			EObject begin = BehaviourProvider.getBegin(endPredecessor);
+			while (!(begin instanceof Block))
+				begin = begin.eContainer();
+			prevBlock = (Block) begin;
+		}
+		List<Block> blocks = combinedBheviour.getBlock();
+		blocks.add(prevBlock == null || !blocks.contains(prevBlock) ? 0 : blocks.indexOf(prevBlock) + 1,
+				tdlFactory.eINSTANCE.createBlock());
+	}
+}
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/BehaviorProvider.java b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/BehaviourProvider.java
similarity index 91%
rename from plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/BehaviorProvider.java
rename to plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/BehaviourProvider.java
index d076eb27bced4fac078edaee74455d0c4bfe86db..756628b1d4953f8cb56e2776632d9f9bd14b1f5a 100644
--- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/BehaviorProvider.java
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/BehaviourProvider.java
@@ -19,14 +19,13 @@ import org.etsi.mts.tdl.CombinedBehaviour;
 import org.etsi.mts.tdl.Connection;
 import org.etsi.mts.tdl.ExceptionalBehaviour;
 import org.etsi.mts.tdl.GateReference;
-import org.etsi.mts.tdl.Interaction;
 import org.etsi.mts.tdl.MultipleCombinedBehaviour;
 import org.etsi.mts.tdl.PeriodicBehaviour;
 import org.etsi.mts.tdl.SingleCombinedBehaviour;
 import org.etsi.mts.tdl.TestDescription;
 import org.etsi.mts.tdl.tdlPackage;
 
-public class BehaviorProvider {
+public class BehaviourProvider {
 	
 	private static final String EXTENSION_URI = "http://www.etsi.org/spec/TDL/1.2.1/viewer";
 	
@@ -98,7 +97,7 @@ public class BehaviorProvider {
 			
 		default:
 			items.add(behaviour);
-			if (behaviour instanceof AtomicBehaviour && !(behaviour instanceof Interaction))
+			if (behaviour instanceof AtomicBehaviour)
 				items.add(getEnd(behaviour));
 			break;
 		}
@@ -131,8 +130,8 @@ public class BehaviorProvider {
 	private EObject createEnd(EObject e) {
 		Resource extResource = getExtensionResource(e);
 		
-		EPackage extPackage = EPackageRegistryImpl.INSTANCE.getEPackage(EXTENSION_URI);
-		EClass endClass = (EClass) extPackage.getEClassifier(END_CLASS);
+		EPackage extPackage = getExtensionPackage();
+		EClass endClass = getEndClass();
 		EObject end = extPackage.getEFactoryInstance().create(endClass);
 		
 		end.eSet(endClass.getEStructuralFeature(END_BEGIN_FEATURE), e);
@@ -142,6 +141,18 @@ public class BehaviorProvider {
 		return end;
 	}
 	
+	private static EPackage getExtensionPackage() {
+		return EPackageRegistryImpl.INSTANCE.getEPackage(EXTENSION_URI);
+	}
+	
+	private static EClass getEndClass() {
+		return (EClass) getExtensionPackage().getEClassifier(END_CLASS);
+	}
+	
+	public static EObject getBegin(EObject end) {
+		return (EObject) end.eGet(getEndClass().getEStructuralFeature(END_BEGIN_FEATURE));
+	}
+	
 	private Resource getExtensionResource(EObject e) {
 		Resource mResource = e.eResource();
 		ResourceSet rs = mResource.getResourceSet();
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/ModelHelper.java b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/ModelHelper.java
new file mode 100644
index 0000000000000000000000000000000000000000..50da450f0807d798302403909117133da0e70ef4
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/extensions/ModelHelper.java
@@ -0,0 +1,182 @@
+package org.etsi.mts.tdl.graphical.extensions;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.sirius.diagram.DDiagramElement;
+import org.etsi.mts.tdl.Action;
+import org.etsi.mts.tdl.AnnotationType;
+import org.etsi.mts.tdl.Behaviour;
+import org.etsi.mts.tdl.BehaviourDescription;
+import org.etsi.mts.tdl.ComponentInstance;
+import org.etsi.mts.tdl.ComponentType;
+import org.etsi.mts.tdl.DataInstance;
+import org.etsi.mts.tdl.DataType;
+import org.etsi.mts.tdl.Element;
+import org.etsi.mts.tdl.ElementImport;
+import org.etsi.mts.tdl.Function;
+import org.etsi.mts.tdl.GateType;
+import org.etsi.mts.tdl.Package;
+import org.etsi.mts.tdl.SimpleDataInstance;
+import org.etsi.mts.tdl.SimpleDataType;
+import org.etsi.mts.tdl.StructuredDataType;
+import org.etsi.mts.tdl.Target;
+import org.etsi.mts.tdl.TestConfiguration;
+import org.etsi.mts.tdl.TestDescription;
+import org.etsi.mts.tdl.Timer;
+import org.etsi.mts.tdl.Variable;
+import org.etsi.mts.tdl.tdlPackage;
+
+public class ModelHelper {
+	
+	public EObject owner(EObject element) {
+		return element.eContainer();
+	}
+
+	public TestDescription getTestDescription(EObject behaviourContent) {
+		EObject c = behaviourContent;
+		while (c != null) {
+			if (c instanceof TestDescription)
+				return (TestDescription) c;
+			c = c.eContainer();
+		}
+		return null;
+	}
+	
+	public ComponentInstance getContainingTestComponent(DDiagramElement configurationDiagramElement) {
+		while (configurationDiagramElement != null) {
+			EObject t = configurationDiagramElement.getTarget();
+			if (t instanceof ComponentInstance)
+				return (ComponentInstance) t;
+			if (!(configurationDiagramElement.eContainer() instanceof DDiagramElement))
+				return null;
+			configurationDiagramElement = (DDiagramElement) configurationDiagramElement.eContainer();
+		}
+		return null;
+	}
+	
+	public TestConfiguration getTestConfiguration(EObject behaviourContent) {
+		TestDescription td = getTestDescription(behaviourContent);
+		return td != null ? td.getTestConfiguration() : null;
+	}
+	
+	public List<TestDescription> getTestDescriptions(EObject context) {
+		List<TestDescription> tdList = (List<TestDescription>) getOf(context, tdlPackage.eINSTANCE.getTestDescription());
+		TestDescription td = getTestDescription(context);
+		tdList.remove(td);
+		return tdList;
+	}
+
+	public List<Function> getFunctions(EObject context) {
+		return (List<Function>) getOf(context, tdlPackage.eINSTANCE.getFunction());
+	}
+
+	public List<Action> getActions(EObject context) {
+		return (List<Action>) getOf(context, tdlPackage.eINSTANCE.getAction());
+	}
+
+	public List<SimpleDataType> getSimpleDataTypes(EObject context) {
+		return (List<SimpleDataType>) getOf(context, tdlPackage.eINSTANCE.getSimpleDataType());
+	}
+
+	public List<StructuredDataType> getStructuredDataTypes(EObject context) {
+		return (List<StructuredDataType>) getOf(context, tdlPackage.eINSTANCE.getStructuredDataType());
+	}
+
+	public List<DataType> getDataTypes(EObject context) {
+		return (List<DataType>) getOf(context, tdlPackage.eINSTANCE.getDataType());
+	}
+
+	public List<DataInstance> getDataInstances(EObject context) {
+		return (List<DataInstance>) getOf(context, tdlPackage.eINSTANCE.getDataInstance());
+	}
+
+	public List<TestConfiguration> getTestConfigurations(EObject context) {
+		return (List<TestConfiguration>) getOf(context, tdlPackage.eINSTANCE.getTestConfiguration());
+	}
+
+	public List<ComponentType> getComponentTypes(EObject context) {
+		return (List<ComponentType>) getOf(context, tdlPackage.eINSTANCE.getComponentType());
+	}
+
+	public List<AnnotationType> getAnnotationTypes(EObject context) {
+		return (List<AnnotationType>) getOf(context, tdlPackage.eINSTANCE.getAnnotationType());
+	}
+
+	public List<GateType> getGateTypes(EObject context) {
+		return (List<GateType>) getOf(context, tdlPackage.eINSTANCE.getGateType());
+	}
+
+	public List<Variable> getVariables(EObject context) {
+		List<Variable> vars = new LinkedList<Variable>();
+		TestDescription td = getTestDescription(context);
+		for (ComponentInstance c: td.getTestConfiguration().getComponentInstance())
+			vars.addAll(c.getType().getVariable());
+		return vars;
+	}
+
+	public List<Timer> getTimers(EObject context) {
+		List<Timer> timers = new LinkedList<Timer>();
+		TestDescription td = getTestDescription(context);
+		for (ComponentInstance c: td.getTestConfiguration().getComponentInstance())
+			timers.addAll(c.getType().getTimer());
+		return timers;
+	}
+	
+	private List<? extends Element> getOf(EObject context, EClassifier eClass) {
+		List<Element> list = new LinkedList<Element>();
+		for (Element e: visibleElements(context))
+			if (eClass.isInstance(e))
+				list.add(e);
+		return list;
+	}
+	
+	public List<SimpleDataInstance> getVerdicts(EObject context) {
+		List<SimpleDataInstance> verdicts = new LinkedList<SimpleDataInstance>();
+		for (Element e: visibleElements(context))
+			if (e instanceof SimpleDataInstance) {
+				DataType type = ((SimpleDataInstance) e).getDataType();
+				if (type.getName().equalsIgnoreCase("Verdict"))
+					verdicts.add((SimpleDataInstance) e);
+			}
+		return verdicts;
+	}
+	
+	private List<Element> visibleElements(EObject context) {
+		List<Element> elements = new LinkedList<Element>();
+		
+		while (!(context instanceof Package))
+			context = context.eContainer();
+		
+		Package p = (Package) context;
+		elements.addAll(p.getPackagedElement());
+		
+		for (ElementImport imp: p.getImport()) {
+			if (imp.getImportedElement().isEmpty())
+				elements.addAll(imp.getImportedPackage().getPackagedElement());
+			else
+				elements.addAll(imp.getImportedElement());
+		}
+		
+		return elements;
+	}
+	
+	public List<EObject> allBehaviours(TestDescription e) {
+		List<EObject> behaviours = new LinkedList<EObject>();
+		TreeIterator<EObject> iter = e.eAllContents();
+		while (iter.hasNext()) {
+			EObject c = iter.next();
+			if (c.eContainer() instanceof BehaviourDescription)
+				//Top level CompoundBehaviour
+				continue;
+			if (c instanceof Behaviour)
+				behaviours.add(c);
+			else if (c instanceof Target) 
+				behaviours.add(c);
+		}
+		return behaviours;
+	}
+}
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/actions/CreateAction.java b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/actions/CreateAction.java
new file mode 100644
index 0000000000000000000000000000000000000000..20a02276beca8ce8e381e66ce8bb9220d9b6dd30
--- /dev/null
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/actions/CreateAction.java
@@ -0,0 +1,263 @@
+package org.etsi.mts.tdl.graphical.sirius.actions;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.sirius.tools.api.ui.IExternalJavaAction;
+import org.etsi.mts.tdl.Action;
+import org.etsi.mts.tdl.ActionBehaviour;
+import org.etsi.mts.tdl.ActionReference;
+import org.etsi.mts.tdl.AlternativeBehaviour;
+import org.etsi.mts.tdl.Assertion;
+import org.etsi.mts.tdl.Assignment;
+import org.etsi.mts.tdl.AtomicBehaviour;
+import org.etsi.mts.tdl.Behaviour;
+import org.etsi.mts.tdl.Block;
+import org.etsi.mts.tdl.BoundedLoopBehaviour;
+import org.etsi.mts.tdl.ComponentInstance;
+import org.etsi.mts.tdl.ComponentInstanceRole;
+import org.etsi.mts.tdl.DataInstance;
+import org.etsi.mts.tdl.DataInstanceUse;
+import org.etsi.mts.tdl.DataUse;
+import org.etsi.mts.tdl.Function;
+import org.etsi.mts.tdl.FunctionCall;
+import org.etsi.mts.tdl.GateReference;
+import org.etsi.mts.tdl.Interaction;
+import org.etsi.mts.tdl.LocalExpression;
+import org.etsi.mts.tdl.Message;
+import org.etsi.mts.tdl.MultipleCombinedBehaviour;
+import org.etsi.mts.tdl.ParallelBehaviour;
+import org.etsi.mts.tdl.PeriodicBehaviour;
+import org.etsi.mts.tdl.SingleCombinedBehaviour;
+import org.etsi.mts.tdl.Target;
+import org.etsi.mts.tdl.TestDescription;
+import org.etsi.mts.tdl.TestDescriptionReference;
+import org.etsi.mts.tdl.TimeConstraint;
+import org.etsi.mts.tdl.TimeLabel;
+import org.etsi.mts.tdl.TimeOperation;
+import org.etsi.mts.tdl.Timer;
+import org.etsi.mts.tdl.TimerOperation;
+import org.etsi.mts.tdl.TimerStart;
+import org.etsi.mts.tdl.Variable;
+import org.etsi.mts.tdl.VariableUse;
+import org.etsi.mts.tdl.VerdictAssignment;
+import org.etsi.mts.tdl.tdlFactory;
+import org.etsi.mts.tdl.tdlPackage;
+import org.etsi.mts.tdl.graphical.extensions.BehaviourModifications;
+import org.etsi.mts.tdl.graphical.extensions.ModelHelper;
+
+public class CreateAction implements IExternalJavaAction {
+
+	@Override
+	public void execute(Collection<? extends EObject> selections, Map<String, Object> parameters) {
+		
+		EObject endPredecessor = (EObject) parameters.get("startingEndPredecessor");
+		List<GateReference> lifelines = (List<GateReference>) parameters.get("lifelines");
+		EObject target = (EObject) parameters.get("target");
+		EObject element = (EObject) parameters.get("element");
+		
+		String metaClassName = (String) parameters.get("class");
+		EClassifier eClass = tdlPackage.eINSTANCE.getEClassifier(metaClassName);
+		
+		Behaviour behaviour = null;
+		switch (eClass.getClassifierID()) {
+		case tdlPackage.MESSAGE:
+			behaviour = createMessage(parameters);
+			break;
+			
+		case tdlPackage.ALTERNATIVE_BEHAVIOUR:
+		case tdlPackage.BOUNDED_LOOP_BEHAVIOUR:
+		case tdlPackage.CONDITIONAL_BEHAVIOUR:
+		case tdlPackage.PARALLEL_BEHAVIOUR:
+		case tdlPackage.UNBOUNDED_LOOP_BEHAVIOUR:
+			behaviour = createCombinedBehaviour(parameters, eClass);
+			break;
+
+		case tdlPackage.DEFAULT_BEHAVIOUR:
+		case tdlPackage.INTERRUPT_BEHAVIOUR:
+		case tdlPackage.PERIODIC_BEHAVIOUR:
+			return;
+
+		case tdlPackage.BLOCK:
+			BehaviourModifications.addBlock(endPredecessor, (MultipleCombinedBehaviour) target);
+			return;
+			
+		case tdlPackage.BREAK:
+		case tdlPackage.STOP:
+			behaviour = (Behaviour) EcoreUtil.create((EClass) eClass);
+			break;
+			
+		case tdlPackage.ACTION_REFERENCE:
+			behaviour = (Behaviour) EcoreUtil.create((EClass) eClass);
+			((ActionReference)behaviour).setAction((Action) element);
+			break;
+			
+		case tdlPackage.INLINE_ACTION:
+			for (GateReference gRef : lifelines) {
+				ComponentInstance comp = gRef.getComponent();
+				behaviour = (Behaviour) EcoreUtil.create((EClass) eClass);
+				((ActionBehaviour)behaviour).setComponentInstance(comp);
+				break;
+			}
+			break;
+			
+		case tdlPackage.VERDICT_ASSIGNMENT:
+			behaviour = (Behaviour) EcoreUtil.create((EClass) eClass);
+			DataInstanceUse verdictDataUse = tdlFactory.eINSTANCE.createDataInstanceUse();
+			verdictDataUse.setDataInstance((DataInstance) element);
+			((VerdictAssignment)behaviour).setVerdict(verdictDataUse);
+			break;
+
+		case tdlPackage.TEST_DESCRIPTION_REFERENCE:
+			behaviour = (Behaviour) EcoreUtil.create((EClass) eClass);
+			((TestDescriptionReference)behaviour).setTestDescription((TestDescription) element);
+			break;
+
+		case tdlPackage.TIMER_START:
+		case tdlPackage.TIMER_STOP:
+			for (ComponentInstance c: new ModelHelper().getTestDescription(endPredecessor).getTestConfiguration().getComponentInstance()) {
+				if (c.getType().getTimer().contains(element)) {
+					behaviour = (Behaviour) EcoreUtil.create((EClass) eClass);
+					((TimerOperation)behaviour).setTimer((Timer) element);
+					((TimerOperation)behaviour).setComponentInstance(c);
+					break;
+				}
+			}
+			break;
+
+		case tdlPackage.WAIT:
+		case tdlPackage.QUIESCENCE:
+			ComponentInstance tester = null;
+			for (GateReference gRef : lifelines) {
+				ComponentInstance comp = gRef.getComponent();
+				if (comp.getRole() == ComponentInstanceRole.TESTER)
+					if (tester == null)
+						tester = comp;
+					else {
+						tester = null;
+						break;
+					}
+			}
+			behaviour = (Behaviour) EcoreUtil.create((EClass) eClass);
+			((TimeOperation)behaviour).setComponentInstance(tester);
+			
+			break;
+
+		case tdlPackage.TIME_LABEL:
+			TimeLabel tl = (TimeLabel) EcoreUtil.create((EClass) eClass);
+			((AtomicBehaviour)element).setTimeLabel(tl);
+			return;
+			
+		case tdlPackage.TIME_CONSTRAINT:
+			TimeConstraint tc = (TimeConstraint) EcoreUtil.create((EClass) eClass);
+			((AtomicBehaviour)element).getTimeConstraint().add(tc);
+			return;
+
+		case tdlPackage.DATA_INSTANCE_USE:
+			DataInstanceUse dataInstanceUse = tdlFactory.eINSTANCE.createDataInstanceUse();
+			dataInstanceUse.setDataInstance((DataInstance) element);
+			setDataUse(target, dataInstanceUse);
+			return;
+
+		case tdlPackage.VARIABLE_USE:
+			VariableUse variableUse = tdlFactory.eINSTANCE.createVariableUse();
+			variableUse.setVariable((Variable) element);
+			for (ComponentInstance c: new ModelHelper().getTestDescription(target).getTestConfiguration().getComponentInstance()) {
+				if (c.getType().getVariable().contains(element)) {
+					variableUse.setComponentInstance(c);
+					break;
+				}
+			}
+			setDataUse(target, variableUse);
+			return;
+
+		case tdlPackage.FUNCTION_CALL:
+			FunctionCall functionCall = tdlFactory.eINSTANCE.createFunctionCall();
+			functionCall.setFunction((Function) element);
+			setDataUse(target, functionCall);
+			return;
+			
+		default:
+			return;
+		}
+		
+		if (behaviour == null)
+			return;
+		
+		BehaviourModifications.addBehaviour(endPredecessor, parameters.get("diagramElement"), behaviour);
+
+	}
+	
+	private Behaviour createMessage(Map<String, Object> parameters) {
+
+		Message msg = tdlFactory.eINSTANCE.createMessage();
+		
+		msg.setSourceGate((GateReference) parameters.get("source"));
+
+		Target t = tdlFactory.eINSTANCE.createTarget();
+		msg.getTarget().add(t);
+		t.setTargetGate((GateReference) parameters.get("target"));
+		
+		return msg;
+	}
+
+	
+	private Behaviour createCombinedBehaviour(Map<String, Object> parameters, EClassifier eClass) {
+		Behaviour behaviour = (Behaviour) EcoreUtil.create((EClass) eClass);
+		Block block = tdlFactory.eINSTANCE.createBlock();
+		if (behaviour instanceof SingleCombinedBehaviour)
+			((SingleCombinedBehaviour) behaviour).setBlock(block);	
+		else if (behaviour instanceof MultipleCombinedBehaviour)
+			((MultipleCombinedBehaviour) behaviour).getBlock().add(block);
+		
+		if (behaviour instanceof AlternativeBehaviour ||
+				behaviour instanceof ParallelBehaviour)
+			((MultipleCombinedBehaviour) behaviour).getBlock().add(tdlFactory.eINSTANCE.createBlock());
+			
+		return behaviour;
+	}
+	
+	private void setDataUse(EObject target, DataUse dataUse) {
+		LocalExpression exp = null;
+		if (target instanceof BoundedLoopBehaviour
+				|| target instanceof PeriodicBehaviour
+				|| target instanceof Block) {
+			exp = tdlFactory.eINSTANCE.createLocalExpression();
+			exp.setExpression(dataUse);
+		}
+		
+		if (target instanceof Target) {
+			Interaction interaction = (Interaction) target.eContainer();
+			if (interaction instanceof Message)
+				((Message) interaction).setArgument(dataUse);
+		} else if (target instanceof BoundedLoopBehaviour)
+			((BoundedLoopBehaviour) target).getNumIteration().add(exp);
+		else if (target instanceof PeriodicBehaviour)
+			((PeriodicBehaviour) target).getPeriod().add(exp);
+		else if (target instanceof Block)
+			((Block) target).getGuard().add(exp);
+		else if (target instanceof Assertion)
+			((Assertion) target).setCondition(dataUse);
+		else if (target instanceof Assignment)
+			((Assignment) target).setExpression(dataUse);
+		else if (target instanceof TimeConstraint)
+			((TimeConstraint) target).setTimeConstraintExpression(dataUse);
+		else if (target instanceof TimerStart)
+			((TimerStart) target).setPeriod(dataUse);
+		else if (target instanceof TimeOperation)
+			((TimeOperation) target).setPeriod(dataUse);
+		else if (target instanceof TimeConstraint)
+			((TimeConstraint) target).setTimeConstraintExpression(dataUse);
+	}
+
+	@Override
+	public boolean canExecute(Collection<? extends EObject> selections) {
+		return true;
+	}
+
+}
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/LayoutEditPolicyProvider.java b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/LayoutEditPolicyProvider.java
index da8c996d2d065dc3c0409e958b47beefcb6940a0..47b57ecbb394cdcbb7605147f84cbb5b08f9be71 100644
--- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/LayoutEditPolicyProvider.java
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/LayoutEditPolicyProvider.java
@@ -15,6 +15,7 @@ import org.eclipse.gef.requests.ChangeBoundsRequest;
 import org.eclipse.gmf.runtime.common.core.service.IOperation;
 import org.eclipse.gmf.runtime.common.core.service.IProviderChangeListener;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
 import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer;
 import org.eclipse.gmf.runtime.diagram.ui.requests.ArrangeRequest;
@@ -49,8 +50,10 @@ public class LayoutEditPolicyProvider implements IEditPolicyProvider {
         EditPartViewer viewer = editPart.getViewer();
         if (viewer instanceof DiagramGraphicalViewer) {
         	
-        	CustomInteractionUsePreferredSizeLayoutPolicy iuep = new CustomInteractionUsePreferredSizeLayoutPolicy();
-            editPart.installEditPolicy(CustomInteractionUsePreferredSizeLayoutPolicy.KEY, iuep);
+        	if (editPart instanceof GraphicalEditPart) {
+            	CustomInteractionUsePreferredSizeLayoutPolicy iuep = new CustomInteractionUsePreferredSizeLayoutPolicy();
+                editPart.installEditPolicy(CustomInteractionUsePreferredSizeLayoutPolicy.KEY, iuep);
+        	}
             
 
 			EObject dElement = ((IGraphicalEditPart)editPart).resolveSemanticElement();
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/RefreshExtensionProvider.java b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/RefreshExtensionProvider.java
index 0d1b02a777d72d4326016843147c531a8666a3b3..bb5623da3fb4ca100b9c7bc802be0507961739f1 100644
--- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/RefreshExtensionProvider.java
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/RefreshExtensionProvider.java
@@ -26,8 +26,8 @@ public class RefreshExtensionProvider implements IRefreshExtensionProvider {
 	@Override
 	public boolean provides(DDiagram viewPoint) {
 		DiagramDescription desc = viewPoint.getDescription();
-		if (desc != null)
-			return SequenceDiagramFreeformLayoutProvider.TEST_DESCRIPTION_DIAGRAM_ID.equals(desc.getName());
+//		if (desc != null)
+//			return SequenceDiagramFreeformLayoutProvider.TEST_DESCRIPTION_DIAGRAM_ID.equals(desc.getName());
 		return false;
 	}
 
@@ -79,13 +79,8 @@ class RefreshExtension implements IRefreshExtension {
 		
 		//GMF helper will fail to map view to edit-part if some other editor is active
 		final IWorkbenchPage page = editor.getSite().getPage();
-		page.getWorkbenchWindow().getShell().getDisplay().syncExec(new Runnable() {
-			@Override
-			public void run() {
-				page.activate(editor);
-			}
-		});
-		dPart.getDiagramEditDomain().getDiagramCommandStack().execute(command);
+		if (editor.equals(page.getActiveEditor()))
+			dPart.getDiagramEditDomain().getDiagramCommandStack().execute(command);
 		
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/SequenceDiagramFreeformLayoutProvider.java b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/SequenceDiagramFreeformLayoutProvider.java
index cb9b0d35c9a7251e2379468e72b42939986595bb..2fd6a65741f3abc32d2a091979a001ad23ca7529 100644
--- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/SequenceDiagramFreeformLayoutProvider.java
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/layout/SequenceDiagramFreeformLayoutProvider.java
@@ -27,14 +27,15 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
 import org.eclipse.gmf.runtime.diagram.ui.requests.ZOrderRequest;
 import org.eclipse.gmf.runtime.diagram.ui.services.layout.AbstractLayoutEditPartProvider;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramUtil;
+import org.eclipse.sirius.diagram.description.DiagramDescription;
 import org.eclipse.sirius.diagram.ui.edit.api.part.IDDiagramEditPart;
+import org.eclipse.sirius.diagram.ui.tools.api.layout.provider.DefaultLayoutProvider;
 import org.eclipse.sirius.diagram.ui.tools.api.layout.provider.LayoutProvider;
 import org.eclipse.sirius.ext.base.Option;
 import org.eclipse.sirius.viewpoint.DMappingBased;
 import org.eclipse.sirius.viewpoint.DSemanticDecorator;
-import org.eclipse.sirius.viewpoint.DView;
 import org.eclipse.sirius.viewpoint.description.RepresentationElementMapping;
+import org.eclipse.sirius.viewpoint.description.Viewpoint;
 import org.etsi.mts.tdl.ComponentInstance;
 import org.etsi.mts.tdl.Connection;
 import org.etsi.mts.tdl.GateReference;
@@ -44,7 +45,7 @@ import org.etsi.mts.tdl.graphical.sirius.part.Util;
 
 public class SequenceDiagramFreeformLayoutProvider implements LayoutProvider {
 
-	private static final String VIEWPOINT_ID = "org.etsi.mts.tdl";
+	public static final String VIEWPOINT_ID = "org.etsi.mts.tdl";
 	public static final String TEST_DESCRIPTION_DIAGRAM_ID = "TestDescriptionDiagram";
 
 	public static final String TIME_LABEL_MAPPING_ID = "timeLabel",
@@ -53,24 +54,17 @@ public class SequenceDiagramFreeformLayoutProvider implements LayoutProvider {
 			COMPONENT_INSTANCE_MAPPING_ID = "componentInstance",
 			COMBINED_BEHAVIOUR_MAPPING_ID = "combinedBehaviour",
 			BLOCK_MAPPING_ID = "block";
+	
+	private SequenceFreeformLayoutEditPartProvider layoutProvider = new SequenceFreeformLayoutEditPartProvider();
 
 	@Override
 	public boolean provides(IGraphicalEditPart container) {
-		if (container instanceof IDDiagramEditPart) {
-			Option<DDiagram> diagram = ((IDDiagramEditPart) container).resolveDDiagram();
-			if (diagram.some()) {
-				DView repContainer = SiriusDiagramUtil.findRepresentationContainer(diagram.get());
-//				if (VIEWPOINT_ID.equals(repContainer.getViewpoint().getName()) &&
-//						TEST_DESCRIPTION_DIAGRAM_ID.equals(diagram.get().getDescription().getName()))
-//					return true;
-			}
-		}
-		return false;
+		return layoutProvider.provides(container);
 	}
 
 	@Override
 	public AbstractLayoutEditPartProvider getLayoutNodeProvider(IGraphicalEditPart container) {
-		return new SequenceFreeformLayoutEditPartProvider();
+		return layoutProvider;
 	}
 
 	@Override
@@ -92,12 +86,51 @@ public class SequenceDiagramFreeformLayoutProvider implements LayoutProvider {
 class SequenceFreeformLayoutEditPartProvider extends TdlAbstractLayoutEditPartProvider {
 	
 	private static final int MARGIN = 20;
+	
+	private boolean defaultLayout = false;
+
+	public boolean provides(IGraphicalEditPart container) {
+		if (defaultLayout)
+			return false;
+		if (container instanceof IDDiagramEditPart) {
+			Option<DDiagram> diagram = ((IDDiagramEditPart) container).resolveDDiagram();
+			if (diagram.some()) {
+				DDiagram d = diagram.get();
+				DiagramDescription dDesc = d.getDescription();
+				Viewpoint vp = (Viewpoint) dDesc.eContainer();
+				if (SequenceDiagramFreeformLayoutProvider.VIEWPOINT_ID.equals(vp.getName()) &&
+						SequenceDiagramFreeformLayoutProvider.TEST_DESCRIPTION_DIAGRAM_ID.equals(dDesc.getName()))
+					return true;
+			}
+		}
+		return false;
+	}
 
 	@Override
 	public Command layoutEditParts(List selectedObjects, IAdaptable layoutHint) {
 		
+		Command defaultCommand = null;
+		if (!defaultLayout) {
+			try {
+				defaultLayout = true;
+				
+				EditPart editPart = (EditPart) selectedObjects.get(0);
+				while (!(editPart instanceof IDDiagramEditPart))
+					editPart = (EditPart) editPart.getParent();
+
+				DefaultLayoutProvider defaultProvider = new DefaultLayoutProvider();
+				defaultCommand = defaultProvider.layoutEditParts((IGraphicalEditPart)editPart, layoutHint);
+				
+			} finally {
+				defaultLayout = false;
+			}
+		}
+		
 		CompoundCommand cc = new CompoundCommand();
 		
+		if (defaultCommand != null)
+			cc.add(defaultCommand);
+		
 		Map<IGraphicalEditPart, List<Rectangle>> attachmentLocations = new Hashtable<IGraphicalEditPart, List<Rectangle>>();
 
         double scale = 0;
@@ -118,8 +151,8 @@ class SequenceFreeformLayoutEditPartProvider extends TdlAbstractLayoutEditPartPr
 				continue;
 			RepresentationElementMapping mapping = ((DMappingBased)dElement).getMapping();
 			
-			if (mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_CONSTRAINT_MAPPING_ID) ||
-					mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_LABEL_MAPPING_ID)) {
+			if (mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_CONSTRAINT_MAPPING_ID)
+					|| mapping.getName().equals(SequenceDiagramFreeformLayoutProvider.TIME_LABEL_MAPPING_ID)) {
 				
 				IGraphicalEditPart anchorEditPart = (IGraphicalEditPart) ((ConnectionEditPart) ((GraphicalEditPart) editPart)
 						.getTargetConnections().get(0)).getSource();
@@ -207,7 +240,8 @@ class SequenceFreeformLayoutEditPartProvider extends TdlAbstractLayoutEditPartPr
 				Dimension size = f.getPreferredSize().getCopy();
 				Rectangle bounds = f.getBounds();
 				Dimension resizeDelta = size.getExpanded(-bounds.width, -bounds.height);
-				resizeDelta.width = 0;				
+				resizeDelta.width = 0;
+				resizeDelta.height = Math.max(resizeDelta.height, 0);
 
 				resizeDelta.width *= scale;
 				resizeDelta.height *= scale;
diff --git a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/part/InteractionUseConfiguringEditPart.java b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/part/InteractionUseConfiguringEditPart.java
index 82717e3e06d103aea99c3a8ac04d9d3357f2af97..5b690fa41fda298669bdf6aa2bc442c581c5181d 100644
--- a/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/part/InteractionUseConfiguringEditPart.java
+++ b/plugins/org.etsi.mts.tdl.graphical.viewpoint/src/org/etsi/mts/tdl/graphical/sirius/part/InteractionUseConfiguringEditPart.java
@@ -94,8 +94,10 @@ public class InteractionUseConfiguringEditPart extends AbstractNotSelectableShap
 					if (move) {
 						Rectangle rect = new Rectangle(0, y, size.width , size.height);
 						rect.width = width;
-						f.setBounds(rect);
-						f.invalidateTree();
+						if (!rect.equals(f.getBounds())) {
+							f.setBounds(rect);
+							f.invalidateTree();
+						}
 					}
 					
 					y += size.height;
diff --git a/plugins/org.etsi.mts.tdl.model/model/tdl.ecore b/plugins/org.etsi.mts.tdl.model/model/tdl.ecore
index 955229a5aa0dd895321f0e968ce34bb70fa32350..5bdf191c90715419e7401be5bdb78b5feb824952 100644
--- a/plugins/org.etsi.mts.tdl.model/model/tdl.ecore
+++ b/plugins/org.etsi.mts.tdl.model/model/tdl.ecore
@@ -223,7 +223,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Parameter" abstract="true" eSuperTypes="#//Element">
+  <eClassifiers xsi:type="ecore:EClass" name="Parameter" abstract="true" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataUse.&lt;/p>"/>
     </eAnnotations>
@@ -315,13 +315,7 @@
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="reduction" upperBound="-1"
-        eType="#//Member">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataUse.&lt;/p>"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="collectionIndex" ordered="false"
-        upperBound="-1" eType="#//DataUse" containment="true">
+        eType="#//MemberReference" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataUse.&lt;/p>"/>
       </eAnnotations>
@@ -421,46 +415,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Procedure" eSuperTypes="#//DataType">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataDefinition.&lt;/p>"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//ProcedureParameter" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataDefinition.&lt;/p>"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProcedureParameter" eSuperTypes="#//Parameter">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataDefinition.&lt;/p>"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//ParameterKind">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataDefinition.&lt;/p>"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="ParameterKind">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataDefinition.&lt;/p>"/>
-    </eAnnotations>
-    <eLiterals name="IN"/>
-    <eLiterals name="OUT" value="1"/>
-    <eLiterals name="EXCEPTION" value="2"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CollectionDataInstance" eSuperTypes="#//DataInstance">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataDefinition.&lt;/p>"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="member" ordered="false"
-        upperBound="-1" eType="#//StaticDataUse" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataDefinition.&lt;/p>"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="VariableUse" eSuperTypes="#//DynamicDataUse">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataUse.&lt;/p>"/>
@@ -822,8 +776,8 @@
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::CombinedBehaviour.&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="guard" eType="#//DataUse"
-        containment="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="guard" upperBound="-1"
+        eType="#//LocalExpression" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::CombinedBehaviour.&lt;/p>"/>
       </eAnnotations>
@@ -845,11 +799,6 @@
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::CombinedBehaviour.&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="scope" eType="#//ComponentInstance">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::CombinedBehaviour.&lt;/p>"/>
-      </eAnnotations>
-    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PeriodicBehaviour" eSuperTypes="#//Behaviour">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -862,7 +811,7 @@
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="period" lowerBound="1"
-        eType="#//DataUse" containment="true">
+        upperBound="-1" eType="#//LocalExpression" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::CombinedBehaviour.&lt;/p>"/>
       </eAnnotations>
@@ -912,7 +861,7 @@
       <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::CombinedBehaviour.&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="numIteration" lowerBound="1"
-        eType="#//DataUse" containment="true">
+        upperBound="-1" eType="#//LocalExpression" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::CombinedBehaviour.&lt;/p>"/>
       </eAnnotations>
@@ -966,7 +915,7 @@
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
-        upperBound="-1" eType="#//Variable">
+        eType="#//Variable">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::CombinedBehaviour.&lt;/p>"/>
       </eAnnotations>
@@ -999,11 +948,6 @@
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="scope" eType="#//ComponentInstance">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
-      </eAnnotations>
-    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Stop" eSuperTypes="#//AtomicBehaviour">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -1113,31 +1057,20 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Target" containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="argument" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//DataUse" containment="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceGate" lowerBound="1"
+        eType="#//GateReference">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProcedureCall" eSuperTypes="#//Interaction">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="procedure" lowerBound="1"
-        eType="#//Procedure">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//Target" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
-        eType="#//Target" containment="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="argument" ordered="false"
+        lowerBound="1" eType="#//DataUse" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
       </eAnnotations>
@@ -1153,11 +1086,40 @@
         <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceGate" lowerBound="1"
-        eType="#//GateReference">
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PredefinedFunction" eSuperTypes="#//NamedElement">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataDefinition.&lt;/p>"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="returnType" eType="#//DataType">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::AtomicBehaviour.&lt;/p>"/>
+        <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataDefinition.&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="MemberReference" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataUse.&lt;/p>"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="member" eType="#//Member"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="collectionIndex" eType="#//DataUse"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PredefinedFunctionCall" eSuperTypes="#//DynamicDataUse">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::Data::DataUse.&lt;/p>"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
+        eType="#//PredefinedFunction"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="actualParameters" upperBound="-1"
+        eType="#//DataUse" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LocalExpression" eSuperTypes="#//Element">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="&lt;p>From package TestDescriptionLanguage::TDL_MetaModel::TestBehaviour::CombinedBehaviour.&lt;/p>"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
+        eType="#//DataUse" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="scope" eType="#//ComponentInstance"/>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/plugins/org.etsi.mts.tdl.model/model/tdl.genmodel b/plugins/org.etsi.mts.tdl.model/model/tdl.genmodel
index c60a0e2f00ac1a11909981a600ee6a4af3b3b28b..4430a609a69d596c94ee8afd94a4b03c9194d35a 100644
--- a/plugins/org.etsi.mts.tdl.model/model/tdl.genmodel
+++ b/plugins/org.etsi.mts.tdl.model/model/tdl.genmodel
@@ -122,11 +122,6 @@
       <genEnumLiterals ecoreEnumLiteral="tdl.ecore#//UnassignedMemberTreatment/AnyValue"/>
       <genEnumLiterals ecoreEnumLiteral="tdl.ecore#//UnassignedMemberTreatment/AnyValueOrOmit"/>
     </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="tdl.ecore#//ParameterKind">
-      <genEnumLiterals ecoreEnumLiteral="tdl.ecore#//ParameterKind/IN"/>
-      <genEnumLiterals ecoreEnumLiteral="tdl.ecore#//ParameterKind/OUT"/>
-      <genEnumLiterals ecoreEnumLiteral="tdl.ecore#//ParameterKind/EXCEPTION"/>
-    </genEnums>
     <genEnums typeSafeEnumCompatible="false" ecoreEnum="tdl.ecore#//ComponentInstanceRole">
       <genEnumLiterals ecoreEnumLiteral="tdl.ecore#//ComponentInstanceRole/SUT"/>
       <genEnumLiterals ecoreEnumLiteral="tdl.ecore#//ComponentInstanceRole/Tester"/>
@@ -204,7 +199,6 @@
     <genClasses image="false" ecoreClass="tdl.ecore#//DataUse">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//DataUse/argument"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//DataUse/reduction"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//DataUse/collectionIndex"/>
     </genClasses>
     <genClasses ecoreClass="tdl.ecore#//ParameterBinding">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//ParameterBinding/dataUse"/>
@@ -228,15 +222,6 @@
     <genClasses ecoreClass="tdl.ecore#//FunctionCall">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//FunctionCall/function"/>
     </genClasses>
-    <genClasses ecoreClass="tdl.ecore#//Procedure">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//Procedure/parameter"/>
-    </genClasses>
-    <genClasses ecoreClass="tdl.ecore#//ProcedureParameter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tdl.ecore#//ProcedureParameter/kind"/>
-    </genClasses>
-    <genClasses ecoreClass="tdl.ecore#//CollectionDataInstance">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//CollectionDataInstance/member"/>
-    </genClasses>
     <genClasses ecoreClass="tdl.ecore#//VariableUse">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//VariableUse/componentInstance"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//VariableUse/variable"/>
@@ -328,7 +313,6 @@
     <genClasses image="false" ecoreClass="tdl.ecore#//CombinedBehaviour">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//CombinedBehaviour/periodic"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//CombinedBehaviour/exceptional"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//CombinedBehaviour/scope"/>
     </genClasses>
     <genClasses ecoreClass="tdl.ecore#//PeriodicBehaviour">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//PeriodicBehaviour/block"/>
@@ -364,7 +348,6 @@
     <genClasses ecoreClass="tdl.ecore#//Assertion">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//Assertion/otherwise"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//Assertion/condition"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//Assertion/scope"/>
     </genClasses>
     <genClasses ecoreClass="tdl.ecore#//Stop"/>
     <genClasses ecoreClass="tdl.ecore#//Break"/>
@@ -392,16 +375,27 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//ComponentInstanceBinding/actualComponent"/>
     </genClasses>
     <genClasses ecoreClass="tdl.ecore#//Interaction">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//Interaction/sourceGate"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//Interaction/target"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//Interaction/argument"/>
     </genClasses>
-    <genClasses ecoreClass="tdl.ecore#//ProcedureCall">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//ProcedureCall/procedure"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//ProcedureCall/source"/>
-    </genClasses>
     <genClasses ecoreClass="tdl.ecore#//Message">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tdl.ecore#//Message/isTrigger"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//Message/sourceGate"/>
+    </genClasses>
+    <genClasses ecoreClass="tdl.ecore#//PredefinedFunction">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//PredefinedFunction/returnType"/>
+    </genClasses>
+    <genClasses ecoreClass="tdl.ecore#//MemberReference">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//MemberReference/member"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//MemberReference/collectionIndex"/>
+    </genClasses>
+    <genClasses ecoreClass="tdl.ecore#//PredefinedFunctionCall">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//PredefinedFunctionCall/function"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//PredefinedFunctionCall/actualParameters"/>
+    </genClasses>
+    <genClasses ecoreClass="tdl.ecore#//LocalExpression">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//LocalExpression/expression"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//LocalExpression/scope"/>
     </genClasses>
   </genPackages>
 </genmodel:GenModel>