diff --git a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext
index d4691c9318c57abc05177d1a58592b3db9bebf0b..928e39eba329ef3dd0590afd85fd8ff2bc5c5132 100644
--- a/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext
+++ b/plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext
@@ -59,7 +59,7 @@ fragment AnnotationCommentFragment returns tdl::Element:
 ;
 
 fragment NameFragment returns tdl::Element:
-    'Name:' name=Identifier
+    'Name' ':' name=Identifier
 ;
 
 fragment WithCommentFragment returns tdl::Element:
@@ -109,8 +109,8 @@ TestObjective returns tdl::TestObjective:
     AnnotationCommentFragment
     'Objective' name=Identifier
     (BEGIN
-        ('Description:' description=EString)?
-        ('References:' objectiveURI+=EString (',' objectiveURI+=EString)*)?
+        ('Description' ':' description=EString)?
+        ('References' ':' objectiveURI+=EString (',' objectiveURI+=EString)*)?
     END)?
 ;
 
@@ -667,7 +667,7 @@ fragment TDPrefixFragment returns tdl::TestDescription:
 ;
 
 fragment TDObjectiveFragment returns tdl::TestDescription:
-    'Objective:' testObjective+=[tdl::TestObjective|Identifier] 
+    'Objective' ':' testObjective+=[tdl::TestObjective|Identifier] 
     ( ',' testObjective+=[tdl::TestObjective|Identifier])*
 ;
 
@@ -696,13 +696,17 @@ fragment WithBehaviourFragment returns tdl::Behaviour:
 ;
 
 fragment ObjectiveFragment returns tdl::Behaviour:
-    'Objective:' testObjective+=[tdl::TestObjective|Identifier] ( ',' testObjective+=[tdl::TestObjective|Identifier])*
+    'Objective' ':' testObjective+=[tdl::TestObjective|Identifier] ( ',' testObjective+=[tdl::TestObjective|Identifier])*
 ;
 
 
 Block returns tdl::Block:
     //NOTE: No annotations or comments
-    ('[' guard+=LocalExpression ( ',' guard+=LocalExpression)* ']' )?
+    ('[' 
+//    	('@' annotation+=PICSAnnotation)? //TODO: Exception for PICS? seems not enough
+		AnnotationFragment
+    	guard+=LocalExpression ( ',' guard+=LocalExpression)* 
+	']')?
     BEGIN
         behaviour+=Behaviour+ 
     END
@@ -1046,7 +1050,8 @@ AIdentifier:
     | FinalBlockName 
     | TestPurposeDescriptionName
     | When
-    | Then    
+    | Then
+    | PICSName    
 ;
 
 GRIdentifier:
@@ -1075,7 +1080,7 @@ LParen:
 ;
 
 RParen:
-    ')'
+	')'
 ;
 
 
@@ -1128,9 +1133,17 @@ Event returns to::Event:
 
 PICS returns to::PICS:
     AnnotationCommentFragment
-    'PICS' name=Identifier
+    PICSName name=Identifier
 ;
 
+//PICS as data instance
+//PICS returns tdl::SimpleDataInstance:
+//    AnnotationCommentFragment
+//    dataType=[tdl::DataType|PICSName] 
+//    name=Identifier
+//;
+
+
 //# Comments as Qualifiers
 
 //DONE: Group by context? -> no
@@ -1253,6 +1266,10 @@ ThenAnnotation returns tdl::Annotation:
     key=[tdl::AnnotationType|Then]
 ;
 
+PICSAnnotation returns tdl::Annotation:
+    key=[tdl::AnnotationType|PICSName]
+;
+
 
 //## Element: Abstract 
 fragment InitialConditionsFragment returns tdl::Element:
@@ -1288,10 +1305,11 @@ fragment ElementAndOrPrefix returns tdl::Element:
 StructuredTestObjective returns to::StructuredTestObjective:
     'Test' 'Purpose' name=Identifier
     BEGIN
-        ('Objective:' description=EString)? 
-        ('Reference:' objectiveURI+=EString (',' objectiveURI+=EString )*)?
-        ('Configuration:' configuration=[tdl::TestConfiguration|Identifier])? 
-        ('PICS:' picsReference+=FirstPICSReference (picsReference+=PICSReference)*)? 
+        ('Objective' ':' description=EString)? 
+        ('Reference' ':' objectiveURI+=EString (',' objectiveURI+=EString )*)?
+        ('Configuration' ':' configuration=[tdl::TestConfiguration|Identifier])? 
+        ('PICS' ':' picsReference+=FirstPICSReference (picsReference+=PICSReference)*)?
+        //('Guard:' guard+=DataUse)? //Substitute for PICS eventually?
         (initialConditions=InitialConditions)?
         (expectedBehaviour=ExpectedBehaviour)?
         (finalConditions=FinalConditions)?
@@ -1661,9 +1679,10 @@ EntityBinding returns to::EntityBinding:
 Variant returns to::TestObjectiveVariant:
     'Variant' name=Identifier
     BEGIN
-        ('Objective:' description=EString)? 
-        ('Reference:' objectiveURI+=EString (',' objectiveURI+=EString)*)?  
-        ('PICS:' picsReference+=FirstPICSReference (picsReference+=PICSReference)*)?
+        ('Objective' ':' description=EString)? 
+        ('Reference' ':' objectiveURI+=EString (',' objectiveURI+=EString)*)?  
+        ('PICS' ':' picsReference+=FirstPICSReference (picsReference+=PICSReference)*)?
+        //('Guard:' guard+=DataUse)? //Substitute for PICS eventually? 
         ('Bindings' 
             BEGIN
                 bindings+=VariantBinding (',' bindings+=VariantBinding)*
@@ -1715,7 +1734,7 @@ TestPurposeDescription returns tdl::TestDescription:
     //TODO: Reference, PICS?, Objective reference vs Objective inline (all annotations?) or simply defer to objective
     BEGIN
         TDObjectiveFragment?
-        'Configuration:' testConfiguration=[tdl::TestConfiguration|Identifier]
+        'Configuration' ':' testConfiguration=[tdl::TestConfiguration|Identifier]
         (behaviourDescription=TPDBehaviourDescription)
     END
 ;
@@ -1725,6 +1744,7 @@ TPDBehaviourDescription returns tdl::BehaviourDescription:
 ;
 
 TPDCompoundBehaviour returns tdl::CompoundBehaviour:
+    //(annotation+=PICSAnnotation ':')?
     block=TPDBlock
 ;
 
@@ -1764,7 +1784,8 @@ ThenBehaviour returns tdl::CompoundBehaviour:
 
 TPDBlock returns tdl::Block:
     //NOTE: No guard -> guard is PICS
-    ('PICS:' guard+=LocalExpression)?
+    //TODO: annotation has to be pulled up? or pushed down?
+    (annotation+=PICSAnnotation ':' guard+=LocalExpression)?
     (behaviour+=InitialConditionsBehaviour)? 
     (behaviour+=ExpectedBehaviourBehaviour)? 
     (behaviour+=FinalConditionsBehaviour)? 
@@ -1888,6 +1909,10 @@ TestPurposeDescriptionName:
     'Test' 'Purpose' 'Description'
 ;
 
+PICSName:
+    'PICS'
+;
+
 When:
     'when'
 ;