diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.mm.applicationlevel.edit/META-INF/MANIFEST.MF
index 5c74c37fdfca5e8b6f31bf3889d9d486fc18773a..4aa5dd945b6a081f8e55f4206b68a89db9290179 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/META-INF/MANIFEST.MF
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/META-INF/MANIFEST.MF
@@ -20,5 +20,7 @@ Require-Bundle: org.eclipse.core.runtime,
  edu.kit.ipd.descartes.core;visibility:=reexport,
  edu.kit.ipd.descartes.core.edit;visibility:=reexport,
  edu.kit.ipd.descartes.identifier;visibility:=reexport,
- edu.kit.ipd.descartes.identifier.edit;visibility:=reexport
+ edu.kit.ipd.descartes.identifier.edit;visibility:=reexport,
+ edu.kit.ipd.descartes.mm.resourcelandscape;visibility:=reexport,
+ edu.kit.ipd.descartes.mm.resourcelandscape.edit;visibility:=reexport
 Bundle-ActivationPolicy: lazy
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateBoxedPDF_samples_ContinuousSample.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateBoxedPDF_samples_ContinuousSample.gif
new file mode 100644
index 0000000000000000000000000000000000000000..388fb52f1e2049dff174ff2a29e88a1d19c96cae
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateBoxedPDF_samples_ContinuousSample.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateCallParameter_scopeSet_ScopeSet.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateCallParameter_scopeSet_ScopeSet.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ed8ee387a3ce098b74d29d76ef4005710845f6ed
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateCallParameter_scopeSet_ScopeSet.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateControlFlowVariable_explicitDescription_RandomVariable.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateControlFlowVariable_explicitDescription_RandomVariable.gif
new file mode 100644
index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateControlFlowVariable_explicitDescription_RandomVariable.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateCorrelationRelationship_destinationComponentInstanceReference_ComponentInstanceReference.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateCorrelationRelationship_destinationComponentInstanceReference_ComponentInstanceReference.gif
new file mode 100644
index 0000000000000000000000000000000000000000..90a8446b93e673cf3e21a7b40e86559ba3e35fed
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateCorrelationRelationship_destinationComponentInstanceReference_ComponentInstanceReference.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_BinaryBooleanExpression.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_BinaryBooleanExpression.gif
new file mode 100644
index 0000000000000000000000000000000000000000..841cd276e7788a1a7994230d719a45af6a2b99b4
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_BinaryBooleanExpression.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_BooleanLiteral.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_BooleanLiteral.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6678f806946a78b5bda02d4f339724d4fd792d8c
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_BooleanLiteral.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_BoxedPDF.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_BoxedPDF.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2bcab8a03614b63044472de612bc36f82074150b
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_BoxedPDF.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Comparison.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Comparison.gif
new file mode 100644
index 0000000000000000000000000000000000000000..74497a786ce594f5a4114a19cb448cd63fcbb6aa
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Comparison.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_DoubleLiteral.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_DoubleLiteral.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ce1701a10bdf6a576719ae7252f8894d83302136
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_DoubleLiteral.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_ExponentialDistribution.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_ExponentialDistribution.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5cd8911d56a0f52a97021644bf3529931d5d4ee8
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_ExponentialDistribution.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_FormalParameter.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_FormalParameter.gif
new file mode 100644
index 0000000000000000000000000000000000000000..16e695e34119d5cfb541d0c17bd25e312a5c5243
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_FormalParameter.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Function.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Function.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2bcab8a03614b63044472de612bc36f82074150b
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Function.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_IfElseExpression.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_IfElseExpression.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9ff2342489cd049bc6ec22b0b193ccebb5bc7821
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_IfElseExpression.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_IntLiteral.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_IntLiteral.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fe10b8e7be48682bff854c1ea3c88372d2107ac0
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_IntLiteral.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_NormalDistribution.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_NormalDistribution.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c31e7a2bca96a72adbfc36bbcfb3e5ef83866ace
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_NormalDistribution.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Power.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Power.gif
new file mode 100644
index 0000000000000000000000000000000000000000..74497a786ce594f5a4114a19cb448cd63fcbb6aa
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Power.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_ProbabilityMassFunction.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_ProbabilityMassFunction.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fcbb6405902ee778c70618c569442e794a8f1691
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_ProbabilityMassFunction.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Product.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Product.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fe10b8e7be48682bff854c1ea3c88372d2107ac0
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Product.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Term.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Term.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9975318d32d006b4fdbebe65db4de1d7c0d6ca68
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_Term.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_UnaryBooleanExpression.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_UnaryBooleanExpression.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1c0d080785c940302e6106e1ea8bf122d4ea11d9
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExplicitDescription_expression_UnaryBooleanExpression.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExternalCallAction_externalCall_ExternalCall.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExternalCallAction_externalCall_ExternalCall.gif
new file mode 100644
index 0000000000000000000000000000000000000000..027f1b702718a54abdad340f25abd1f6f0f8419f
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateExternalCallAction_externalCall_ExternalCall.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateLoopAction_loopIterationCount_LoopIterationCount.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateLoopAction_loopIterationCount_LoopIterationCount.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b71213d94286ac9d3bc5f69abad09e809000e962
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateLoopAction_loopIterationCount_LoopIterationCount.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateModelVariable_explicitDescription_ExplicitDescription.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateModelVariable_explicitDescription_ExplicitDescription.gif
new file mode 100644
index 0000000000000000000000000000000000000000..063a8534d3e95cf65b984bb4bbc2714b1433fc7c
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateModelVariable_explicitDescription_ExplicitDescription.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateModelVariable_explicitDescription_RandomVariable.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateModelVariable_explicitDescription_RandomVariable.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1b2d814f92e6714ec4830c22115f64fb7a9f2d9d
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateModelVariable_explicitDescription_RandomVariable.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateRelationship_characterization_Characterization.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateRelationship_characterization_Characterization.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ae50bcb82ce0e976e09ab2201d7d61a4f7f5af2a
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateRelationship_characterization_Characterization.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateRelationship_explicitDescription_ExplicitDescription.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateRelationship_explicitDescription_ExplicitDescription.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c0805c47e8f1d91341ea911d3911dfd5a6d5855b
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateRelationship_explicitDescription_ExplicitDescription.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateRepository_datatypes_PrimitiveDataType.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateRepository_datatypes_PrimitiveDataType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..064dd753f37e2cb898d8ce99bbaf2b968d7d6529
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateRepository_datatypes_PrimitiveDataType.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateResourceDemand_explicitDescription_RandomVariable.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateResourceDemand_explicitDescription_RandomVariable.gif
new file mode 100644
index 0000000000000000000000000000000000000000..12d45aab7d83c0303e1a239db655e80d4a3872e2
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateResourceDemand_explicitDescription_RandomVariable.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateResponseTime_explicitDescription_RandomVariable.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateResponseTime_explicitDescription_RandomVariable.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fcfec345ba6a1d1598e5ae691736c4a5740a9df1
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateResponseTime_explicitDescription_RandomVariable.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateServiceBehaviorAbstraction_influencingParameter_ShadowParameter.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateServiceBehaviorAbstraction_influencingParameter_ShadowParameter.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e050d2d87343dbe95b13b8aec73571759a357b8b
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/ctool16/CreateServiceBehaviorAbstraction_influencingParameter_ShadowParameter.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/ExplicitDescription.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/ExplicitDescription.gif
new file mode 100644
index 0000000000000000000000000000000000000000..35ef84e20e26f1cef1dcd7ae80d192fd40472368
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/ExplicitDescription.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/LoopIterationCount.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/LoopIterationCount.gif
new file mode 100644
index 0000000000000000000000000000000000000000..33854e98c25a13543eb9477dc67b0baf87fc81aa
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/LoopIterationCount.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/PrimitiveDataType.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/PrimitiveDataType.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b1f8afa47661703c49bd5fa535dcb1342deb6fc4
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/PrimitiveDataType.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/Scope.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/Scope.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ed8747474012f8278002a9785026a1a40155b192
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/Scope.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/ShadowParameter.gif b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/ShadowParameter.gif
new file mode 100644
index 0000000000000000000000000000000000000000..89ad5da38ab3060f14ba925b1251bd5cb8454012
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.applicationlevel.edit/icons/full/obj16/ShadowParameter.gif differ
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/plugin.properties b/edu.kit.ipd.descartes.mm.applicationlevel.edit/plugin.properties
index bd23a016b524c078c48f1d5d35418bb09ea51558..e148a95d89a2614ecad3e356e14efc7d8df58a82 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/plugin.properties
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/plugin.properties
@@ -473,3 +473,43 @@ _UI_PrimitiveDataType_DOUBLE_literal = DOUBLE
 _UI_PrimitiveDataType_CHAR_literal = CHAR
 _UI_PrimitiveDataType_BYTE_literal = BYTE
 _UI_PrimitiveDataType_LONG_literal = LONG
+_UI_Scope_scope_feature = Scope
+_UI_ServiceInputParameter_providingRole_feature = Providing Role
+_UI_ResourceTypeRepository_type = Resource Type Repository
+_UI_ResourceType_type = Resource Type
+_UI_ProcessingResourceType_type = Processing Resource Type
+_UI_CommunicationLinkResourceType_type = Communication Link Resource Type
+_UI_PassiveResourceType_type = Passive Resource Type
+_UI_BoxedPDF_samples_feature = Samples
+_UI_Relationship_characterization_feature = Characterization
+_UI_ResourceDemand_resourceType_feature = Resource Type
+_UI_ResourceTypeRepository_resourceTypes_feature = Resource Types
+_UI_ResourceType_parentResourceRepository_feature = Parent Resource Repository
+_UI_ExplicitDescription_type = Explicit Description
+_UI_ShadowParameter_type = Shadow Parameter
+_UI_LoopIterationCount_type = Loop Iteration Count
+_UI_ExplicitDescription_specification_feature = Specification
+_UI_ExplicitDescription_expression_feature = Expression
+_UI_ModelVariable_characterization_feature = Characterization
+_UI_ModelVariable_explicitDescription_feature = Explicit Description
+_UI_ShadowParameter_name_feature = Name
+_UI_ShadowParameter_description_feature = Description
+_UI_Relationship_explicitDescription_feature = Explicit Description
+_UI_DependencyRelationship_destination_feature = Destination
+_UI_DependencyRelationship_sources_feature = Sources
+_UI_CorrelationRelationship_sources_feature = Sources
+_UI_CorrelationRelationship_destination_feature = Destination
+_UI_CorrelationRelationship_destinationComponentInstanceReference_feature = Destination Component Instance Reference
+_UI_CallParameter_scopeSet_feature = Scope Set
+_UI_BranchProbabilities_branchAction_feature = Branch Action
+_UI_LoopAction_loopIterationCount_feature = Loop Iteration Count
+_UI_LoopIterationCount_loopAction_feature = Loop Action
+_UI_ExternalCallAction_externalCall_feature = External Call
+_UI_ModelVariableCharacterizationType_EMPIRICAL_literal = EMPIRICAL
+_UI_ModelVariableCharacterizationType_EXPLICIT_literal = EXPLICIT
+_UI_ControlFlowVariable_characterization_feature = Characterization
+_UI_ControlFlowVariable_explicitDescription_feature = Explicit Description
+_UI_ResourceDemand_characterization_feature = Characterization
+_UI_ResourceDemand_explicitDescription_feature = Explicit Description
+_UI_ResponseTime_characterization_feature = Characterization
+_UI_ResponseTime_explicitDescription_feature = Explicit Description
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/BinaryBooleanExpressionItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/BinaryBooleanExpressionItemProvider.java
index ccd5c297441d715976ab8ece84ffe82b6580c28f..00eac409e15f76033ad05caae7cd748b79a3239a 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/BinaryBooleanExpressionItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/BinaryBooleanExpressionItemProvider.java
@@ -193,52 +193,52 @@ public class BinaryBooleanExpressionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__LEFT,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -273,52 +273,52 @@ public class BinaryBooleanExpressionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.BINARY_BOOLEAN_EXPRESSION__RIGHT,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ComparisonItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ComparisonItemProvider.java
index dd67e7e648d35f630a33701945220fa01a33a0ab..d5b9440b6932027ed189d81870ad735cc9e658a1 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ComparisonItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ComparisonItemProvider.java
@@ -182,52 +182,52 @@ public class ComparisonItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__LEFT,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -262,52 +262,52 @@ public class ComparisonItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.COMPARISON__RIGHT,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CharacterizationItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ExplicitDescriptionItemProvider.java
similarity index 55%
rename from edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CharacterizationItemProvider.java
rename to edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ExplicitDescriptionItemProvider.java
index 151cd9a72438dde64da8120893cbfd8e31fab519..c9951b69707d9023a645576ecdd29fc9c9ef3fb1 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CharacterizationItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ExplicitDescriptionItemProvider.java
@@ -1,14 +1,12 @@
 /**
  * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT
  */
-package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider;
+package edu.kit.ipd.descartes.mm.applicationlevel.functions.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsFactory;
-
-import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Characterization;
-import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
-import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.RelationshipCharacterizationType;
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsPackage;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 
@@ -21,7 +19,6 @@ import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.ResourceLocator;
 
 import org.eclipse.emf.ecore.EStructuralFeature;
-
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -34,12 +31,12 @@ import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
- * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Characterization} object.
+ * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  * @generated
  */
-public class CharacterizationItemProvider
+public class ExplicitDescriptionItemProvider
 	extends ItemProviderAdapter
 	implements
 		IEditingDomainItemProvider,
@@ -53,7 +50,7 @@ public class CharacterizationItemProvider
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public CharacterizationItemProvider(AdapterFactory adapterFactory) {
+	public ExplicitDescriptionItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -68,25 +65,25 @@ public class CharacterizationItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addRelationshipCharacterizationTypePropertyDescriptor(object);
+			addSpecificationPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Relationship Characterization Type feature.
+	 * This adds a property descriptor for the Specification feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addRelationshipCharacterizationTypePropertyDescriptor(Object object) {
+	protected void addSpecificationPropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_Characterization_relationshipCharacterizationType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Characterization_relationshipCharacterizationType_feature", "_UI_Characterization_type"),
-				 ParameterdependenciesPackage.Literals.CHARACTERIZATION__RELATIONSHIP_CHARACTERIZATION_TYPE,
+				 getString("_UI_ExplicitDescription_specification_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ExplicitDescription_specification_feature", "_UI_ExplicitDescription_type"),
+				 FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__SPECIFICATION,
 				 true,
 				 false,
 				 false,
@@ -107,7 +104,7 @@ public class CharacterizationItemProvider
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(ParameterdependenciesPackage.Literals.CHARACTERIZATION__EXPLICIT_FUNCTION);
+			childrenFeatures.add(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION);
 		}
 		return childrenFeatures;
 	}
