diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext
index e414476a29fb8e5b8fddfde8a0b58afc278a55b3..90d32c9103717e5d9e19afdcdf6593e08100854d 100644
--- a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext
@@ -1,5 +1,5 @@
 // automatically generated by Xtext
-grammar edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage with org.eclipse.xtext.common.Terminals
+grammar org.xtext.example.mydsl.Temp with org.eclipse.xtext.common.Terminals
 
 import "platform:/resource/edu.kit.ipd.descartes.mm.adaptation/model/adaptation.ecore"
 import "http://www.eclipse.org/emf/2002/Ecore" as ecore
@@ -12,8 +12,8 @@ AdaptationProcess returns AdaptationProcess:
 	id=EString
 	'{'
 		'name' name=EString
-		'actions' '{' actions+=Action ( "," actions+=Action)* '}'
 		'tactics' '{' tactics+=Tactic ( "," tactics+=Tactic)* '}' 
+		'actions' '{' actions+=Action ( "," actions+=Action)* '}' 
 		'strategies' '{' strategies+=Strategy ( "," strategies+=Strategy)* '}' 
 		('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}' )?
 		'goal' goal=OverallGoal
@@ -32,10 +32,12 @@ AdaptationPoint returns adaptationpoints::AdaptationPoint:
 
 
 
+
 AbstractControlFlowElement returns AbstractControlFlowElement:
 	StartAction | StopAction | LoopAction | BranchAction | ActionReference;
 
 
+
 VariationType returns adaptationpoints::VariationType:
 	PropertyRange | SetOfConfigurations;
 
@@ -46,7 +48,6 @@ VariationType returns adaptationpoints::VariationType:
 
 
 
-
 EString returns ecore::EString:
 	STRING | ID;
 
@@ -65,10 +66,10 @@ Action returns Action:
 	id=EString
 	'{'
 		'name' name=EString
-		'operationType' operationType=OperationType
 		('outputParam' outputParam=[Parameter|EString])?
 		('inputParams' '(' inputParams+=[Parameter|EString] ( "," inputParams+=[Parameter|EString])* ')' )?
 		'referredAdaptationPoint' referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString]
+		'adaptationActionOperation' adaptationActionOperation=AdaptationActionOperation
 	'}';
 
 Strategy returns Strategy:
@@ -139,7 +140,9 @@ BranchAction returns BranchAction:
 		('condition' condition=EString)?
 		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
 		('successor' successor=[AbstractControlFlowElement|EString])?
-		'branches' '{' branches+=AdaptationPlan ( "," branches+=AdaptationPlan)* '}' 
+		('context' context=[core::Entity|EString])?
+		'conditionTrueBranch' conditionTrueBranch=AdaptationPlan
+		'conditionFalseBranch' conditionFalseBranch=AdaptationPlan
 	'}';
 
 ActionReference returns ActionReference:
@@ -154,8 +157,12 @@ ActionReference returns ActionReference:
 EInt returns ecore::EInt:
 	'-'? INT;
 
-OperationType returns adaptationpoints::OperationType:
-	'OperationType' /* TODO: implement this rule and an appropriate IValueConverter */;
+AdaptationActionOperation returns AdaptationActionOperation:
+	'AdaptationActionOperation'
+	'{'
+		'adaptationOperationScope' adaptationOperationScope=AdaptationScope
+		'adaptationOperationDirection' adaptationOperationDirection=AdaptationDirection
+	'}';
 
 ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange:
 	'ModelVariableConfigurationRange'
@@ -189,20 +196,22 @@ PropertyRange returns adaptationpoints::PropertyRange:
 SetOfConfigurations returns adaptationpoints::SetOfConfigurations:
 	'SetOfConfigurations'
 	'{'
-		('variants' '(' variants+=[ecore::EObject|EString] ( "," variants+=[ecore::EObject|EString])* ')' )?
+		('variants' '(' variants+=[core::Entity|EString] ( "," variants+=[core::Entity|EString])* ')' )?
 		'valueConstraint' valueConstraint=OclConstraint
 	'}';
 
 OclConstraint returns adaptationpoints::OclConstraint:
 	'OclConstraint'
+	name=EString
 	'{'
 		'oclString' oclString=EString
 	'}';
 
-EObject returns ecore::EObject:
-	{ecore::EObject}
-	'EObject'
-	;
+AdaptationScope returns AdaptationScope:
+	'AdaptationScope' /* TODO: implement this rule and an appropriate IValueConverter */;
+
+AdaptationDirection returns AdaptationDirection:
+	'AdaptationDirection' /* TODO: implement this rule and an appropriate IValueConverter */;
 
 Objective returns Objective:
 	'Objective'
@@ -265,9 +274,18 @@ MetricValue returns perfdatarepo::MetricValue:
 	'{'
 		'name' name=EString
 		'value' value=EDouble
+		'measuredEntity' measuredEntity=[perfdatarepo::MeasuredEntity|EString]
 		'metricType' metricType=[perfdatarepo::MetricType|EString]
 	'}';
 
+MeasuredEntity returns perfdatarepo::MeasuredEntity:
+	'MeasuredEntity'
+	id=EString
+	'{'
+		'name' name=EString
+		'metricTypes' '(' metricTypes+=[perfdatarepo::MetricType|EString] ( "," metricTypes+=[perfdatarepo::MetricType|EString])* ')' 
+	'}';
+
 MetricType returns perfdatarepo::MetricType:
 	'MetricType'
 	id=EString