@@ -126,14 +123,14 @@ public class CharacterizationItemProvider
 	}
 
 	/**
-	 * This returns Characterization.gif.
+	 * This returns ExplicitDescription.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
 	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Characterization"));
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ExplicitDescription"));
 	}
 
 	/**
@@ -144,11 +141,10 @@ public class CharacterizationItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		RelationshipCharacterizationType labelValue = ((Characterization)object).getRelationshipCharacterizationType();
-		String label = labelValue == null ? null : labelValue.toString();
+		String label = ((ExplicitDescription)object).getSpecification();
 		return label == null || label.length() == 0 ?
-			getString("_UI_Characterization_type") :
-			getString("_UI_Characterization_type") + " " + label;
+			getString("_UI_ExplicitDescription_type") :
+			getString("_UI_ExplicitDescription_type") + " " + label;
 	}
 
 	/**
@@ -162,11 +158,11 @@ public class CharacterizationItemProvider
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(Characterization.class)) {
-			case ParameterdependenciesPackage.CHARACTERIZATION__RELATIONSHIP_CHARACTERIZATION_TYPE:
+		switch (notification.getFeatureID(ExplicitDescription.class)) {
+			case FunctionsPackage.EXPLICIT_DESCRIPTION__SPECIFICATION:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
-			case ParameterdependenciesPackage.CHARACTERIZATION__EXPLICIT_FUNCTION:
+			case FunctionsPackage.EXPLICIT_DESCRIPTION__EXPRESSION:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -186,8 +182,83 @@ public class CharacterizationItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ParameterdependenciesPackage.Literals.CHARACTERIZATION__EXPLICIT_FUNCTION,
-				 FunctionsFactory.eINSTANCE.createExplicitFunction()));
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createFunction()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createFormalParameter()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createComparison()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createTerm()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createProduct()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createPower()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createProbabilityMassFunction()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createBoxedPDF()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createNormalDistribution()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(FunctionsPackage.Literals.EXPLICIT_DESCRIPTION__EXPRESSION,
+				 FunctionsFactory.eINSTANCE.createExponentialDistribution()));
 	}
 
 	/**
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/FunctionItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/FunctionItemProvider.java
index 24f4567fbfceb966a6e9c100dcf827fbe46fed77..d678d7dfb3f1b9b88bcf5199d5c471ef7cde47fb 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/FunctionItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/FunctionItemProvider.java
@@ -189,52 +189,52 @@ public class FunctionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.FUNCTION__PARAMETERS,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/FunctionsItemProviderAdapterFactory.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/FunctionsItemProviderAdapterFactory.java
index 2140b9b0794d5900a4b71e5a87868d758bcd7212..9e16a92526c87a0184ae1eb65b365a735b142c4c 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/FunctionsItemProviderAdapterFactory.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/FunctionsItemProviderAdapterFactory.java
@@ -73,26 +73,26 @@ public class FunctionsItemProviderAdapterFactory extends FunctionsAdapterFactory
 	}
 
 	/**
-	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitFunction} instances.
+	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected ExplicitFunctionItemProvider explicitFunctionItemProvider;
+	protected ExplicitDescriptionItemProvider explicitDescriptionItemProvider;
 
 	/**
-	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitFunction}.
+	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
-	public Adapter createExplicitFunctionAdapter() {
-		if (explicitFunctionItemProvider == null) {
-			explicitFunctionItemProvider = new ExplicitFunctionItemProvider(this);
+	public Adapter createExplicitDescriptionAdapter() {
+		if (explicitDescriptionItemProvider == null) {
+			explicitDescriptionItemProvider = new ExplicitDescriptionItemProvider(this);
 		}
 
-		return explicitFunctionItemProvider;
+		return explicitDescriptionItemProvider;
 	}
 
 	/**
@@ -371,29 +371,6 @@ public class FunctionsItemProviderAdapterFactory extends FunctionsAdapterFactory
 		return powerItemProvider;
 	}
 
-	/**
-	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.functions.EmpiricalFunction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EmpiricalFunctionItemProvider empiricalFunctionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.functions.EmpiricalFunction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createEmpiricalFunctionAdapter() {
-		if (empiricalFunctionItemProvider == null) {
-			empiricalFunctionItemProvider = new EmpiricalFunctionItemProvider(this);
-		}
-
-		return empiricalFunctionItemProvider;
-	}
-
 	/**
 	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable} instances.
 	 * <!-- begin-user-doc -->
@@ -815,12 +792,9 @@ public class FunctionsItemProviderAdapterFactory extends FunctionsAdapterFactory
 	 * @generated
 	 */
 	public void dispose() {
-		if (explicitFunctionItemProvider != null) explicitFunctionItemProvider.dispose();
+		if (explicitDescriptionItemProvider != null) explicitDescriptionItemProvider.dispose();
 		if (functionItemProvider != null) functionItemProvider.dispose();
 		if (formalParameterItemProvider != null) formalParameterItemProvider.dispose();
-		if (booleanLiteralItemProvider != null) booleanLiteralItemProvider.dispose();
-		if (intLiteralItemProvider != null) intLiteralItemProvider.dispose();
-		if (doubleLiteralItemProvider != null) doubleLiteralItemProvider.dispose();
 		if (ifElseExpressionItemProvider != null) ifElseExpressionItemProvider.dispose();
 		if (binaryBooleanExpressionItemProvider != null) binaryBooleanExpressionItemProvider.dispose();
 		if (unaryBooleanExpressionItemProvider != null) unaryBooleanExpressionItemProvider.dispose();
@@ -828,8 +802,10 @@ public class FunctionsItemProviderAdapterFactory extends FunctionsAdapterFactory
 		if (termItemProvider != null) termItemProvider.dispose();
 		if (productItemProvider != null) productItemProvider.dispose();
 		if (powerItemProvider != null) powerItemProvider.dispose();
-		if (empiricalFunctionItemProvider != null) empiricalFunctionItemProvider.dispose();
 		if (randomVariableItemProvider != null) randomVariableItemProvider.dispose();
+		if (booleanLiteralItemProvider != null) booleanLiteralItemProvider.dispose();
+		if (intLiteralItemProvider != null) intLiteralItemProvider.dispose();
+		if (doubleLiteralItemProvider != null) doubleLiteralItemProvider.dispose();
 		if (probabilityMassFunctionItemProvider != null) probabilityMassFunctionItemProvider.dispose();
 		if (doubleSampleItemProvider != null) doubleSampleItemProvider.dispose();
 		if (intSampleItemProvider != null) intSampleItemProvider.dispose();
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/IfElseExpressionItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/IfElseExpressionItemProvider.java
index 2ea8fab7592be27a2842707d5d816ee7f9afcc91..ffa10d0d0aabc103330f582b32719f03c666e34c 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/IfElseExpressionItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/IfElseExpressionItemProvider.java
@@ -162,52 +162,52 @@ public class IfElseExpressionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__CONDITION,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -242,52 +242,52 @@ public class IfElseExpressionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__TRUE_EXP,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -322,52 +322,52 @@ public class IfElseExpressionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.IF_ELSE_EXPRESSION__FALSE_EXP,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/LiteralItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/LiteralItemProvider.java
index ff70ec262e4b0a68afb31946c32f97725248b852..bdc378a56ce3fc5b2abcd08a901138bc85ab7841 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/LiteralItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/LiteralItemProvider.java
@@ -24,7 +24,7 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
  * @generated
  */
 public class LiteralItemProvider
-	extends AtomItemProvider
+	extends ProbabilityFunctionItemProvider
 	implements
 		IEditingDomainItemProvider,
 		IStructuredItemContentProvider,
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/PowerItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/PowerItemProvider.java
index d080a898003f68aa4234dc9c2db18ca40bba1094..578d379bb823bf87dbf9516187ae948084792402 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/PowerItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/PowerItemProvider.java
@@ -149,52 +149,52 @@ public class PowerItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__BASE,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -229,52 +229,52 @@ public class PowerItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.POWER__EXPONENT,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ProductItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ProductItemProvider.java
index ab3ba51eb96b9dda7a7884b738714ec1977b636b..ae72ae71a3d5b3f5146c055c2c9af5bdeff619c0 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ProductItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ProductItemProvider.java
@@ -182,52 +182,52 @@ public class ProductItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__LEFT,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -262,52 +262,52 @@ public class ProductItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.PRODUCT__RIGHT,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/TermItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/TermItemProvider.java
index cefc607c3c6e0b5a07814ae8b84028571ca84fca..f2ddbd2325d1f9a9e45fb8a1eaae0a56cf20b6c4 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/TermItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/TermItemProvider.java
@@ -182,52 +182,52 @@ public class TermItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__LEFT,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -262,52 +262,52 @@ public class TermItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.TERM__RIGHT,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/UnaryBooleanExpressionItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/UnaryBooleanExpressionItemProvider.java
index 35125743c02a4ab66f5520310784b965a75fa212..035a8250b4da33dd3335bef7ccbf8746fca8c917 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/UnaryBooleanExpressionItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/UnaryBooleanExpressionItemProvider.java
@@ -158,52 +158,52 @@ public class UnaryBooleanExpressionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
+				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createIntLiteral()));
+				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
+				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createIfElseExpression()));
+				 FunctionsFactory.eINSTANCE.createComparison()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createBinaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createTerm()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createUnaryBooleanExpression()));
+				 FunctionsFactory.eINSTANCE.createProduct()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createComparison()));
+				 FunctionsFactory.eINSTANCE.createPower()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createTerm()));
+				 FunctionsFactory.eINSTANCE.createBooleanLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createProduct()));
+				 FunctionsFactory.eINSTANCE.createIntLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
 				(FunctionsPackage.Literals.UNARY_BOOLEAN_EXPRESSION__INNER,
-				 FunctionsFactory.eINSTANCE.createPower()));
+				 FunctionsFactory.eINSTANCE.createDoubleLiteral()));
 
 		newChildDescriptors.add
 			(createChildParameter
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CallParameterItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CallParameterItemProvider.java
index 65a8345bb515b473f48a146825659f2365b7923b..7e4b289c26ecdb1a2ae69e5e597df6d5f1bdfefe 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CallParameterItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CallParameterItemProvider.java
@@ -5,6 +5,8 @@ package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider
 
 
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.CallParameter;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterCharacterizationType;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesFactory;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 
 import java.util.Collection;
@@ -13,6 +15,7 @@ import java.util.List;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -162,7 +165,8 @@ public class CallParameterItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((CallParameter)object).getName();
+		ParameterCharacterizationType labelValue = ((CallParameter)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
 		return label == null || label.length() == 0 ?
 			getString("_UI_CallParameter_type") :
 			getString("_UI_CallParameter_type") + " " + label;
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ControlFlowVariableItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ControlFlowVariableItemProvider.java
index 014eacbeb18cd1009a1cb10464f38a7c9c9c2952..68607c53d6ef2a9f75b5f99477aab82c9fccbdb4 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ControlFlowVariableItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ControlFlowVariableItemProvider.java
@@ -4,18 +4,26 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsFactory;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ControlFlowVariable;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 import java.util.Collection;
 import java.util.List;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
  * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ControlFlowVariable} object.
@@ -52,10 +60,63 @@ public class ControlFlowVariableItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addCharacterizationPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
+	/**
+	 * This adds a property descriptor for the Characterization feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCharacterizationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ControlFlowVariable_characterization_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ControlFlowVariable_characterization_feature", "_UI_ControlFlowVariable_type"),
+				 ParameterdependenciesPackage.Literals.CONTROL_FLOW_VARIABLE__CHARACTERIZATION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ParameterdependenciesPackage.Literals.CONTROL_FLOW_VARIABLE__EXPLICIT_DESCRIPTION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
 	/**
 	 * This returns the label text for the adapted class.
 	 * <!-- begin-user-doc -->
@@ -64,7 +125,11 @@ public class ControlFlowVariableItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_ControlFlowVariable_type");
+		ModelVariableCharacterizationType labelValue = ((ControlFlowVariable)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ControlFlowVariable_type") :
+			getString("_UI_ControlFlowVariable_type") + " " + label;
 	}
 
 	/**
@@ -77,6 +142,15 @@ public class ControlFlowVariableItemProvider
 	@Override
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
+
+		switch (notification.getFeatureID(ControlFlowVariable.class)) {
+			case ParameterdependenciesPackage.CONTROL_FLOW_VARIABLE__CHARACTERIZATION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ParameterdependenciesPackage.CONTROL_FLOW_VARIABLE__EXPLICIT_DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
 		super.notifyChanged(notification);
 	}
 
@@ -90,6 +164,11 @@ public class ControlFlowVariableItemProvider
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ParameterdependenciesPackage.Literals.CONTROL_FLOW_VARIABLE__EXPLICIT_DESCRIPTION,
+				 FunctionsFactory.eINSTANCE.createRandomVariable()));
 	}
 
 }
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CorrelationRelationshipItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CorrelationRelationshipItemProvider.java
index bfed2a0007772463add36d18631df5599b017915..f10f89c8fb3d822f9c425874a86a432712643e19 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CorrelationRelationshipItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/CorrelationRelationshipItemProvider.java
@@ -8,6 +8,7 @@ import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Correlati
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesFactory;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.RelationshipCharacterizationType;
 import java.util.Collection;
 import java.util.List;
 
@@ -60,26 +61,26 @@ public class CorrelationRelationshipItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addSourceInfluencingParametersPropertyDescriptor(object);
-			addDestInfluencingParameterPropertyDescriptor(object);
+			addSourcesPropertyDescriptor(object);
+			addDestinationPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Source Influencing Parameters feature.
+	 * This adds a property descriptor for the Sources feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addSourceInfluencingParametersPropertyDescriptor(Object object) {
+	protected void addSourcesPropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_CorrelationRelationship_sourceInfluencingParameters_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_CorrelationRelationship_sourceInfluencingParameters_feature", "_UI_CorrelationRelationship_type"),
-				 ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__SOURCE_INFLUENCING_PARAMETERS,
+				 getString("_UI_CorrelationRelationship_sources_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_CorrelationRelationship_sources_feature", "_UI_CorrelationRelationship_type"),
+				 ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__SOURCES,
 				 true,
 				 false,
 				 true,
@@ -89,19 +90,19 @@ public class CorrelationRelationshipItemProvider
 	}
 
 	/**
-	 * This adds a property descriptor for the Dest Influencing Parameter feature.
+	 * This adds a property descriptor for the Destination feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addDestInfluencingParameterPropertyDescriptor(Object object) {
+	protected void addDestinationPropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_CorrelationRelationship_destInfluencingParameter_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_CorrelationRelationship_destInfluencingParameter_feature", "_UI_CorrelationRelationship_type"),
-				 ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__DEST_INFLUENCING_PARAMETER,
+				 getString("_UI_CorrelationRelationship_destination_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_CorrelationRelationship_destination_feature", "_UI_CorrelationRelationship_type"),
+				 ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__DESTINATION,
 				 true,
 				 false,
 				 true,
@@ -123,8 +124,7 @@ public class CorrelationRelationshipItemProvider
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__SOURCE_COMPONENT_INSTANCE_REFERENCES);
-			childrenFeatures.add(ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__DEST_COMPONENT_INSTANCE_REFERENCE);
-			childrenFeatures.add(ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__CHARACTERIZATION);
+			childrenFeatures.add(ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__DESTINATION_COMPONENT_INSTANCE_REFERENCE);
 		}
 		return childrenFeatures;
 	}
@@ -161,7 +161,11 @@ public class CorrelationRelationshipItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_CorrelationRelationship_type");
+		RelationshipCharacterizationType labelValue = ((CorrelationRelationship)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_CorrelationRelationship_type") :
+			getString("_UI_CorrelationRelationship_type") + " " + label;
 	}
 
 	/**
@@ -177,10 +181,12 @@ public class CorrelationRelationshipItemProvider
 
 		switch (notification.getFeatureID(CorrelationRelationship.class)) {
 			case ParameterdependenciesPackage.CORRELATION_RELATIONSHIP__SOURCE_COMPONENT_INSTANCE_REFERENCES:
-			case ParameterdependenciesPackage.CORRELATION_RELATIONSHIP__DEST_COMPONENT_INSTANCE_REFERENCE:
-			case ParameterdependenciesPackage.CORRELATION_RELATIONSHIP__CHARACTERIZATION:
+			case ParameterdependenciesPackage.CORRELATION_RELATIONSHIP__DESTINATION_COMPONENT_INSTANCE_REFERENCE:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
+			case ParameterdependenciesPackage.CORRELATION_RELATIONSHIP__CHARACTERIZATION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true));
+				return;
 		}
 		super.notifyChanged(notification);
 	}
@@ -203,13 +209,8 @@ public class CorrelationRelationshipItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__DEST_COMPONENT_INSTANCE_REFERENCE,
+				(ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__DESTINATION_COMPONENT_INSTANCE_REFERENCE,
 				 ParameterdependenciesFactory.eINSTANCE.createComponentInstanceReference()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__CHARACTERIZATION,
-				 ParameterdependenciesFactory.eINSTANCE.createCharacterization()));
 	}
 
 	/**
@@ -225,7 +226,7 @@ public class CorrelationRelationshipItemProvider
 
 		boolean qualify =
 			childFeature == ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__SOURCE_COMPONENT_INSTANCE_REFERENCES ||
-			childFeature == ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__DEST_COMPONENT_INSTANCE_REFERENCE;
+			childFeature == ParameterdependenciesPackage.Literals.CORRELATION_RELATIONSHIP__DESTINATION_COMPONENT_INSTANCE_REFERENCE;
 
 		if (qualify) {
 			return getString
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/DependencyRelationshipItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/DependencyRelationshipItemProvider.java
index 2ce9b753211a662a6e6ae1676bbbf1ebb8d476bd..228f4114dc00b9843198e49526198b9cbb3d5835 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/DependencyRelationshipItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/DependencyRelationshipItemProvider.java
@@ -8,6 +8,7 @@ import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Dependenc
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesFactory;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.RelationshipCharacterizationType;
 import java.util.Collection;
 import java.util.List;
 
@@ -60,26 +61,26 @@ public class DependencyRelationshipItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addInfluencedVariableReferencePropertyDescriptor(object);
-			addInfluencingParametersPropertyDescriptor(object);
+			addDestinationPropertyDescriptor(object);
+			addSourcesPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Influenced Variable Reference feature.
+	 * This adds a property descriptor for the Destination feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addInfluencedVariableReferencePropertyDescriptor(Object object) {
+	protected void addDestinationPropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_DependencyRelationship_influencedVariableReference_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_DependencyRelationship_influencedVariableReference_feature", "_UI_DependencyRelationship_type"),
-				 ParameterdependenciesPackage.Literals.DEPENDENCY_RELATIONSHIP__INFLUENCED_VARIABLE_REFERENCE,
+				 getString("_UI_DependencyRelationship_destination_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_DependencyRelationship_destination_feature", "_UI_DependencyRelationship_type"),
+				 ParameterdependenciesPackage.Literals.DEPENDENCY_RELATIONSHIP__DESTINATION,
 				 true,
 				 false,
 				 true,
@@ -89,19 +90,19 @@ public class DependencyRelationshipItemProvider
 	}
 
 	/**
-	 * This adds a property descriptor for the Influencing Parameters feature.
+	 * This adds a property descriptor for the Sources feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addInfluencingParametersPropertyDescriptor(Object object) {
+	protected void addSourcesPropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_DependencyRelationship_influencingParameters_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_DependencyRelationship_influencingParameters_feature", "_UI_DependencyRelationship_type"),
-				 ParameterdependenciesPackage.Literals.DEPENDENCY_RELATIONSHIP__INFLUENCING_PARAMETERS,
+				 getString("_UI_DependencyRelationship_sources_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_DependencyRelationship_sources_feature", "_UI_DependencyRelationship_type"),
+				 ParameterdependenciesPackage.Literals.DEPENDENCY_RELATIONSHIP__SOURCES,
 				 true,
 				 false,
 				 true,
@@ -110,36 +111,6 @@ public class DependencyRelationshipItemProvider
 				 null));
 	}
 
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(ParameterdependenciesPackage.Literals.DEPENDENCY_RELATIONSHIP__CHARACTERIZATION);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
 	/**
 	 * This returns DependencyRelationship.gif.
 	 * <!-- begin-user-doc -->
@@ -159,7 +130,11 @@ public class DependencyRelationshipItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_DependencyRelationship_type");
+		RelationshipCharacterizationType labelValue = ((DependencyRelationship)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_DependencyRelationship_type") :
+			getString("_UI_DependencyRelationship_type") + " " + label;
 	}
 
 	/**
@@ -175,7 +150,7 @@ public class DependencyRelationshipItemProvider
 
 		switch (notification.getFeatureID(DependencyRelationship.class)) {
 			case ParameterdependenciesPackage.DEPENDENCY_RELATIONSHIP__CHARACTERIZATION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true));
 				return;
 		}
 		super.notifyChanged(notification);
@@ -191,11 +166,6 @@ public class DependencyRelationshipItemProvider
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(ParameterdependenciesPackage.Literals.DEPENDENCY_RELATIONSHIP__CHARACTERIZATION,
-				 ParameterdependenciesFactory.eINSTANCE.createCharacterization()));
 	}
 
 }
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ExternalCallParameterItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ExternalCallParameterItemProvider.java
index f13a3224a66e5abe0df0588591265b1d7cb1203c..4f8c2cf17fae96f9177f346b522cdb9699baed3b 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ExternalCallParameterItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ExternalCallParameterItemProvider.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider
 
 
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ExternalCallParameter;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 
 import java.util.Collection;
@@ -102,7 +103,8 @@ public class ExternalCallParameterItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((ExternalCallParameter)object).getName();
+		ParameterCharacterizationType labelValue = ((ExternalCallParameter)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
 		return label == null || label.length() == 0 ?
 			getString("_UI_ExternalCallParameter_type") :
 			getString("_UI_ExternalCallParameter_type") + " " + label;
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ExternalCallReturnParameterItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ExternalCallReturnParameterItemProvider.java
index fa4df0c8bd1d66c02b3152f1cfe291289a746891..a8af9d28c2af124b6c71ed8246c36e2af9510943 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ExternalCallReturnParameterItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ExternalCallReturnParameterItemProvider.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider
 
 
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ExternalCallReturnParameter;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 
 import java.util.Collection;
@@ -102,7 +103,8 @@ public class ExternalCallReturnParameterItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((ExternalCallReturnParameter)object).getName();
+		ParameterCharacterizationType labelValue = ((ExternalCallReturnParameter)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
 		return label == null || label.length() == 0 ?
 			getString("_UI_ExternalCallReturnParameter_type") :
 			getString("_UI_ExternalCallReturnParameter_type") + " " + label;
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/InfluencingParameterItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/InfluencingParameterItemProvider.java
index 7cf56ef097a913e612be0d74c34c9414afbf83a6..4e3f19fc844a89f41a401726e67a43e87a224c44 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/InfluencingParameterItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/InfluencingParameterItemProvider.java
@@ -7,12 +7,14 @@ package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.InfluencingParameter;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 import java.util.Collection;
 import java.util.List;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 
+import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -21,6 +23,7 @@ import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
@@ -59,8 +62,6 @@ public class InfluencingParameterItemProvider
 			super.getPropertyDescriptors(object);
 
 			addBehaviorPropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -87,50 +88,6 @@ public class InfluencingParameterItemProvider
 				 null));
 	}
 
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_InfluencingParameter_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_InfluencingParameter_name_feature", "_UI_InfluencingParameter_type"),
-				 ParameterdependenciesPackage.Literals.INFLUENCING_PARAMETER__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_InfluencingParameter_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_InfluencingParameter_description_feature", "_UI_InfluencingParameter_type"),
-				 ParameterdependenciesPackage.Literals.INFLUENCING_PARAMETER__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
 	/**
 	 * This returns InfluencingParameter.gif.
 	 * <!-- begin-user-doc -->
@@ -150,10 +107,7 @@ public class InfluencingParameterItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((InfluencingParameter)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_InfluencingParameter_type") :
-			getString("_UI_InfluencingParameter_type") + " " + label;
+		return getString("_UI_InfluencingParameter_type");
 	}
 
 	/**
@@ -166,13 +120,6 @@ public class InfluencingParameterItemProvider
 	@Override
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
-
-		switch (notification.getFeatureID(InfluencingParameter.class)) {
-			case ParameterdependenciesPackage.INFLUENCING_PARAMETER__NAME:
-			case ParameterdependenciesPackage.INFLUENCING_PARAMETER__DESCRIPTION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
 		super.notifyChanged(notification);
 	}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ModelVariableItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ModelVariableItemProvider.java
index 6f8bfbf3264158047829635c1a61ea79ce1f76e3..e2e9cfca77a893b53eabe6d0356214a05cc7ab56 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ModelVariableItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ModelVariableItemProvider.java
@@ -4,7 +4,9 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsFactory;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariable;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesFactory;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 
@@ -20,12 +22,14 @@ import org.eclipse.emf.common.util.ResourceLocator;
 
 import org.eclipse.emf.ecore.EStructuralFeature;
 
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ParameterdependenciesItemProviderAdapterFactory.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ParameterdependenciesItemProviderAdapterFactory.java
index c11fe66c465af20af090c2b3e3ec47c468550330..357dd7b8816f1e4a6d3a7b8af2e5601538ea1310 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ParameterdependenciesItemProviderAdapterFactory.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ParameterdependenciesItemProviderAdapterFactory.java
@@ -96,26 +96,26 @@ public class ParameterdependenciesItemProviderAdapterFactory extends Parameterde
 	}
 
 	/**
-	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.InfluencingParameter} instances.
+	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ShadowParameter} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected InfluencingParameterItemProvider influencingParameterItemProvider;
+	protected ShadowParameterItemProvider shadowParameterItemProvider;
 
 	/**
-	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.InfluencingParameter}.
+	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ShadowParameter}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
-	public Adapter createInfluencingParameterAdapter() {
-		if (influencingParameterItemProvider == null) {
-			influencingParameterItemProvider = new InfluencingParameterItemProvider(this);
+	public Adapter createShadowParameterAdapter() {
+		if (shadowParameterItemProvider == null) {
+			shadowParameterItemProvider = new ShadowParameterItemProvider(this);
 		}
 
-		return influencingParameterItemProvider;
+		return shadowParameterItemProvider;
 	}
 
 	/**
@@ -211,26 +211,26 @@ public class ParameterdependenciesItemProviderAdapterFactory extends Parameterde
 	}
 
 	/**
-	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Characterization} instances.
+	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Scope} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected CharacterizationItemProvider characterizationItemProvider;
+	protected ScopeItemProvider scopeItemProvider;
 
 	/**
-	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Characterization}.
+	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Scope}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
-	public Adapter createCharacterizationAdapter() {
-		if (characterizationItemProvider == null) {
-			characterizationItemProvider = new CharacterizationItemProvider(this);
+	public Adapter createScopeAdapter() {
+		if (scopeItemProvider == null) {
+			scopeItemProvider = new ScopeItemProvider(this);
 		}
 
-		return characterizationItemProvider;
+		return scopeItemProvider;
 	}
 
 	/**
@@ -401,13 +401,13 @@ public class ParameterdependenciesItemProviderAdapterFactory extends Parameterde
 	 * @generated
 	 */
 	public void dispose() {
+		if (scopeSetItemProvider != null) scopeSetItemProvider.dispose();
+		if (scopeItemProvider != null) scopeItemProvider.dispose();
 		if (influencedVariableReferenceItemProvider != null) influencedVariableReferenceItemProvider.dispose();
-		if (influencingParameterItemProvider != null) influencingParameterItemProvider.dispose();
+		if (shadowParameterItemProvider != null) shadowParameterItemProvider.dispose();
 		if (dependencyRelationshipItemProvider != null) dependencyRelationshipItemProvider.dispose();
 		if (correlationRelationshipItemProvider != null) correlationRelationshipItemProvider.dispose();
 		if (componentInstanceReferenceItemProvider != null) componentInstanceReferenceItemProvider.dispose();
-		if (scopeSetItemProvider != null) scopeSetItemProvider.dispose();
-		if (characterizationItemProvider != null) characterizationItemProvider.dispose();
 		if (serviceInputParameterItemProvider != null) serviceInputParameterItemProvider.dispose();
 		if (externalCallReturnParameterItemProvider != null) externalCallReturnParameterItemProvider.dispose();
 		if (externalCallParameterItemProvider != null) externalCallParameterItemProvider.dispose();
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/RelationshipItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/RelationshipItemProvider.java
index 2567ac0d543cdce81158e1adb0ff411d238365ed..92aa70b833e2b0b797591d0156a8bf70abc8be4c 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/RelationshipItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/RelationshipItemProvider.java
@@ -4,8 +4,12 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsFactory;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesFactory;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.RelationshipCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 
 import java.util.Collection;
@@ -16,6 +20,7 @@ import org.eclipse.emf.common.notify.Notification;
 
 import org.eclipse.emf.common.util.ResourceLocator;
 
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -24,6 +29,7 @@ import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
  * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship} object.
@@ -87,6 +93,37 @@ public class RelationshipItemProvider
 				 null));
 	}
 
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ParameterdependenciesPackage.Literals.RELATIONSHIP__CHARACTERIZATION);
+			childrenFeatures.add(ParameterdependenciesPackage.Literals.RELATIONSHIP__EXPLICIT_DESCRIPTION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
 	/**
 	 * This returns the label text for the adapted class.
 	 * <!-- begin-user-doc -->
@@ -95,7 +132,11 @@ public class RelationshipItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_Relationship_type");
+		RelationshipCharacterizationType labelValue = ((Relationship)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Relationship_type") :
+			getString("_UI_Relationship_type") + " " + label;
 	}
 
 	/**
@@ -108,6 +149,15 @@ public class RelationshipItemProvider
 	@Override
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
+
+		switch (notification.getFeatureID(Relationship.class)) {
+			case ParameterdependenciesPackage.RELATIONSHIP__EXPLICIT_DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+			case ParameterdependenciesPackage.RELATIONSHIP__CHARACTERIZATION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true));
+				return;
+		}
 		super.notifyChanged(notification);
 	}
 
@@ -121,6 +171,16 @@ public class RelationshipItemProvider
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ParameterdependenciesPackage.Literals.RELATIONSHIP__CHARACTERIZATION,
+				 RelationshipCharacterizationType.EMPIRICAL));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ParameterdependenciesPackage.Literals.RELATIONSHIP__EXPLICIT_DESCRIPTION,
+				 FunctionsFactory.eINSTANCE.createExplicitDescription()));
 	}
 
 	/**
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ScopeItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ScopeItemProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..cca13c268abefdca2810b06503d82c350a0547c1
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ScopeItemProvider.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT
+ */
+package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider;
+
+
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
+
+import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Scope} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ScopeItemProvider
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ScopeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addScopePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Scope feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addScopePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Scope_scope_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Scope_scope_feature", "_UI_Scope_type"),
+				 ParameterdependenciesPackage.Literals.SCOPE__SCOPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Scope.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Scope"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_Scope_type");
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ApplicationlevelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ServiceInputParameterItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ServiceInputParameterItemProvider.java
index 9bc1e23e027685da37e5ecfdac66af3cfa35b45b..59274c0b67bbd250cfe3e9bdb42a1e008a24650d 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ServiceInputParameterItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ServiceInputParameterItemProvider.java
@@ -4,6 +4,7 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ServiceInputParameter;
 
@@ -56,25 +57,25 @@ public class ServiceInputParameterItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addInterfaceProvidingRolePropertyDescriptor(object);
+			addProvidingRolePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Interface Providing Role feature.
+	 * This adds a property descriptor for the Providing Role feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addInterfaceProvidingRolePropertyDescriptor(Object object) {
+	protected void addProvidingRolePropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_ServiceInputParameter_interfaceProvidingRole_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ServiceInputParameter_interfaceProvidingRole_feature", "_UI_ServiceInputParameter_type"),
-				 ParameterdependenciesPackage.Literals.SERVICE_INPUT_PARAMETER__INTERFACE_PROVIDING_ROLE,
+				 getString("_UI_ServiceInputParameter_providingRole_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ServiceInputParameter_providingRole_feature", "_UI_ServiceInputParameter_type"),
+				 ParameterdependenciesPackage.Literals.SERVICE_INPUT_PARAMETER__PROVIDING_ROLE,
 				 true,
 				 false,
 				 true,
@@ -102,7 +103,8 @@ public class ServiceInputParameterItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((ServiceInputParameter)object).getName();
+		ParameterCharacterizationType labelValue = ((ServiceInputParameter)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
 		return label == null || label.length() == 0 ?
 			getString("_UI_ServiceInputParameter_type") :
 			getString("_UI_ServiceInputParameter_type") + " " + label;
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ShadowParameterItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ShadowParameterItemProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..b070a6d600738ff58b291962cc270e8ee0cc9b90
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/provider/ShadowParameterItemProvider.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT
+ */
+package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider;
+
+
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ShadowParameter;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ShadowParameter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ShadowParameterItemProvider
+	extends InfluencingParameterItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ShadowParameterItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addNamePropertyDescriptor(object);
+			addDescriptionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ShadowParameter_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ShadowParameter_name_feature", "_UI_ShadowParameter_type"),
+				 ParameterdependenciesPackage.Literals.SHADOW_PARAMETER__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ShadowParameter_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ShadowParameter_description_feature", "_UI_ShadowParameter_type"),
+				 ParameterdependenciesPackage.Literals.SHADOW_PARAMETER__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns ShadowParameter.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ShadowParameter"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((ShadowParameter)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ShadowParameter_type") :
+			getString("_UI_ShadowParameter_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ShadowParameter.class)) {
+			case ParameterdependenciesPackage.SHADOW_PARAMETER__NAME:
+			case ParameterdependenciesPackage.SHADOW_PARAMETER__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/provider/ApplicationlevelEditPlugin.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/provider/ApplicationlevelEditPlugin.java
index 5613ed1190ce7d53729c06e9e086264f1349ba83..4400ededfe1a0cc3e3403ed5fa614e80e2f902dd 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/provider/ApplicationlevelEditPlugin.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/provider/ApplicationlevelEditPlugin.java
@@ -7,6 +7,7 @@ import edu.kit.ipd.descartes.core.provider.CoreEditPlugin;
 
 import edu.kit.ipd.descartes.identifier.provider.IdentifierEditPlugin;
 
+import edu.kit.ipd.descartes.mm.resourcelandscape.provider.ResourcelandscapeEditPlugin;
 import org.eclipse.emf.common.EMFPlugin;
 
 import org.eclipse.emf.common.util.ResourceLocator;
@@ -45,6 +46,7 @@ public final class ApplicationlevelEditPlugin extends EMFPlugin {
 		  (new ResourceLocator [] {
 		     CoreEditPlugin.INSTANCE,
 		     IdentifierEditPlugin.INSTANCE,
+		     ResourcelandscapeEditPlugin.INSTANCE,
 		   });
 	}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ExplicitFunctionItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/PrimitiveDataTypeItemProvider.java
similarity index 64%
rename from edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ExplicitFunctionItemProvider.java
rename to edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/PrimitiveDataTypeItemProvider.java
index f17332f51fce903871499d79c524f073309a4e59..2ce49301b061e099f37161103060c118473e86f7 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/provider/ExplicitFunctionItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/PrimitiveDataTypeItemProvider.java
@@ -1,14 +1,16 @@
 /**
  * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT
  */
-package edu.kit.ipd.descartes.mm.applicationlevel.functions.provider;
+package edu.kit.ipd.descartes.mm.applicationlevel.repository.provider;
 
 
-import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitFunction;
-import edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsPackage;
+import edu.kit.ipd.descartes.core.provider.EntityItemProvider;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.repository.PrimitiveDataType;
+import edu.kit.ipd.descartes.mm.applicationlevel.repository.RepositoryPackage;
+
 import java.util.Collection;
 import java.util.List;
 
@@ -25,17 +27,16 @@ import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
- * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitFunction} object.
+ * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.repository.PrimitiveDataType} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  * @generated
  */
-public class ExplicitFunctionItemProvider
-	extends ItemProviderAdapter
+public class PrimitiveDataTypeItemProvider
+	extends EntityItemProvider
 	implements
 		IEditingDomainItemProvider,
 		IStructuredItemContentProvider,
@@ -48,7 +49,7 @@ public class ExplicitFunctionItemProvider
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ExplicitFunctionItemProvider(AdapterFactory adapterFactory) {
+	public PrimitiveDataTypeItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -63,26 +64,25 @@ public class ExplicitFunctionItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addSpecificationPropertyDescriptor(object);
-			addExpressionPropertyDescriptor(object);
+			addTypePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Specification feature.
+	 * This adds a property descriptor for the Type feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addSpecificationPropertyDescriptor(Object object) {
+	protected void addTypePropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_ExplicitFunction_specification_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ExplicitFunction_specification_feature", "_UI_ExplicitFunction_type"),
-				 FunctionsPackage.Literals.EXPLICIT_FUNCTION__SPECIFICATION,
+				 getString("_UI_PrimitiveDataType_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_PrimitiveDataType_type_feature", "_UI_PrimitiveDataType_type"),
+				 RepositoryPackage.Literals.PRIMITIVE_DATA_TYPE__TYPE,
 				 true,
 				 false,
 				 false,
@@ -92,36 +92,14 @@ public class ExplicitFunctionItemProvider
 	}
 
 	/**
-	 * This adds a property descriptor for the Expression feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addExpressionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ExplicitFunction_expression_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ExplicitFunction_expression_feature", "_UI_ExplicitFunction_type"),
-				 FunctionsPackage.Literals.EXPLICIT_FUNCTION__EXPRESSION,
-				 false,
-				 false,
-				 false,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns ExplicitFunction.gif.
+	 * This returns PrimitiveDataType.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
 	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/ExplicitFunction"));
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/PrimitiveDataType"));
 	}
 
 	/**
@@ -132,10 +110,10 @@ public class ExplicitFunctionItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((ExplicitFunction)object).getSpecification();
+		String label = ((PrimitiveDataType)object).getName();
 		return label == null || label.length() == 0 ?
-			getString("_UI_ExplicitFunction_type") :
-			getString("_UI_ExplicitFunction_type") + " " + label;
+			getString("_UI_PrimitiveDataType_type") :
+			getString("_UI_PrimitiveDataType_type") + " " + label;
 	}
 
 	/**
@@ -149,8 +127,8 @@ public class ExplicitFunctionItemProvider
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(ExplicitFunction.class)) {
-			case FunctionsPackage.EXPLICIT_FUNCTION__SPECIFICATION:
+		switch (notification.getFeatureID(PrimitiveDataType.class)) {
+			case RepositoryPackage.PRIMITIVE_DATA_TYPE__TYPE:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 		}
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/RepositoryItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/RepositoryItemProvider.java
index a7d811fc7c29ba2ebf50d2ebbd66f6c0479df736..a103aaa1669107d2a9389a1aa3737ea5a9acba26 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/RepositoryItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/RepositoryItemProvider.java
@@ -175,6 +175,11 @@ public class RepositoryItemProvider
 				(RepositoryPackage.Literals.REPOSITORY__DATATYPES,
 				 RepositoryFactory.eINSTANCE.createCompositeDataType()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(RepositoryPackage.Literals.REPOSITORY__DATATYPES,
+				 RepositoryFactory.eINSTANCE.createPrimitiveDataType()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(RepositoryPackage.Literals.REPOSITORY__INTERFACES,
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/RepositoryItemProviderAdapterFactory.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/RepositoryItemProviderAdapterFactory.java
index b56c2cee1c677e506e7097c880e3aee02e0978af..9a56b68caf4188d826f3e0666fadbb16058c1845 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/RepositoryItemProviderAdapterFactory.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/provider/RepositoryItemProviderAdapterFactory.java
@@ -440,6 +440,29 @@ public class RepositoryItemProviderAdapterFactory extends RepositoryAdapterFacto
 		return innerDeclarationItemProvider;
 	}
 
+	/**
+	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.repository.PrimitiveDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PrimitiveDataTypeItemProvider primitiveDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.repository.PrimitiveDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createPrimitiveDataTypeAdapter() {
+		if (primitiveDataTypeItemProvider == null) {
+			primitiveDataTypeItemProvider = new PrimitiveDataTypeItemProvider(this);
+		}
+
+		return primitiveDataTypeItemProvider;
+	}
+
 	/**
 	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.repository.ProvidingDelegationConnector} instances.
 	 * <!-- begin-user-doc -->
@@ -598,9 +621,10 @@ public class RepositoryItemProviderAdapterFactory extends RepositoryAdapterFacto
 		if (subSystemItemProvider != null) subSystemItemProvider.dispose();
 		if (collectionDataTypeItemProvider != null) collectionDataTypeItemProvider.dispose();
 		if (compositeDataTypeItemProvider != null) compositeDataTypeItemProvider.dispose();
+		if (innerDeclarationItemProvider != null) innerDeclarationItemProvider.dispose();
+		if (primitiveDataTypeItemProvider != null) primitiveDataTypeItemProvider.dispose();
 		if (assemblyContextItemProvider != null) assemblyContextItemProvider.dispose();
 		if (assemblyConnectorItemProvider != null) assemblyConnectorItemProvider.dispose();
-		if (innerDeclarationItemProvider != null) innerDeclarationItemProvider.dispose();
 		if (providingDelegationConnectorItemProvider != null) providingDelegationConnectorItemProvider.dispose();
 		if (requiringDelegationConnectorItemProvider != null) requiringDelegationConnectorItemProvider.dispose();
 	}
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/BranchProbabilitiesItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/BranchProbabilitiesItemProvider.java
index e2ee9efb878773a47adc76b90ee54cc0ec633d86..876abf2bd3d313601df17d57d1a0acd9154661a8 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/BranchProbabilitiesItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/BranchProbabilitiesItemProvider.java
@@ -4,10 +4,12 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider.ControlFlowVariableItemProvider;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.BranchProbabilities;
 import java.util.Collection;
 import java.util.List;
 
@@ -81,7 +83,11 @@ public class BranchProbabilitiesItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_BranchProbabilities_type");
+		ModelVariableCharacterizationType labelValue = ((BranchProbabilities)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_BranchProbabilities_type") :
+			getString("_UI_BranchProbabilities_type") + " " + label;
 	}
 
 	/**
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/CallFrequencyItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/CallFrequencyItemProvider.java
index 87e2b00a8ac95dfe65b72fe7ba4cf841c2d3ec36..22ab860ceb419e2f8dcca3726dfb88c14fb9999f 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/CallFrequencyItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/CallFrequencyItemProvider.java
@@ -4,10 +4,12 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider.ControlFlowVariableItemProvider;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.CallFrequency;
 import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ServicebehaviorPackage;
 
 import java.util.Collection;
@@ -61,33 +63,10 @@ public class CallFrequencyItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addFrequencyPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
-	/**
-	 * This adds a property descriptor for the Frequency feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addFrequencyPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_CallFrequency_frequency_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_CallFrequency_frequency_feature", "_UI_CallFrequency_type"),
-				 ServicebehaviorPackage.Literals.CALL_FREQUENCY__FREQUENCY,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
 	/**
 	 * This returns CallFrequency.gif.
 	 * <!-- begin-user-doc -->
@@ -107,7 +86,11 @@ public class CallFrequencyItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_CallFrequency_type");
+		ModelVariableCharacterizationType labelValue = ((CallFrequency)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_CallFrequency_type") :
+			getString("_UI_CallFrequency_type") + " " + label;
 	}
 
 	/**
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ExternalCallActionItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ExternalCallActionItemProvider.java
index d25fcb3cd5681c9bf20bb58b0189e3c07e9af66c..33798b728451e87e94af41505ecc14021e4caf36 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ExternalCallActionItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ExternalCallActionItemProvider.java
@@ -4,6 +4,8 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ExternalCallAction;
+import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ServicebehaviorFactory;
 import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ServicebehaviorPackage;
 
 import java.util.Collection;
@@ -12,6 +14,7 @@ import java.util.List;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -19,6 +22,7 @@ import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
  * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ExternalCallAction} object.
@@ -55,54 +59,38 @@ public class ExternalCallActionItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addSignaturePropertyDescriptor(object);
-			addInterfaceRequiringRolePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Signature feature.
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addSignaturePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ExternalCall_signature_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ExternalCall_signature_feature", "_UI_ExternalCall_type"),
-				 ServicebehaviorPackage.Literals.EXTERNAL_CALL__SIGNATURE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ServicebehaviorPackage.Literals.EXTERNAL_CALL_ACTION__EXTERNAL_CALL);
+		}
+		return childrenFeatures;
 	}
 
 	/**
-	 * This adds a property descriptor for the Interface Requiring Role feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addInterfaceRequiringRolePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ExternalCall_interfaceRequiringRole_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ExternalCall_interfaceRequiringRole_feature", "_UI_ExternalCall_type"),
-				 ServicebehaviorPackage.Literals.EXTERNAL_CALL__INTERFACE_REQUIRING_ROLE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
 	}
 
 	/**
@@ -137,6 +125,12 @@ public class ExternalCallActionItemProvider
 	@Override
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
+
+		switch (notification.getFeatureID(ExternalCallAction.class)) {
+			case ServicebehaviorPackage.EXTERNAL_CALL_ACTION__EXTERNAL_CALL:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
 		super.notifyChanged(notification);
 	}
 
@@ -150,6 +144,11 @@ public class ExternalCallActionItemProvider
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ServicebehaviorPackage.Literals.EXTERNAL_CALL_ACTION__EXTERNAL_CALL,
+				 ServicebehaviorFactory.eINSTANCE.createExternalCall()));
 	}
 
 }
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ExternalCallFrequencyItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ExternalCallFrequencyItemProvider.java
index 45be11a42b160765600d70a72aeb39a1e6d754d5..64cbb54763a6a1a035f20b1c18eef78afbe8f6a4 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ExternalCallFrequencyItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ExternalCallFrequencyItemProvider.java
@@ -152,11 +152,6 @@ public class ExternalCallFrequencyItemProvider
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
-		newChildDescriptors.add
-			(createChildParameter
-				(ServicebehaviorPackage.Literals.EXTERNAL_CALL_FREQUENCY__EXTERNAL_CALL,
-				 ServicebehaviorFactory.eINSTANCE.createExternalCallAction()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(ServicebehaviorPackage.Literals.EXTERNAL_CALL_FREQUENCY__EXTERNAL_CALL,
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/LoopActionItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/LoopActionItemProvider.java
index 1054f3bb9c2530dddc280b0318c0a8f604f27dce..2e262464969ea79109430a03619002dd83c96559 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/LoopActionItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/LoopActionItemProvider.java
@@ -76,7 +76,7 @@ public class LoopActionItemProvider
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(ServicebehaviorPackage.Literals.LOOP_ACTION__LOOP_BODY_BEHAVIOR);
-			childrenFeatures.add(ServicebehaviorPackage.Literals.LOOP_ACTION__LOOP_ITERATION_COUNT_DISTRIBUTION);
+			childrenFeatures.add(ServicebehaviorPackage.Literals.LOOP_ACTION__LOOP_ITERATION_COUNT);
 		}
 		return childrenFeatures;
 	}
@@ -129,7 +129,7 @@ public class LoopActionItemProvider
 
 		switch (notification.getFeatureID(LoopAction.class)) {
 			case ServicebehaviorPackage.LOOP_ACTION__LOOP_BODY_BEHAVIOR:
-			case ServicebehaviorPackage.LOOP_ACTION__LOOP_ITERATION_COUNT_DISTRIBUTION:
+			case ServicebehaviorPackage.LOOP_ACTION__LOOP_ITERATION_COUNT:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -154,8 +154,8 @@ public class LoopActionItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ServicebehaviorPackage.Literals.LOOP_ACTION__LOOP_ITERATION_COUNT_DISTRIBUTION,
-				 ServicebehaviorFactory.eINSTANCE.createLoopIterationCountDistribution()));
+				(ServicebehaviorPackage.Literals.LOOP_ACTION__LOOP_ITERATION_COUNT,
+				 ServicebehaviorFactory.eINSTANCE.createLoopIterationCount()));
 	}
 
 }
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/LoopIterationCountItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/LoopIterationCountItemProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..6e9663b0a99dfb2043cf4891ad108872ab8d6ab7
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/LoopIterationCountItemProvider.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT
+ */
+package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider;
+
+
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
+
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider.ControlFlowVariableItemProvider;
+
+import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
+
+import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.LoopIterationCount;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.LoopIterationCount} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LoopIterationCountItemProvider
+	extends ControlFlowVariableItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LoopIterationCountItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns LoopIterationCount.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/LoopIterationCount"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		ModelVariableCharacterizationType labelValue = ((LoopIterationCount)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_LoopIterationCount_type") :
+			getString("_UI_LoopIterationCount_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ApplicationlevelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ResourceDemandItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ResourceDemandItemProvider.java
index dea37c54084cb3f5a7d595a73c6602ced814cafb..16bd5c20461dbd203f99b82e4516c6ef73e2814b 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ResourceDemandItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ResourceDemandItemProvider.java
@@ -4,10 +4,14 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsFactory;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider.ModelVariableItemProvider;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResourceDemand;
+import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ServicebehaviorPackage;
 import java.util.Collection;
 import java.util.List;
 
@@ -16,12 +20,16 @@ import org.eclipse.emf.common.notify.Notification;
 
 import org.eclipse.emf.common.util.ResourceLocator;
 
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
  * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResourceDemand} object.
@@ -58,10 +66,86 @@ public class ResourceDemandItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addResourceTypePropertyDescriptor(object);
+			addCharacterizationPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
+	/**
+	 * This adds a property descriptor for the Resource Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addResourceTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ResourceDemand_resourceType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ResourceDemand_resourceType_feature", "_UI_ResourceDemand_type"),
+				 ServicebehaviorPackage.Literals.RESOURCE_DEMAND__RESOURCE_TYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Characterization feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCharacterizationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ResourceDemand_characterization_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ResourceDemand_characterization_feature", "_UI_ResourceDemand_type"),
+				 ServicebehaviorPackage.Literals.RESOURCE_DEMAND__CHARACTERIZATION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ServicebehaviorPackage.Literals.RESOURCE_DEMAND__EXPLICIT_DESCRIPTION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
 	/**
 	 * This returns ResourceDemand.gif.
 	 * <!-- begin-user-doc -->
@@ -81,7 +165,11 @@ public class ResourceDemandItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_ResourceDemand_type");
+		ModelVariableCharacterizationType labelValue = ((ResourceDemand)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ResourceDemand_type") :
+			getString("_UI_ResourceDemand_type") + " " + label;
 	}
 
 	/**
@@ -94,6 +182,15 @@ public class ResourceDemandItemProvider
 	@Override
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
+
+		switch (notification.getFeatureID(ResourceDemand.class)) {
+			case ServicebehaviorPackage.RESOURCE_DEMAND__CHARACTERIZATION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ServicebehaviorPackage.RESOURCE_DEMAND__EXPLICIT_DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
 		super.notifyChanged(notification);
 	}
 
@@ -107,6 +204,11 @@ public class ResourceDemandItemProvider
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ServicebehaviorPackage.Literals.RESOURCE_DEMAND__EXPLICIT_DESCRIPTION,
+				 FunctionsFactory.eINSTANCE.createRandomVariable()));
 	}
 
 	/**
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ResponseTimeItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ResponseTimeItemProvider.java
index 247e0ea25a49b0c7f06e0232df356e8cb11650cf..3020509ee610b86f031134e4dd2d9fbc91d07362 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ResponseTimeItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ResponseTimeItemProvider.java
@@ -4,10 +4,14 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider;
 
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsFactory;
+import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.provider.ModelVariableItemProvider;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResponseTime;
+import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ServicebehaviorPackage;
 import java.util.Collection;
 import java.util.List;
 
@@ -16,12 +20,16 @@ import org.eclipse.emf.common.notify.Notification;
 
 import org.eclipse.emf.common.util.ResourceLocator;
 
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
  * This is the item provider adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResponseTime} object.
@@ -58,10 +66,63 @@ public class ResponseTimeItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addCharacterizationPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
+	/**
+	 * This adds a property descriptor for the Characterization feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCharacterizationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ResponseTime_characterization_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ResponseTime_characterization_feature", "_UI_ResponseTime_type"),
+				 ServicebehaviorPackage.Literals.RESPONSE_TIME__CHARACTERIZATION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(ServicebehaviorPackage.Literals.RESPONSE_TIME__EXPLICIT_DESCRIPTION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
 	/**
 	 * This returns ResponseTime.gif.
 	 * <!-- begin-user-doc -->
@@ -81,7 +142,11 @@ public class ResponseTimeItemProvider
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_ResponseTime_type");
+		ModelVariableCharacterizationType labelValue = ((ResponseTime)object).getCharacterization();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ResponseTime_type") :
+			getString("_UI_ResponseTime_type") + " " + label;
 	}
 
 	/**
@@ -94,6 +159,15 @@ public class ResponseTimeItemProvider
 	@Override
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
+
+		switch (notification.getFeatureID(ResponseTime.class)) {
+			case ServicebehaviorPackage.RESPONSE_TIME__CHARACTERIZATION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case ServicebehaviorPackage.RESPONSE_TIME__EXPLICIT_DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
 		super.notifyChanged(notification);
 	}
 
@@ -107,6 +181,11 @@ public class ResponseTimeItemProvider
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(ServicebehaviorPackage.Literals.RESPONSE_TIME__EXPLICIT_DESCRIPTION,
+				 FunctionsFactory.eINSTANCE.createRandomVariable()));
 	}
 
 	/**
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ServiceBehaviorAbstractionItemProvider.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ServiceBehaviorAbstractionItemProvider.java
index 8d76123e47a3e515a2730fd0def2baf2ff54e399..5c15d798315fb34952f815f194455ff20595d726 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ServiceBehaviorAbstractionItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ServiceBehaviorAbstractionItemProvider.java
@@ -192,7 +192,7 @@ public class ServiceBehaviorAbstractionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(ServicebehaviorPackage.Literals.SERVICE_BEHAVIOR_ABSTRACTION__INFLUENCING_PARAMETER,
-				 ParameterdependenciesFactory.eINSTANCE.createInfluencingParameter()));
+				 ParameterdependenciesFactory.eINSTANCE.createShadowParameter()));
 
 		newChildDescriptors.add
 			(createChildParameter
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ServicebehaviorItemProviderAdapterFactory.java b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ServicebehaviorItemProviderAdapterFactory.java
index 0bd351c4bfc1ef3655aed5d076588e73f90121e4..9a6b34a3ee0f3a598e4930fa9c1432d68e1a3d8d 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ServicebehaviorItemProviderAdapterFactory.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.edit/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/provider/ServicebehaviorItemProviderAdapterFactory.java
@@ -280,26 +280,26 @@ public class ServicebehaviorItemProviderAdapterFactory extends ServicebehaviorAd
 	}
 
 	/**
-	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.LoopIterationCountDistribution} instances.
+	 * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.LoopIterationCount} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected LoopIterationCountDistributionItemProvider loopIterationCountDistributionItemProvider;
+	protected LoopIterationCountItemProvider loopIterationCountItemProvider;
 
 	/**
-	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.LoopIterationCountDistribution}.
+	 * This creates an adapter for a {@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.LoopIterationCount}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
-	public Adapter createLoopIterationCountDistributionAdapter() {
-		if (loopIterationCountDistributionItemProvider == null) {
-			loopIterationCountDistributionItemProvider = new LoopIterationCountDistributionItemProvider(this);
+	public Adapter createLoopIterationCountAdapter() {
+		if (loopIterationCountItemProvider == null) {
+			loopIterationCountItemProvider = new LoopIterationCountItemProvider(this);
 		}
 
-		return loopIterationCountDistributionItemProvider;
+		return loopIterationCountItemProvider;
 	}
 
 	/**
@@ -594,7 +594,7 @@ public class ServicebehaviorItemProviderAdapterFactory extends ServicebehaviorAd
 		if (branchActionItemProvider != null) branchActionItemProvider.dispose();
 		if (branchProbabilitiesItemProvider != null) branchProbabilitiesItemProvider.dispose();
 		if (loopActionItemProvider != null) loopActionItemProvider.dispose();
-		if (loopIterationCountDistributionItemProvider != null) loopIterationCountDistributionItemProvider.dispose();
+		if (loopIterationCountItemProvider != null) loopIterationCountItemProvider.dispose();
 		if (externalCallActionItemProvider != null) externalCallActionItemProvider.dispose();
 		if (externalCallItemProvider != null) externalCallItemProvider.dispose();
 		if (resourceDemandItemProvider != null) resourceDemandItemProvider.dispose();
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.mm.applicationlevel.editor/META-INF/MANIFEST.MF
index f5dea54b77dc484e4ae38427757f00a7dfee3cd8..913f285c0f1623fb26cf3d6f68eb2423baaafb4d 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/META-INF/MANIFEST.MF
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/META-INF/MANIFEST.MF
@@ -21,5 +21,6 @@ Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.edit.ui;visibility:=reexport,
  org.eclipse.ui.ide;visibility:=reexport,
  edu.kit.ipd.descartes.core.edit;visibility:=reexport,
- edu.kit.ipd.descartes.identifier.edit;visibility:=reexport
+ edu.kit.ipd.descartes.identifier.edit;visibility:=reexport,
+ edu.kit.ipd.descartes.mm.resourcelandscape.edit;visibility:=reexport
 Bundle-ActivationPolicy: lazy
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/plugin.properties b/edu.kit.ipd.descartes.mm.applicationlevel.editor/plugin.properties
index fea392032573b37dc96c8cb837ca015d63b3b5d0..32baa90115c2e166b91437a3298833b68bc6af0a 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/plugin.properties
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/plugin.properties
@@ -87,3 +87,9 @@ _UI_Wizard_initial_object_description = Select a model object to create
 _UI_FileConflict_label = File Conflict
 _WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?
 
+_UI_ResourcetypeEditor_menu = &Resourcetype Editor
+_UI_ResourcetypeModelWizard_label = Resourcetype Model
+_UI_ResourcetypeModelWizard_description = Create a new Resourcetype model
+_UI_ResourcetypeEditor_label = Resourcetype Model Editor
+_UI_ResourcetypeEditorFilenameDefaultBase = My
+_UI_ResourcetypeEditorFilenameExtensions = resourcetype
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/plugin.xml b/edu.kit.ipd.descartes.mm.applicationlevel.editor/plugin.xml
index 09fc78705a5a014b597986810cf8ed7f2e5f9418..deb93fff3ac09620b5b9854caf9e7f680e4e3ee8 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/plugin.xml
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/plugin.xml
@@ -33,6 +33,35 @@
       </editor>
    </extension>
 
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated applicationlevel -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.presentation.ParameterdependenciesModelWizardID"
+            name="%_UI_ParameterdependenciesModelWizard_label"
+            class="edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.presentation.ParameterdependenciesModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/ParameterdependenciesModelFile.gif">
+         <description>%_UI_ParameterdependenciesModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
    <extension point="org.eclipse.ui.newWizards">
       <category
             id="org.eclipse.emf.ecore.Wizard.category.ID"
@@ -59,6 +88,35 @@
       </editor>
    </extension>
 
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated applicationlevel -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="edu.kit.ipd.descartes.mm.applicationlevel.repository.presentation.RepositoryModelWizardID"
+            name="%_UI_RepositoryModelWizard_label"
+            class="edu.kit.ipd.descartes.mm.applicationlevel.repository.presentation.RepositoryModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/RepositoryModelFile.gif">
+         <description>%_UI_RepositoryModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
    <extension point="org.eclipse.ui.newWizards">
       <category
             id="org.eclipse.emf.ecore.Wizard.category.ID"
@@ -85,6 +143,35 @@
       </editor>
    </extension>
 
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated applicationlevel -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.presentation.ServicebehaviorModelWizardID"
+            name="%_UI_ServicebehaviorModelWizard_label"
+            class="edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.presentation.ServicebehaviorModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/ServicebehaviorModelFile.gif">
+         <description>%_UI_ServicebehaviorModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
    <extension point="org.eclipse.ui.newWizards">
       <category
             id="org.eclipse.emf.ecore.Wizard.category.ID"
@@ -111,6 +198,35 @@
       </editor>
    </extension>
 
+   <extension point="org.eclipse.ui.newWizards">
+      <!-- @generated applicationlevel -->
+      <category
+            id="org.eclipse.emf.ecore.Wizard.category.ID"
+            name="%_UI_Wizard_category"/>
+      <wizard
+            id="edu.kit.ipd.descartes.mm.applicationlevel.system.presentation.SystemModelWizardID"
+            name="%_UI_SystemModelWizard_label"
+            class="edu.kit.ipd.descartes.mm.applicationlevel.system.presentation.SystemModelWizard"
+            category="org.eclipse.emf.ecore.Wizard.category.ID"
+            icon="icons/full/obj16/SystemModelFile.gif">
+         <description>%_UI_SystemModelWizard_description</description>
+         <selection class="org.eclipse.core.resources.IResource"/>
+      </wizard>
+   </extension>
+
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
    <extension point="org.eclipse.ui.newWizards">
       <category
             id="org.eclipse.emf.ecore.Wizard.category.ID"
@@ -137,4 +253,6 @@
       </editor>
    </extension>
 
+null
+null
 </plugin>
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/presentation/FunctionsEditor.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/presentation/FunctionsEditor.java
index 23385b8a6930758361b17970cf49e5d63abfa22f..4d92bac62dad5f558143006c5fdff7fa6bb197b9 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/presentation/FunctionsEditor.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/presentation/FunctionsEditor.java
@@ -41,6 +41,7 @@ import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 
+import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -60,6 +61,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
 
 import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
 import org.eclipse.swt.dnd.Transfer;
 
 import org.eclipse.swt.events.ControlAdapter;
@@ -170,6 +172,7 @@ import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider.Servic
 
 import edu.kit.ipd.descartes.mm.applicationlevel.system.provider.SystemItemProviderAdapterFactory;
 
+import edu.kit.ipd.descartes.mm.resourcetype.provider.ResourcetypeItemProviderAdapterFactory;
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 
 
@@ -228,7 +231,7 @@ public class FunctionsEditor
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected PropertySheetPage propertySheetPage;
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
 
 	/**
 	 * This is the viewer that shadows the selection in the content outline.
@@ -347,7 +350,7 @@ public class FunctionsEditor
 					}
 				}
 				else if (p instanceof PropertySheet) {
-					if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
 						getActionBarContributor().setActiveEditor(FunctionsEditor.this);
 						handleActivate();
 					}
@@ -459,6 +462,15 @@ public class FunctionsEditor
 			@Override
 			protected void unsetTarget(Resource target) {
 				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
 			}
 		};
 
@@ -492,6 +504,7 @@ public class FunctionsEditor
 										}
 									}
 								}
+								return false;
 							}
 
 							return true;
@@ -712,6 +725,7 @@ public class FunctionsEditor
 		adapterFactory.addAdapterFactory(new SystemItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new CoreItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new IdentifierItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ResourcetypeItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
 
 		// Create the command stack that will notify this editor as commands are executed.
@@ -734,8 +748,14 @@ public class FunctionsEditor
 								  if (mostRecentCommand != null) {
 									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
 								  }
-								  if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
-									  propertySheetPage.refresh();
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
 								  }
 							  }
 						  });
@@ -941,7 +961,7 @@ public class FunctionsEditor
 		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
 
 		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
 		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
 		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
 	}
@@ -1399,23 +1419,22 @@ public class FunctionsEditor
 	 * @generated
 	 */
 	public IPropertySheetPage getPropertySheetPage() {
-		if (propertySheetPage == null) {
-			propertySheetPage =
-				new ExtendedPropertySheetPage(editingDomain) {
-					@Override
-					public void setSelectionToViewer(List<?> selection) {
-						FunctionsEditor.this.setSelectionToViewer(selection);
-						FunctionsEditor.this.setFocus();
-					}
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					FunctionsEditor.this.setSelectionToViewer(selection);
+					FunctionsEditor.this.setFocus();
+				}
 
-					@Override
-					public void setActionBars(IActionBars actionBars) {
-						super.setActionBars(actionBars);
-						getActionBarContributor().shareGlobalActions(this, actionBars);
-					}
-				};
-			propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
-		}
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
 
 		return propertySheetPage;
 	}
@@ -1482,6 +1501,7 @@ public class FunctionsEditor
 		//
 		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
 		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
 
 		// Do the work within an operation because this is a long running activity that modifies the workbench.
 		//
@@ -1534,7 +1554,7 @@ public class FunctionsEditor
 
 	/**
 	 * This returns whether something has been persisted to the URI of the specified resource.
-	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream. 
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1606,20 +1626,9 @@ public class FunctionsEditor
 	 * @generated
 	 */
 	public void gotoMarker(IMarker marker) {
-		try {
-			if (marker.getType().equals(EValidator.MARKER)) {
-				String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
-				if (uriAttribute != null) {
-					URI uri = URI.createURI(uriAttribute);
-					EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
-					if (eObject != null) {
-					  setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
-					}
-				}
-			}
-		}
-		catch (CoreException exception) {
-			ApplicationlevelEditorPlugin.INSTANCE.log(exception);
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
 		}
 	}
 
@@ -1810,7 +1819,7 @@ public class FunctionsEditor
 			getActionBarContributor().setActiveEditor(null);
 		}
 
-		if (propertySheetPage != null) {
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
 			propertySheetPage.dispose();
 		}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/presentation/FunctionsModelWizard.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/presentation/FunctionsModelWizard.java
index 107ba0098a3e85059844d81b2725c899f3696fdc..40395c27b1a6aaf667e17cc6a22802e89c4587d0 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/presentation/FunctionsModelWizard.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/presentation/FunctionsModelWizard.java
@@ -398,8 +398,7 @@ public class FunctionsModelWizard extends Wizard implements INewWizard {
 		 * @generated
 		 */
 		public void createControl(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE);
-			{
+			Composite composite = new Composite(parent, SWT.NONE); {
 				GridLayout layout = new GridLayout();
 				layout.numColumns = 1;
 				layout.verticalSpacing = 12;
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/presentation/ParameterdependenciesEditor.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/presentation/ParameterdependenciesEditor.java
index 8824a09909f5018c5f771a54edd249429a849d30..871566ba82372071becaea1a06042022be894a0c 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/presentation/ParameterdependenciesEditor.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/presentation/ParameterdependenciesEditor.java
@@ -41,6 +41,8 @@ import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -60,6 +62,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
 
 import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
 import org.eclipse.swt.dnd.Transfer;
 
 import org.eclipse.swt.events.ControlAdapter;
@@ -118,8 +121,6 @@ import org.eclipse.emf.common.util.BasicDiagnostic;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.URI;
 
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EValidator;
 
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
@@ -170,6 +171,8 @@ import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider.Servic
 
 import edu.kit.ipd.descartes.mm.applicationlevel.system.provider.SystemItemProviderAdapterFactory;
 
+import edu.kit.ipd.descartes.mm.resourcetype.provider.ResourcetypeItemProviderAdapterFactory;
+
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 
 
@@ -228,7 +231,7 @@ public class ParameterdependenciesEditor
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected PropertySheetPage propertySheetPage;
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
 
 	/**
 	 * This is the viewer that shadows the selection in the content outline.
@@ -347,7 +350,7 @@ public class ParameterdependenciesEditor
 					}
 				}
 				else if (p instanceof PropertySheet) {
-					if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
 						getActionBarContributor().setActiveEditor(ParameterdependenciesEditor.this);
 						handleActivate();
 					}
@@ -416,7 +419,7 @@ public class ParameterdependenciesEditor
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected EContentAdapter problemIndicationAdapter = 
+	protected EContentAdapter problemIndicationAdapter =
 		new EContentAdapter() {
 			@Override
 			public void notifyChanged(Notification notification) {
@@ -459,6 +462,15 @@ public class ParameterdependenciesEditor
 			@Override
 			protected void unsetTarget(Resource target) {
 				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
 			}
 		};
 
@@ -492,6 +504,7 @@ public class ParameterdependenciesEditor
 										}
 									}
 								}
+								return false;
 							}
 
 							return true;
@@ -610,7 +623,7 @@ public class ParameterdependenciesEditor
 			updateProblemIndication();
 		}
 	}
-  
+
 	/**
 	 * Updates the problems indication with the information described in the specified diagnostic.
 	 * <!-- begin-user-doc -->
@@ -712,6 +725,7 @@ public class ParameterdependenciesEditor
 		adapterFactory.addAdapterFactory(new SystemItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new CoreItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new IdentifierItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ResourcetypeItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
 
 		// Create the command stack that will notify this editor as commands are executed.
@@ -734,8 +748,14 @@ public class ParameterdependenciesEditor
 								  if (mostRecentCommand != null) {
 									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
 								  }
-								  if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
-									  propertySheetPage.refresh();
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
 								  }
 							  }
 						  });
@@ -941,7 +961,7 @@ public class ParameterdependenciesEditor
 		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
 
 		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
 		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
 		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
 	}
@@ -1399,23 +1419,22 @@ public class ParameterdependenciesEditor
 	 * @generated
 	 */
 	public IPropertySheetPage getPropertySheetPage() {
-		if (propertySheetPage == null) {
-			propertySheetPage =
-				new ExtendedPropertySheetPage(editingDomain) {
-					@Override
-					public void setSelectionToViewer(List<?> selection) {
-						ParameterdependenciesEditor.this.setSelectionToViewer(selection);
-						ParameterdependenciesEditor.this.setFocus();
-					}
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					ParameterdependenciesEditor.this.setSelectionToViewer(selection);
+					ParameterdependenciesEditor.this.setFocus();
+				}
 
-					@Override
-					public void setActionBars(IActionBars actionBars) {
-						super.setActionBars(actionBars);
-						getActionBarContributor().shareGlobalActions(this, actionBars);
-					}
-				};
-			propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
-		}
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
 
 		return propertySheetPage;
 	}
@@ -1482,6 +1501,7 @@ public class ParameterdependenciesEditor
 		//
 		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
 		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
 
 		// Do the work within an operation because this is a long running activity that modifies the workbench.
 		//
@@ -1534,7 +1554,7 @@ public class ParameterdependenciesEditor
 
 	/**
 	 * This returns whether something has been persisted to the URI of the specified resource.
-	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream. 
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1606,20 +1626,9 @@ public class ParameterdependenciesEditor
 	 * @generated
 	 */
 	public void gotoMarker(IMarker marker) {
-		try {
-			if (marker.getType().equals(EValidator.MARKER)) {
-				String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
-				if (uriAttribute != null) {
-					URI uri = URI.createURI(uriAttribute);
-					EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
-					if (eObject != null) {
-					  setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
-					}
-				}
-			}
-		}
-		catch (CoreException exception) {
-			ApplicationlevelEditorPlugin.INSTANCE.log(exception);
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
 		}
 	}
 
@@ -1810,7 +1819,7 @@ public class ParameterdependenciesEditor
 			getActionBarContributor().setActiveEditor(null);
 		}
 
-		if (propertySheetPage != null) {
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
 			propertySheetPage.dispose();
 		}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/presentation/ParameterdependenciesModelWizard.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/presentation/ParameterdependenciesModelWizard.java
index 369fa17780b2e4756c99047e584e7f0c9b5a8db9..67a5ec0ae504a771c8eb382b99fa8b6bccc85469 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/presentation/ParameterdependenciesModelWizard.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/presentation/ParameterdependenciesModelWizard.java
@@ -398,8 +398,7 @@ public class ParameterdependenciesModelWizard extends Wizard implements INewWiza
 		 * @generated
 		 */
 		public void createControl(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE);
-			{
+			Composite composite = new Composite(parent, SWT.NONE); {
 				GridLayout layout = new GridLayout();
 				layout.numColumns = 1;
 				layout.verticalSpacing = 12;
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/presentation/ApplicationlevelEditorPlugin.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/presentation/ApplicationlevelEditorPlugin.java
index 598b4fe3b241a7641c822df0719a32d1701eb8c4..aa4f2a437bf752102ae8c78d84c1214af0dbab5c 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/presentation/ApplicationlevelEditorPlugin.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/presentation/ApplicationlevelEditorPlugin.java
@@ -7,6 +7,7 @@ import edu.kit.ipd.descartes.core.provider.CoreEditPlugin;
 
 import edu.kit.ipd.descartes.identifier.provider.IdentifierEditPlugin;
 
+import edu.kit.ipd.descartes.mm.resourcelandscape.provider.ResourcelandscapeEditPlugin;
 import org.eclipse.emf.common.EMFPlugin;
 
 import org.eclipse.emf.common.ui.EclipseUIPlugin;
@@ -47,6 +48,7 @@ public final class ApplicationlevelEditorPlugin extends EMFPlugin {
 			(new ResourceLocator [] {
 				CoreEditPlugin.INSTANCE,
 				IdentifierEditPlugin.INSTANCE,
+				ResourcelandscapeEditPlugin.INSTANCE,
 			});
 	}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/presentation/RepositoryEditor.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/presentation/RepositoryEditor.java
index d17aa093b0a56fe1b072bd7699555b93c0c1c8a2..9a21af090f11b92dae2a3e8ab600c0c37ffeb0f9 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/presentation/RepositoryEditor.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/presentation/RepositoryEditor.java
@@ -41,6 +41,7 @@ import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 
+import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -60,6 +61,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
 
 import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
 import org.eclipse.swt.dnd.Transfer;
 
 import org.eclipse.swt.events.ControlAdapter;
@@ -170,6 +172,7 @@ import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider.Servic
 
 import edu.kit.ipd.descartes.mm.applicationlevel.system.provider.SystemItemProviderAdapterFactory;
 
+import edu.kit.ipd.descartes.mm.resourcetype.provider.ResourcetypeItemProviderAdapterFactory;
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 
 
@@ -228,7 +231,7 @@ public class RepositoryEditor
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected PropertySheetPage propertySheetPage;
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
 
 	/**
 	 * This is the viewer that shadows the selection in the content outline.
@@ -347,7 +350,7 @@ public class RepositoryEditor
 					}
 				}
 				else if (p instanceof PropertySheet) {
-					if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
 						getActionBarContributor().setActiveEditor(RepositoryEditor.this);
 						handleActivate();
 					}
@@ -459,6 +462,15 @@ public class RepositoryEditor
 			@Override
 			protected void unsetTarget(Resource target) {
 				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
 			}
 		};
 
@@ -492,6 +504,7 @@ public class RepositoryEditor
 										}
 									}
 								}
+								return false;
 							}
 
 							return true;
@@ -712,6 +725,7 @@ public class RepositoryEditor
 		adapterFactory.addAdapterFactory(new SystemItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new CoreItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new IdentifierItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ResourcetypeItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
 
 		// Create the command stack that will notify this editor as commands are executed.
@@ -734,8 +748,14 @@ public class RepositoryEditor
 								  if (mostRecentCommand != null) {
 									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
 								  }
-								  if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
-									  propertySheetPage.refresh();
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
 								  }
 							  }
 						  });
@@ -941,7 +961,7 @@ public class RepositoryEditor
 		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
 
 		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
 		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
 		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
 	}
@@ -1399,23 +1419,22 @@ public class RepositoryEditor
 	 * @generated
 	 */
 	public IPropertySheetPage getPropertySheetPage() {
-		if (propertySheetPage == null) {
-			propertySheetPage =
-				new ExtendedPropertySheetPage(editingDomain) {
-					@Override
-					public void setSelectionToViewer(List<?> selection) {
-						RepositoryEditor.this.setSelectionToViewer(selection);
-						RepositoryEditor.this.setFocus();
-					}
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					RepositoryEditor.this.setSelectionToViewer(selection);
+					RepositoryEditor.this.setFocus();
+				}
 
-					@Override
-					public void setActionBars(IActionBars actionBars) {
-						super.setActionBars(actionBars);
-						getActionBarContributor().shareGlobalActions(this, actionBars);
-					}
-				};
-			propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
-		}
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
 
 		return propertySheetPage;
 	}
@@ -1482,6 +1501,7 @@ public class RepositoryEditor
 		//
 		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
 		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
 
 		// Do the work within an operation because this is a long running activity that modifies the workbench.
 		//
@@ -1534,7 +1554,7 @@ public class RepositoryEditor
 
 	/**
 	 * This returns whether something has been persisted to the URI of the specified resource.
-	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream. 
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1606,20 +1626,9 @@ public class RepositoryEditor
 	 * @generated
 	 */
 	public void gotoMarker(IMarker marker) {
-		try {
-			if (marker.getType().equals(EValidator.MARKER)) {
-				String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
-				if (uriAttribute != null) {
-					URI uri = URI.createURI(uriAttribute);
-					EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
-					if (eObject != null) {
-					  setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
-					}
-				}
-			}
-		}
-		catch (CoreException exception) {
-			ApplicationlevelEditorPlugin.INSTANCE.log(exception);
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
 		}
 	}
 
@@ -1810,7 +1819,7 @@ public class RepositoryEditor
 			getActionBarContributor().setActiveEditor(null);
 		}
 
-		if (propertySheetPage != null) {
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
 			propertySheetPage.dispose();
 		}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/presentation/RepositoryModelWizard.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/presentation/RepositoryModelWizard.java
index 78f43ff9610412361d9443dd42de75125971c067..e74f8aa4ef73016cd2e21d1e074913ea571e1a57 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/presentation/RepositoryModelWizard.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/presentation/RepositoryModelWizard.java
@@ -398,8 +398,7 @@ public class RepositoryModelWizard extends Wizard implements INewWizard {
 		 * @generated
 		 */
 		public void createControl(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE);
-			{
+			Composite composite = new Composite(parent, SWT.NONE); {
 				GridLayout layout = new GridLayout();
 				layout.numColumns = 1;
 				layout.verticalSpacing = 12;
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/presentation/ServicebehaviorEditor.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/presentation/ServicebehaviorEditor.java
index 8da3980a912588e5adb317209c6018e7271c8d4b..546902fd44afd4b4494c3a7298d8e4e742f1c52c 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/presentation/ServicebehaviorEditor.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/presentation/ServicebehaviorEditor.java
@@ -41,6 +41,8 @@ import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -60,6 +62,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
 
 import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
 import org.eclipse.swt.dnd.Transfer;
 
 import org.eclipse.swt.events.ControlAdapter;
@@ -118,8 +121,6 @@ import org.eclipse.emf.common.util.BasicDiagnostic;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.URI;
 
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EValidator;
 
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
@@ -170,6 +171,8 @@ import edu.kit.ipd.descartes.mm.applicationlevel.repository.provider.RepositoryI
 
 import edu.kit.ipd.descartes.mm.applicationlevel.system.provider.SystemItemProviderAdapterFactory;
 
+import edu.kit.ipd.descartes.mm.resourcetype.provider.ResourcetypeItemProviderAdapterFactory;
+
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 
 
@@ -228,7 +231,7 @@ public class ServicebehaviorEditor
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected PropertySheetPage propertySheetPage;
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
 
 	/**
 	 * This is the viewer that shadows the selection in the content outline.
@@ -347,7 +350,7 @@ public class ServicebehaviorEditor
 					}
 				}
 				else if (p instanceof PropertySheet) {
-					if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
 						getActionBarContributor().setActiveEditor(ServicebehaviorEditor.this);
 						handleActivate();
 					}
@@ -416,7 +419,7 @@ public class ServicebehaviorEditor
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected EContentAdapter problemIndicationAdapter = 
+	protected EContentAdapter problemIndicationAdapter =
 		new EContentAdapter() {
 			@Override
 			public void notifyChanged(Notification notification) {
@@ -459,6 +462,15 @@ public class ServicebehaviorEditor
 			@Override
 			protected void unsetTarget(Resource target) {
 				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
 			}
 		};
 
@@ -492,6 +504,7 @@ public class ServicebehaviorEditor
 										}
 									}
 								}
+								return false;
 							}
 
 							return true;
@@ -610,7 +623,7 @@ public class ServicebehaviorEditor
 			updateProblemIndication();
 		}
 	}
-  
+
 	/**
 	 * Updates the problems indication with the information described in the specified diagnostic.
 	 * <!-- begin-user-doc -->
@@ -712,6 +725,7 @@ public class ServicebehaviorEditor
 		adapterFactory.addAdapterFactory(new SystemItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new CoreItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new IdentifierItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ResourcetypeItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
 
 		// Create the command stack that will notify this editor as commands are executed.
@@ -734,8 +748,14 @@ public class ServicebehaviorEditor
 								  if (mostRecentCommand != null) {
 									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
 								  }
-								  if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
-									  propertySheetPage.refresh();
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
 								  }
 							  }
 						  });
@@ -941,7 +961,7 @@ public class ServicebehaviorEditor
 		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
 
 		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
 		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
 		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
 	}
@@ -1399,23 +1419,22 @@ public class ServicebehaviorEditor
 	 * @generated
 	 */
 	public IPropertySheetPage getPropertySheetPage() {
-		if (propertySheetPage == null) {
-			propertySheetPage =
-				new ExtendedPropertySheetPage(editingDomain) {
-					@Override
-					public void setSelectionToViewer(List<?> selection) {
-						ServicebehaviorEditor.this.setSelectionToViewer(selection);
-						ServicebehaviorEditor.this.setFocus();
-					}
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					ServicebehaviorEditor.this.setSelectionToViewer(selection);
+					ServicebehaviorEditor.this.setFocus();
+				}
 
-					@Override
-					public void setActionBars(IActionBars actionBars) {
-						super.setActionBars(actionBars);
-						getActionBarContributor().shareGlobalActions(this, actionBars);
-					}
-				};
-			propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
-		}
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
 
 		return propertySheetPage;
 	}
@@ -1482,6 +1501,7 @@ public class ServicebehaviorEditor
 		//
 		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
 		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
 
 		// Do the work within an operation because this is a long running activity that modifies the workbench.
 		//
@@ -1534,7 +1554,7 @@ public class ServicebehaviorEditor
 
 	/**
 	 * This returns whether something has been persisted to the URI of the specified resource.
-	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream. 
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1606,20 +1626,9 @@ public class ServicebehaviorEditor
 	 * @generated
 	 */
 	public void gotoMarker(IMarker marker) {
-		try {
-			if (marker.getType().equals(EValidator.MARKER)) {
-				String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
-				if (uriAttribute != null) {
-					URI uri = URI.createURI(uriAttribute);
-					EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
-					if (eObject != null) {
-					  setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
-					}
-				}
-			}
-		}
-		catch (CoreException exception) {
-			ApplicationlevelEditorPlugin.INSTANCE.log(exception);
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
 		}
 	}
 
@@ -1810,7 +1819,7 @@ public class ServicebehaviorEditor
 			getActionBarContributor().setActiveEditor(null);
 		}
 
-		if (propertySheetPage != null) {
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
 			propertySheetPage.dispose();
 		}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/presentation/ServicebehaviorModelWizard.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/presentation/ServicebehaviorModelWizard.java
index 6473db2c83b5cf2ad0e259970e0779d55a905ae7..e68f5b8f8c4fc8abe63c2bd40dd12378bfe802c8 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/presentation/ServicebehaviorModelWizard.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/presentation/ServicebehaviorModelWizard.java
@@ -398,8 +398,7 @@ public class ServicebehaviorModelWizard extends Wizard implements INewWizard {
 		 * @generated
 		 */
 		public void createControl(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE);
-			{
+			Composite composite = new Composite(parent, SWT.NONE); {
 				GridLayout layout = new GridLayout();
 				layout.numColumns = 1;
 				layout.verticalSpacing = 12;
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/system/presentation/SystemEditor.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/system/presentation/SystemEditor.java
index 1c919e7f1f135219922ba13dfde841d7438a47df..bc76b631ed8123de3247d9fcca143be02320e56f 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/system/presentation/SystemEditor.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/system/presentation/SystemEditor.java
@@ -41,6 +41,7 @@ import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 
+import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -60,6 +61,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
 
 import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
 import org.eclipse.swt.dnd.Transfer;
 
 import org.eclipse.swt.events.ControlAdapter;
@@ -170,6 +172,7 @@ import edu.kit.ipd.descartes.mm.applicationlevel.repository.provider.RepositoryI
 
 import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider.ServicebehaviorItemProviderAdapterFactory;
 
+import edu.kit.ipd.descartes.mm.resourcetype.provider.ResourcetypeItemProviderAdapterFactory;
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 
 
@@ -228,7 +231,7 @@ public class SystemEditor
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected PropertySheetPage propertySheetPage;
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
 
 	/**
 	 * This is the viewer that shadows the selection in the content outline.
@@ -347,7 +350,7 @@ public class SystemEditor
 					}
 				}
 				else if (p instanceof PropertySheet) {
-					if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
 						getActionBarContributor().setActiveEditor(SystemEditor.this);
 						handleActivate();
 					}
@@ -459,6 +462,15 @@ public class SystemEditor
 			@Override
 			protected void unsetTarget(Resource target) {
 				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
 			}
 		};
 
@@ -492,6 +504,7 @@ public class SystemEditor
 										}
 									}
 								}
+								return false;
 							}
 
 							return true;
@@ -712,6 +725,7 @@ public class SystemEditor
 		adapterFactory.addAdapterFactory(new SystemItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new CoreItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new IdentifierItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ResourcetypeItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
 
 		// Create the command stack that will notify this editor as commands are executed.
@@ -734,8 +748,14 @@ public class SystemEditor
 								  if (mostRecentCommand != null) {
 									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
 								  }
-								  if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
-									  propertySheetPage.refresh();
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
 								  }
 							  }
 						  });
@@ -941,7 +961,7 @@ public class SystemEditor
 		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
 
 		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
 		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
 		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
 	}
@@ -1399,23 +1419,22 @@ public class SystemEditor
 	 * @generated
 	 */
 	public IPropertySheetPage getPropertySheetPage() {
-		if (propertySheetPage == null) {
-			propertySheetPage =
-				new ExtendedPropertySheetPage(editingDomain) {
-					@Override
-					public void setSelectionToViewer(List<?> selection) {
-						SystemEditor.this.setSelectionToViewer(selection);
-						SystemEditor.this.setFocus();
-					}
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					SystemEditor.this.setSelectionToViewer(selection);
+					SystemEditor.this.setFocus();
+				}
 
-					@Override
-					public void setActionBars(IActionBars actionBars) {
-						super.setActionBars(actionBars);
-						getActionBarContributor().shareGlobalActions(this, actionBars);
-					}
-				};
-			propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
-		}
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
 
 		return propertySheetPage;
 	}
@@ -1482,6 +1501,7 @@ public class SystemEditor
 		//
 		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
 		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
 
 		// Do the work within an operation because this is a long running activity that modifies the workbench.
 		//
@@ -1534,7 +1554,7 @@ public class SystemEditor
 
 	/**
 	 * This returns whether something has been persisted to the URI of the specified resource.
-	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream. 
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1606,20 +1626,9 @@ public class SystemEditor
 	 * @generated
 	 */
 	public void gotoMarker(IMarker marker) {
-		try {
-			if (marker.getType().equals(EValidator.MARKER)) {
-				String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
-				if (uriAttribute != null) {
-					URI uri = URI.createURI(uriAttribute);
-					EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
-					if (eObject != null) {
-					  setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
-					}
-				}
-			}
-		}
-		catch (CoreException exception) {
-			ApplicationlevelEditorPlugin.INSTANCE.log(exception);
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
 		}
 	}
 
@@ -1810,7 +1819,7 @@ public class SystemEditor
 			getActionBarContributor().setActiveEditor(null);
 		}
 
-		if (propertySheetPage != null) {
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
 			propertySheetPage.dispose();
 		}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/system/presentation/SystemModelWizard.java b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/system/presentation/SystemModelWizard.java
index 9138a4a0d1aeef4038ba4bc94eb02862bec3bc7a..5aa9b8899193d8606f60738ae0ea98200b2a4bb5 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/system/presentation/SystemModelWizard.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel.editor/src/edu/kit/ipd/descartes/mm/applicationlevel/system/presentation/SystemModelWizard.java
@@ -398,8 +398,7 @@ public class SystemModelWizard extends Wizard implements INewWizard {
 		 * @generated
 		 */
 		public void createControl(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE);
-			{
+			Composite composite = new Composite(parent, SWT.NONE); {
 				GridLayout layout = new GridLayout();
 				layout.numColumns = 1;
 				layout.verticalSpacing = 12;
diff --git a/edu.kit.ipd.descartes.mm.workload.edit/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.mm.workload.edit/META-INF/MANIFEST.MF
index a60e885a9c964cfcc84d0077bfb5af6c5f1211ca..760af452a1cbc92236c535fcc0395bbe91f9c27c 100644
--- a/edu.kit.ipd.descartes.mm.workload.edit/META-INF/MANIFEST.MF
+++ b/edu.kit.ipd.descartes.mm.workload.edit/META-INF/MANIFEST.MF
@@ -17,5 +17,7 @@ Require-Bundle: org.eclipse.core.runtime,
  edu.kit.ipd.descartes.core;visibility:=reexport,
  edu.kit.ipd.descartes.core.edit;visibility:=reexport,
  edu.kit.ipd.descartes.identifier;visibility:=reexport,
- edu.kit.ipd.descartes.identifier.edit;visibility:=reexport
+ edu.kit.ipd.descartes.identifier.edit;visibility:=reexport,
+ edu.kit.ipd.descartes.mm.resourcelandscape;visibility:=reexport,
+ edu.kit.ipd.descartes.mm.resourcelandscape.edit;visibility:=reexport
 Bundle-ActivationPolicy: lazy
diff --git a/edu.kit.ipd.descartes.mm.workload.edit/icons/full/ctool16/CreateBranchUserAction_branchUserProbabilities_ExplicitDescription.gif b/edu.kit.ipd.descartes.mm.workload.edit/icons/full/ctool16/CreateBranchUserAction_branchUserProbabilities_ExplicitDescription.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b033b9d17bec867a04fbef0481c6e0bbd76f9000
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.workload.edit/icons/full/ctool16/CreateBranchUserAction_branchUserProbabilities_ExplicitDescription.gif differ
diff --git a/edu.kit.ipd.descartes.mm.workload.edit/plugin.properties b/edu.kit.ipd.descartes.mm.workload.edit/plugin.properties
index 0073fdbdb875b4356c73e6f616ba6ac53c3a5e3d..fc4edd0c48132df9737e75d0a51ad516a7829564 100644
--- a/edu.kit.ipd.descartes.mm.workload.edit/plugin.properties
+++ b/edu.kit.ipd.descartes.mm.workload.edit/plugin.properties
@@ -78,3 +78,4 @@ _UI_CallParameterSetting_value_feature = Value
 _UI_Workload_systems_feature = Systems
 _UI_Workload_system_feature = System
 _UI_EntryLevelSystemCall_providingRole_feature = Providing Role
+_UI_LoopUserAction_loopIterationCount_feature = Loop Iteration Count
diff --git a/edu.kit.ipd.descartes.mm.workload.edit/plugin.xml b/edu.kit.ipd.descartes.mm.workload.edit/plugin.xml
index b067c3ad7102059dbfb9dc7f9a16089426bf6881..78567e94c3c6f0c09f9dbb5a6455aaa710bb4f4f 100644
--- a/edu.kit.ipd.descartes.mm.workload.edit/plugin.xml
+++ b/edu.kit.ipd.descartes.mm.workload.edit/plugin.xml
@@ -19,4 +19,17 @@
                org.eclipse.emf.edit.provider.IItemPropertySource"/>
    </extension>
 
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <!-- @generated workload -->
+      <factory
+            uri="http://www.descartes-research.net/metamodel/workload/0.1"
+            class="edu.kit.ipd.descartes.mm.workload.provider.WorkloadItemProviderAdapterFactory"
+            supportedTypes=
+              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+               org.eclipse.emf.edit.provider.ITreeItemContentProvider
+               org.eclipse.emf.edit.provider.IItemLabelProvider
+               org.eclipse.emf.edit.provider.IItemPropertySource"/>
+   </extension>
+
 </plugin>
diff --git a/edu.kit.ipd.descartes.mm.workload.edit/src/edu/kit/ipd/descartes/mm/workload/provider/LoopUserActionItemProvider.java b/edu.kit.ipd.descartes.mm.workload.edit/src/edu/kit/ipd/descartes/mm/workload/provider/LoopUserActionItemProvider.java
index 33da517b5d4051d827ae617aa1c6ddcbe327a8ac..73283e4e70dbd8cb87480d4f65486058a6712907 100644
--- a/edu.kit.ipd.descartes.mm.workload.edit/src/edu/kit/ipd/descartes/mm/workload/provider/LoopUserActionItemProvider.java
+++ b/edu.kit.ipd.descartes.mm.workload.edit/src/edu/kit/ipd/descartes/mm/workload/provider/LoopUserActionItemProvider.java
@@ -60,25 +60,25 @@ public class LoopUserActionItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addLoopIterationCountDistributionPropertyDescriptor(object);
+			addLoopIterationCountPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Loop Iteration Count Distribution feature.
+	 * This adds a property descriptor for the Loop Iteration Count feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addLoopIterationCountDistributionPropertyDescriptor(Object object) {
+	protected void addLoopIterationCountPropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_LoopUserAction_loopIterationCountDistribution_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_LoopUserAction_loopIterationCountDistribution_feature", "_UI_LoopUserAction_type"),
-				 WorkloadPackage.Literals.LOOP_USER_ACTION__LOOP_ITERATION_COUNT_DISTRIBUTION,
+				 getString("_UI_LoopUserAction_loopIterationCount_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_LoopUserAction_loopIterationCount_feature", "_UI_LoopUserAction_type"),
+				 WorkloadPackage.Literals.LOOP_USER_ACTION__LOOP_ITERATION_COUNT,
 				 true,
 				 false,
 				 true,
diff --git a/edu.kit.ipd.descartes.mm.workload.edit/src/edu/kit/ipd/descartes/mm/workload/provider/WorkloadEditPlugin.java b/edu.kit.ipd.descartes.mm.workload.edit/src/edu/kit/ipd/descartes/mm/workload/provider/WorkloadEditPlugin.java
index e84907e375aa239897e78fc96876611c6ccd2016..4a23c782569ec3d7d6060374fe84bebf239f808e 100644
--- a/edu.kit.ipd.descartes.mm.workload.edit/src/edu/kit/ipd/descartes/mm/workload/provider/WorkloadEditPlugin.java
+++ b/edu.kit.ipd.descartes.mm.workload.edit/src/edu/kit/ipd/descartes/mm/workload/provider/WorkloadEditPlugin.java
@@ -9,6 +9,7 @@ import edu.kit.ipd.descartes.identifier.provider.IdentifierEditPlugin;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 
+import edu.kit.ipd.descartes.mm.resourcelandscape.provider.ResourcelandscapeEditPlugin;
 import org.eclipse.emf.common.EMFPlugin;
 
 import org.eclipse.emf.common.util.ResourceLocator;
@@ -48,6 +49,7 @@ public final class WorkloadEditPlugin extends EMFPlugin {
 		     ApplicationlevelEditPlugin.INSTANCE,
 		     CoreEditPlugin.INSTANCE,
 		     IdentifierEditPlugin.INSTANCE,
+		     ResourcelandscapeEditPlugin.INSTANCE,
 		   });
 	}
 
diff --git a/edu.kit.ipd.descartes.mm.workload.editor/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.mm.workload.editor/META-INF/MANIFEST.MF
index c8477f41205685eb9f9f689cf11ce95f6055c45a..a62881f6955ab8f90cab4b485308782cd69a3e47 100644
--- a/edu.kit.ipd.descartes.mm.workload.editor/META-INF/MANIFEST.MF
+++ b/edu.kit.ipd.descartes.mm.workload.editor/META-INF/MANIFEST.MF
@@ -17,5 +17,6 @@ Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.ui.ide;visibility:=reexport,
  edu.kit.ipd.descartes.mm.applicationlevel.edit;visibility:=reexport,
  edu.kit.ipd.descartes.core.edit;visibility:=reexport,
- edu.kit.ipd.descartes.identifier.edit;visibility:=reexport
+ edu.kit.ipd.descartes.identifier.edit;visibility:=reexport,
+ edu.kit.ipd.descartes.mm.resourcelandscape.edit;visibility:=reexport
 Bundle-ActivationPolicy: lazy
diff --git a/edu.kit.ipd.descartes.mm.workload.editor/plugin.xml b/edu.kit.ipd.descartes.mm.workload.editor/plugin.xml
index 7c309d7ede3b0ad6417aa8029f3318fa0ad9c134..307b6fa86e5823bfbbc538d5abcb19451c8a55ce 100644
--- a/edu.kit.ipd.descartes.mm.workload.editor/plugin.xml
+++ b/edu.kit.ipd.descartes.mm.workload.editor/plugin.xml
@@ -22,6 +22,18 @@
       </wizard>
    </extension>
 
+   <extension point="org.eclipse.ui.editors">
+      <!-- @generated workload -->
+      <editor
+            id="edu.kit.ipd.descartes.mm.workload.presentation.WorkloadEditorID"
+            name="%_UI_WorkloadEditor_label"
+            icon="icons/full/obj16/WorkloadModelFile.gif"
+            extensions="workload"
+            class="edu.kit.ipd.descartes.mm.workload.presentation.WorkloadEditor"
+            contributorClass="edu.kit.ipd.descartes.mm.workload.presentation.WorkloadActionBarContributor">
+      </editor>
+   </extension>
+
    <extension point="org.eclipse.ui.editors">
       <editor
             id="edu.kit.ipd.descartes.mm.workload.workload.presentation.WorkloadEditorID"
diff --git a/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadEditor.java b/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadEditor.java
index 648ca18dadca61af7605c7e7f6ca5f1823193fa7..0fccc7f009b1a5fd8f7bc2ff5ee0af113229f1a6 100644
--- a/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadEditor.java
+++ b/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadEditor.java
@@ -41,6 +41,7 @@ import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 
+import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -60,6 +61,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
 
 import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
 import org.eclipse.swt.dnd.Transfer;
 
 import org.eclipse.swt.events.ControlAdapter;
@@ -170,6 +172,7 @@ import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.provider.Servic
 
 import edu.kit.ipd.descartes.mm.applicationlevel.system.provider.SystemItemProviderAdapterFactory;
 
+import edu.kit.ipd.descartes.mm.resourcetype.provider.ResourcetypeItemProviderAdapterFactory;
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 
 
@@ -228,7 +231,7 @@ public class WorkloadEditor
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected PropertySheetPage propertySheetPage;
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
 
 	/**
 	 * This is the viewer that shadows the selection in the content outline.
@@ -347,7 +350,7 @@ public class WorkloadEditor
 					}
 				}
 				else if (p instanceof PropertySheet) {
-					if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
 						getActionBarContributor().setActiveEditor(WorkloadEditor.this);
 						handleActivate();
 					}
@@ -459,6 +462,15 @@ public class WorkloadEditor
 			@Override
 			protected void unsetTarget(Resource target) {
 				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
 			}
 		};
 
@@ -492,6 +504,7 @@ public class WorkloadEditor
 										}
 									}
 								}
+								return false;
 							}
 
 							return true;
@@ -713,6 +726,7 @@ public class WorkloadEditor
 		adapterFactory.addAdapterFactory(new CoreItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new IdentifierItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new SystemItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ResourcetypeItemProviderAdapterFactory());
 		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
 
 		// Create the command stack that will notify this editor as commands are executed.
@@ -735,8 +749,14 @@ public class WorkloadEditor
 								  if (mostRecentCommand != null) {
 									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
 								  }
-								  if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
-									  propertySheetPage.refresh();
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
 								  }
 							  }
 						  });
@@ -942,7 +962,7 @@ public class WorkloadEditor
 		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
 
 		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
 		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
 		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
 	}
@@ -1400,23 +1420,22 @@ public class WorkloadEditor
 	 * @generated
 	 */
 	public IPropertySheetPage getPropertySheetPage() {
-		if (propertySheetPage == null) {
-			propertySheetPage =
-				new ExtendedPropertySheetPage(editingDomain) {
-					@Override
-					public void setSelectionToViewer(List<?> selection) {
-						WorkloadEditor.this.setSelectionToViewer(selection);
-						WorkloadEditor.this.setFocus();
-					}
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					WorkloadEditor.this.setSelectionToViewer(selection);
+					WorkloadEditor.this.setFocus();
+				}
 
-					@Override
-					public void setActionBars(IActionBars actionBars) {
-						super.setActionBars(actionBars);
-						getActionBarContributor().shareGlobalActions(this, actionBars);
-					}
-				};
-			propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
-		}
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
 
 		return propertySheetPage;
 	}
@@ -1483,6 +1502,7 @@ public class WorkloadEditor
 		//
 		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
 		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
 
 		// Do the work within an operation because this is a long running activity that modifies the workbench.
 		//
@@ -1535,7 +1555,7 @@ public class WorkloadEditor
 
 	/**
 	 * This returns whether something has been persisted to the URI of the specified resource.
-	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream. 
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1607,20 +1627,9 @@ public class WorkloadEditor
 	 * @generated
 	 */
 	public void gotoMarker(IMarker marker) {
-		try {
-			if (marker.getType().equals(EValidator.MARKER)) {
-				String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
-				if (uriAttribute != null) {
-					URI uri = URI.createURI(uriAttribute);
-					EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
-					if (eObject != null) {
-					  setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
-					}
-				}
-			}
-		}
-		catch (CoreException exception) {
-			WorkloadEditorPlugin.INSTANCE.log(exception);
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
 		}
 	}
 
@@ -1811,7 +1820,7 @@ public class WorkloadEditor
 			getActionBarContributor().setActiveEditor(null);
 		}
 
-		if (propertySheetPage != null) {
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
 			propertySheetPage.dispose();
 		}
 
diff --git a/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadEditorPlugin.java b/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadEditorPlugin.java
index 1c2efc0abc328c8c433d7cc44513f5abe1cfa9ab..332bc373e70f982d1dc58084bfed60a6b9c8e17a 100644
--- a/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadEditorPlugin.java
+++ b/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadEditorPlugin.java
@@ -9,6 +9,7 @@ import edu.kit.ipd.descartes.identifier.provider.IdentifierEditPlugin;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.provider.ApplicationlevelEditPlugin;
 
+import edu.kit.ipd.descartes.mm.resourcelandscape.provider.ResourcelandscapeEditPlugin;
 import org.eclipse.emf.common.EMFPlugin;
 
 import org.eclipse.emf.common.ui.EclipseUIPlugin;
@@ -50,6 +51,7 @@ public final class WorkloadEditorPlugin extends EMFPlugin {
 				ApplicationlevelEditPlugin.INSTANCE,
 				CoreEditPlugin.INSTANCE,
 				IdentifierEditPlugin.INSTANCE,
+				ResourcelandscapeEditPlugin.INSTANCE,
 			});
 	}
 
diff --git a/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadModelWizard.java b/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadModelWizard.java
index 18dd32525ae1135282a599fc7b8dea96a62a817e..0438d7c39ca62bc9b682f58a4d381e0c7d16c03b 100644
--- a/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadModelWizard.java
+++ b/edu.kit.ipd.descartes.mm.workload.editor/src/edu/kit/ipd/descartes/mm/workload/presentation/WorkloadModelWizard.java
@@ -396,8 +396,7 @@ public class WorkloadModelWizard extends Wizard implements INewWizard {
 		 * @generated
 		 */
 		public void createControl(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE);
-			{
+			Composite composite = new Composite(parent, SWT.NONE); {
 				GridLayout layout = new GridLayout();
 				layout.numColumns = 1;
 				layout.verticalSpacing = 12;