diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/applicationlevel.genmodel b/edu.kit.ipd.descartes.mm.applicationlevel/model/applicationlevel.genmodel
index 864239d7ff8e8a239b38468d39f2008764863019..99303976b7f108c94983404c27b188080cc6febd 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/applicationlevel.genmodel
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/applicationlevel.genmodel
@@ -84,6 +84,7 @@
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference functions.ecore#//Power/exponent"/>
     </genClasses>
     <genClasses ecoreClass="functions.ecore#//RandomVariable">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute functions.ecore#//RandomVariable/specification"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference functions.ecore#//RandomVariable/probFunction"/>
     </genClasses>
     <genClasses image="false" ecoreClass="functions.ecore#//ProbabilityFunction"/>
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore
index f3ed1c48dcd2eb06a02fe53a515fdcba58bbfb12..05068a7de61baadb0d256d096f1fd4b259095244 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore
@@ -3,8 +3,8 @@
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="functions" nsURI="http://www.descartes-research.net/metamodel/functions/0.1"
     nsPrefix="functions">
   <eAnnotations source="http://www.eclipse.org/OCL/Import">
+    <details key="ecore_0" value="http://www.eclipse.org/emf/2002/Ecore"/>
     <details key="repository_0" value="repository.ecore#/"/>
-    <details key="ecore_0" value="http://www.eclipse.org/emf/2002/Ecore#/"/>
   </eAnnotations>
   <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true"/>
   <eClassifiers xsi:type="ecore:EClass" name="ExplicitDescription">
@@ -90,6 +90,7 @@
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="RandomVariable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="specification" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="probFunction" eType="#//ProbabilityFunction"
         containment="true"/>
   </eClassifiers>
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore.oclinecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore.oclinecore
index d04818b73ced97b514f0e49ddb87b3cf84ff39f0..937022f027d6e190511a1e1fdb0c98edabb57e86 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore.oclinecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/functions.ecore.oclinecore
@@ -93,6 +93,7 @@ package functions : functions = 'http://www.descartes-research.net/metamodel/fun
 	--#########################################################
 	
 	class RandomVariable {
+		attribute specification : String[0..1];
 		property probFunction : ProbabilityFunction[0..1] {composes};
 	}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore
index f21a3674db1c39b5b4e1d0f4d858dcb05b9533d5..b2038b35fee946b1a5c972d4e7e4c246d81ae165 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore
@@ -39,7 +39,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="characterization" lowerBound="1"
         eType="#//ModelVariableCharacterizationType"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//ExplicitDescription"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//RandomVariable"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InfluencedVariableReference">
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore.oclinecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore.oclinecore
index 2af6b009537f5f7887d10741dfcf7d1f17ffb94a..027336f165943b676239ea0b04c5e81dd8c16815 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore.oclinecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore.oclinecore
@@ -28,7 +28,7 @@ package parameterdependencies : parameterdependencies = 'http://www.descartes-re
 	
 	abstract class ControlFlowVariable extends ModelVariable {
 		attribute characterization : ModelVariableCharacterizationType[1];
-		property explicitDescription : functions_0::ExplicitDescription[?] { composes };
+		property explicitDescription : functions_0::RandomVariable[?] { composes };
 		invariant EnforceExplicitDescriptionWhenExplicitCharacterizationType :
 			self.characterization = RelationshipCharacterizationType::EXPLICIT implies explicitDescription <> null;
 	}
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore
index bffcd0eb8eeb5fac0c6901dcbe947a5de7482fec..931ac563718be78eaed6cde63d1e286e995a2e94 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore
@@ -125,7 +125,7 @@
         eType="ecore:EClass ../../edu.kit.ipd.descartes.mm.resourcelandscape/model/resourcetype.ecore#//ResourceType"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="characterization" lowerBound="1"
         eType="ecore:EEnum parameterdependency.ecore#//ModelVariableCharacterizationType"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//ExplicitDescription"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//RandomVariable"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CoarseGrainedBehavior" eSuperTypes="#//ServiceBehaviorAbstraction">
@@ -181,7 +181,7 @@
         eType="#//BlackBoxBehavior" eOpposite="#//BlackBoxBehavior/responseTime"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="characterization" lowerBound="1"
         eType="ecore:EEnum parameterdependency.ecore#//ModelVariableCharacterizationType"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//ExplicitDescription"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//RandomVariable"
         containment="true"/>
   </eClassifiers>
 </ecore:EPackage>
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore.oclinecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore.oclinecore
index 7aebdda3886667b52a8cc9073dbf1aa4f83aefef..f0822f3815361999e9011c0115208bf5cd6c6e03 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore.oclinecore
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/servicebehavior.ecore.oclinecore
@@ -85,7 +85,7 @@ package servicebehavior : servicebehavior = 'http://www.descartes-research.net/m
 		property resourceType : resourcetype_0::ResourceType[1];		
 		
 		attribute characterization : parameterdependencies::ModelVariableCharacterizationType[1];
-		property explicitDescription : functions_0::ExplicitDescription[?] { composes };
+		property explicitDescription : functions_0::RandomVariable[?] { composes };
 		invariant EnforceExplicitDescriptionWhenExplicitCharacterizationType :
 		   self.characterization = parameterdependencies::RelationshipCharacterizationType::EXPLICIT implies explicitDescription <> null;
 		
@@ -156,7 +156,7 @@ package servicebehavior : servicebehavior = 'http://www.descartes-research.net/m
 		property blackBoxBehavior#responseTime : BlackBoxBehavior[1];
 		
 		attribute characterization : parameterdependencies::ModelVariableCharacterizationType[1];
-		property explicitDescription : functions_0::ExplicitDescription[?] { composes };
+		property explicitDescription : functions_0::RandomVariable[?] { composes };
 		invariant EnforceExplicitDescriptionWhenExplicitCharacterizationType :
 			self.characterization = parameterdependencies::RelationshipCharacterizationType::EXPLICIT implies explicitDescription <> null;
 	}
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/FunctionsPackage.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/FunctionsPackage.java
index 658f94752862b484486dafae3424201a67f32ba8..aefccab02ee1f3f4a40b1142bdbb7cbaa278c896 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/FunctionsPackage.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/FunctionsPackage.java
@@ -22,7 +22,7 @@ import org.eclipse.emf.ecore.EReference;
  * <!-- end-user-doc -->
  * @see edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsFactory
  * @model kind="package"
- *        annotation="http://www.eclipse.org/OCL/Import repository_0='repository.ecore#/' ecore_0='http://www.eclipse.org/emf/2002/Ecore#/'"
+ *        annotation="http://www.eclipse.org/OCL/Import ecore_0='http://www.eclipse.org/emf/2002/Ecore' repository_0='repository.ecore#/'"
  * @generated
  */
 public interface FunctionsPackage extends EPackage {
@@ -503,6 +503,15 @@ public interface FunctionsPackage extends EPackage {
 	 */
 	int RANDOM_VARIABLE = 12;
 
+	/**
+	 * The feature id for the '<em><b>Specification</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RANDOM_VARIABLE__SPECIFICATION = 0;
+
 	/**
 	 * The feature id for the '<em><b>Prob Function</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
@@ -510,7 +519,7 @@ public interface FunctionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int RANDOM_VARIABLE__PROB_FUNCTION = 0;
+	int RANDOM_VARIABLE__PROB_FUNCTION = 1;
 
 	/**
 	 * The number of structural features of the '<em>Random Variable</em>' class.
@@ -519,7 +528,7 @@ public interface FunctionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int RANDOM_VARIABLE_FEATURE_COUNT = 1;
+	int RANDOM_VARIABLE_FEATURE_COUNT = 2;
 
 	/**
 	 * The meta object id for the '{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.impl.ProbabilityFunctionImpl <em>Probability Function</em>}' class.
@@ -1561,6 +1570,17 @@ public interface FunctionsPackage extends EPackage {
 	 */
 	EClass getRandomVariable();
 
+	/**
+	 * Returns the meta object for the attribute '{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getSpecification <em>Specification</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Specification</em>'.
+	 * @see edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getSpecification()
+	 * @see #getRandomVariable()
+	 * @generated
+	 */
+	EAttribute getRandomVariable_Specification();
+
 	/**
 	 * Returns the meta object for the containment reference '{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getProbFunction <em>Prob Function</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2410,6 +2430,14 @@ public interface FunctionsPackage extends EPackage {
 		 */
 		EClass RANDOM_VARIABLE = eINSTANCE.getRandomVariable();
 
+		/**
+		 * The meta object literal for the '<em><b>Specification</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute RANDOM_VARIABLE__SPECIFICATION = eINSTANCE.getRandomVariable_Specification();
+
 		/**
 		 * The meta object literal for the '<em><b>Prob Function</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/RandomVariable.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/RandomVariable.java
index ef0c67762a588b8d498be3b0840bcc8c492f13d2..cade47f413711168f8d76ebed25e5e8c61ce3f18 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/RandomVariable.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/RandomVariable.java
@@ -13,6 +13,7 @@ import org.eclipse.emf.ecore.EObject;
  * <p>
  * The following features are supported:
  * <ul>
+ *   <li>{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getSpecification <em>Specification</em>}</li>
  *   <li>{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getProbFunction <em>Prob Function</em>}</li>
  * </ul>
  * </p>
@@ -22,6 +23,32 @@ import org.eclipse.emf.ecore.EObject;
  * @generated
  */
 public interface RandomVariable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Specification</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Specification</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Specification</em>' attribute.
+	 * @see #setSpecification(String)
+	 * @see edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsPackage#getRandomVariable_Specification()
+	 * @model
+	 * @generated
+	 */
+	String getSpecification();
+
+	/**
+	 * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable#getSpecification <em>Specification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Specification</em>' attribute.
+	 * @see #getSpecification()
+	 * @generated
+	 */
+	void setSpecification(String value);
+
 	/**
 	 * Returns the value of the '<em><b>Prob Function</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/FunctionsPackageImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/FunctionsPackageImpl.java
index 59b2154b57e8de1087e29b7b43c71507c07b35c8..e1f08004ed5d2aa878a2aa86255850c954b4e1d1 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/FunctionsPackageImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/FunctionsPackageImpl.java
@@ -753,13 +753,22 @@ public class FunctionsPackageImpl extends EPackageImpl implements FunctionsPacka
 		return randomVariableEClass;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRandomVariable_Specification() {
+		return (EAttribute)randomVariableEClass.getEStructuralFeatures().get(0);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public EReference getRandomVariable_ProbFunction() {
-		return (EReference)randomVariableEClass.getEStructuralFeatures().get(0);
+		return (EReference)randomVariableEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1270,6 +1279,7 @@ public class FunctionsPackageImpl extends EPackageImpl implements FunctionsPacka
 		createEReference(powerEClass, POWER__EXPONENT);
 
 		randomVariableEClass = createEClass(RANDOM_VARIABLE);
+		createEAttribute(randomVariableEClass, RANDOM_VARIABLE__SPECIFICATION);
 		createEReference(randomVariableEClass, RANDOM_VARIABLE__PROB_FUNCTION);
 
 		probabilityFunctionEClass = createEClass(PROBABILITY_FUNCTION);
@@ -1452,6 +1462,7 @@ public class FunctionsPackageImpl extends EPackageImpl implements FunctionsPacka
 		initEReference(getPower_Exponent(), this.getExpression(), null, "exponent", null, 0, 1, Power.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(randomVariableEClass, RandomVariable.class, "RandomVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getRandomVariable_Specification(), ecorePackage.getEString(), "specification", null, 0, 1, RandomVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getRandomVariable_ProbFunction(), this.getProbabilityFunction(), null, "probFunction", null, 0, 1, RandomVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(probabilityFunctionEClass, ProbabilityFunction.class, "ProbabilityFunction", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1563,8 +1574,8 @@ public class FunctionsPackageImpl extends EPackageImpl implements FunctionsPacka
 		  (this, 
 		   source, 
 		   new String[] {
-			 "repository_0", "repository.ecore#/",
-			 "ecore_0", "http://www.eclipse.org/emf/2002/Ecore#/"
+			 "ecore_0", "http://www.eclipse.org/emf/2002/Ecore",
+			 "repository_0", "repository.ecore#/"
 		   });
 	}
 
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/RandomVariableImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/RandomVariableImpl.java
index 24a4b45d1e6776707dd567913c757b8f9cbace18..920283bf398acd57bce4bf0a805b10a47bfc0fc9 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/RandomVariableImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/functions/impl/RandomVariableImpl.java
@@ -23,6 +23,7 @@ import org.eclipse.emf.ecore.impl.EObjectImpl;
  * <p>
  * The following features are implemented:
  * <ul>
+ *   <li>{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.impl.RandomVariableImpl#getSpecification <em>Specification</em>}</li>
  *   <li>{@link edu.kit.ipd.descartes.mm.applicationlevel.functions.impl.RandomVariableImpl#getProbFunction <em>Prob Function</em>}</li>
  * </ul>
  * </p>
@@ -30,6 +31,24 @@ import org.eclipse.emf.ecore.impl.EObjectImpl;
  * @generated
  */
 public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
+	/**
+	 * The default value of the '{@link #getSpecification() <em>Specification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSpecification()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SPECIFICATION_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getSpecification() <em>Specification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSpecification()
+	 * @generated
+	 * @ordered
+	 */
+	protected String specification = SPECIFICATION_EDEFAULT;
 	/**
 	 * The cached value of the '{@link #getProbFunction() <em>Prob Function</em>}' containment reference.
 	 * <!-- begin-user-doc -->
@@ -59,6 +78,27 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 		return FunctionsPackage.Literals.RANDOM_VARIABLE;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSpecification() {
+		return specification;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSpecification(String newSpecification) {
+		String oldSpecification = specification;
+		specification = newSpecification;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION, oldSpecification, specification));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124,6 +164,8 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION:
+				return getSpecification();
 			case FunctionsPackage.RANDOM_VARIABLE__PROB_FUNCTION:
 				return getProbFunction();
 		}
@@ -138,6 +180,9 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION:
+				setSpecification((String)newValue);
+				return;
 			case FunctionsPackage.RANDOM_VARIABLE__PROB_FUNCTION:
 				setProbFunction((ProbabilityFunction)newValue);
 				return;
@@ -153,6 +198,9 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION:
+				setSpecification(SPECIFICATION_EDEFAULT);
+				return;
 			case FunctionsPackage.RANDOM_VARIABLE__PROB_FUNCTION:
 				setProbFunction((ProbabilityFunction)null);
 				return;
@@ -168,10 +216,28 @@ public class RandomVariableImpl extends EObjectImpl implements RandomVariable {
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case FunctionsPackage.RANDOM_VARIABLE__SPECIFICATION:
+				return SPECIFICATION_EDEFAULT == null ? specification != null : !SPECIFICATION_EDEFAULT.equals(specification);
 			case FunctionsPackage.RANDOM_VARIABLE__PROB_FUNCTION:
 				return probFunction != null;
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (specification: ");
+		result.append(specification);
+		result.append(')');
+		return result.toString();
+	}
+
 } //RandomVariableImpl
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ControlFlowVariable.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ControlFlowVariable.java
index 69c9544db2c103e242b03313100cbfdfb74cd079..3b955ec837f4d7fa75514a7f9760973d0f4c35d3 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ControlFlowVariable.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ControlFlowVariable.java
@@ -4,6 +4,7 @@
 package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 
 /**
  * <!-- begin-user-doc -->
@@ -63,12 +64,12 @@ public interface ControlFlowVariable extends ModelVariable {
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Explicit Description</em>' containment reference.
-	 * @see #setExplicitDescription(ExplicitDescription)
+	 * @see #setExplicitDescription(RandomVariable)
 	 * @see edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage#getControlFlowVariable_ExplicitDescription()
 	 * @model containment="true"
 	 * @generated
 	 */
-	ExplicitDescription getExplicitDescription();
+	RandomVariable getExplicitDescription();
 
 	/**
 	 * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ControlFlowVariable#getExplicitDescription <em>Explicit Description</em>}' containment reference.
@@ -78,6 +79,6 @@ public interface ControlFlowVariable extends ModelVariable {
 	 * @see #getExplicitDescription()
 	 * @generated
 	 */
-	void setExplicitDescription(ExplicitDescription value);
+	void setExplicitDescription(RandomVariable value);
 
 } // ControlFlowVariable
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ControlFlowVariableImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ControlFlowVariableImpl.java
index 43112f1288f8cb3a104458834f1feba60110c1bd..415c2a67b1f3318ea19f6c5b4daa0fb59e584ec8 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ControlFlowVariableImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ControlFlowVariableImpl.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.impl;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 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;
@@ -60,7 +61,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 	 * @generated
 	 * @ordered
 	 */
-	protected ExplicitDescription explicitDescription;
+	protected RandomVariable explicitDescription;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -107,7 +108,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ExplicitDescription getExplicitDescription() {
+	public RandomVariable getExplicitDescription() {
 		return explicitDescription;
 	}
 
@@ -116,8 +117,8 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetExplicitDescription(ExplicitDescription newExplicitDescription, NotificationChain msgs) {
-		ExplicitDescription oldExplicitDescription = explicitDescription;
+	public NotificationChain basicSetExplicitDescription(RandomVariable newExplicitDescription, NotificationChain msgs) {
+		RandomVariable oldExplicitDescription = explicitDescription;
 		explicitDescription = newExplicitDescription;
 		if (eNotificationRequired()) {
 			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ParameterdependenciesPackage.CONTROL_FLOW_VARIABLE__EXPLICIT_DESCRIPTION, oldExplicitDescription, newExplicitDescription);
@@ -131,7 +132,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setExplicitDescription(ExplicitDescription newExplicitDescription) {
+	public void setExplicitDescription(RandomVariable newExplicitDescription) {
 		if (newExplicitDescription != explicitDescription) {
 			NotificationChain msgs = null;
 			if (explicitDescription != null)
@@ -187,7 +188,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 				setCharacterization((ModelVariableCharacterizationType)newValue);
 				return;
 			case ParameterdependenciesPackage.CONTROL_FLOW_VARIABLE__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)newValue);
+				setExplicitDescription((RandomVariable)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -205,7 +206,7 @@ public abstract class ControlFlowVariableImpl extends ModelVariableImpl implemen
 				setCharacterization(CHARACTERIZATION_EDEFAULT);
 				return;
 			case ParameterdependenciesPackage.CONTROL_FLOW_VARIABLE__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)null);
+				setExplicitDescription((RandomVariable)null);
 				return;
 		}
 		super.eUnset(featureID);
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java
index 6541cbe0bce92605ffdb49ba5dfd035aaae364d0..dfbc398f8ba4d7c3ef2be1702d6ebcc25d47ab30 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java
@@ -844,7 +844,7 @@ public class ParameterdependenciesPackageImpl extends EPackageImpl implements Pa
 
 		initEClass(controlFlowVariableEClass, ControlFlowVariable.class, "ControlFlowVariable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getControlFlowVariable_Characterization(), this.getModelVariableCharacterizationType(), "characterization", null, 1, 1, ControlFlowVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getControlFlowVariable_ExplicitDescription(), theFunctionsPackage.getExplicitDescription(), null, "explicitDescription", null, 0, 1, ControlFlowVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getControlFlowVariable_ExplicitDescription(), theFunctionsPackage.getRandomVariable(), null, "explicitDescription", null, 0, 1, ControlFlowVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(influencedVariableReferenceEClass, InfluencedVariableReference.class, "InfluencedVariableReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getInfluencedVariableReference_GetInfluencedVariable(), this.getModelVariable(), null, "getInfluencedVariable", null, 1, 1, InfluencedVariableReference.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResourceDemand.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResourceDemand.java
index 5cbea30e80d638d365ab3b4780b2daed86eb0be4..078301a59579103fcc43df6f8b0fa57cdf6b5bf8 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResourceDemand.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResourceDemand.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 
@@ -152,12 +153,12 @@ public interface ResourceDemand extends ModelVariable {
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Explicit Description</em>' containment reference.
-	 * @see #setExplicitDescription(ExplicitDescription)
+	 * @see #setExplicitDescription(RandomVariable)
 	 * @see edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ServicebehaviorPackage#getResourceDemand_ExplicitDescription()
 	 * @model containment="true"
 	 * @generated
 	 */
-	ExplicitDescription getExplicitDescription();
+	RandomVariable getExplicitDescription();
 
 	/**
 	 * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResourceDemand#getExplicitDescription <em>Explicit Description</em>}' containment reference.
@@ -167,6 +168,6 @@ public interface ResourceDemand extends ModelVariable {
 	 * @see #getExplicitDescription()
 	 * @generated
 	 */
-	void setExplicitDescription(ExplicitDescription value);
+	void setExplicitDescription(RandomVariable value);
 
 } // ResourceDemand
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResponseTime.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResponseTime.java
index b79cfb945762173c5e9b8a89644122d87e9ab609..84111891914d3c373849667c9334375d5dbd2fd8 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResponseTime.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/ResponseTime.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 
@@ -94,12 +95,12 @@ public interface ResponseTime extends ModelVariable {
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Explicit Description</em>' containment reference.
-	 * @see #setExplicitDescription(ExplicitDescription)
+	 * @see #setExplicitDescription(RandomVariable)
 	 * @see edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ServicebehaviorPackage#getResponseTime_ExplicitDescription()
 	 * @model containment="true"
 	 * @generated
 	 */
-	ExplicitDescription getExplicitDescription();
+	RandomVariable getExplicitDescription();
 
 	/**
 	 * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResponseTime#getExplicitDescription <em>Explicit Description</em>}' containment reference.
@@ -109,6 +110,6 @@ public interface ResponseTime extends ModelVariable {
 	 * @see #getExplicitDescription()
 	 * @generated
 	 */
-	void setExplicitDescription(ExplicitDescription value);
+	void setExplicitDescription(RandomVariable value);
 
 } // ResponseTime
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResourceDemandImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResourceDemandImpl.java
index 9f10ec6a22b922f42a632ebdfdf3c0d28d3a8b79..1055a541583a2ad9f6cc3b253d383cdb15e02633 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResourceDemandImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResourceDemandImpl.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.impl;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.impl.ModelVariableImpl;
@@ -82,7 +83,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 	 * @generated
 	 * @ordered
 	 */
-	protected ExplicitDescription explicitDescription;
+	protected RandomVariable explicitDescription;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -249,7 +250,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ExplicitDescription getExplicitDescription() {
+	public RandomVariable getExplicitDescription() {
 		return explicitDescription;
 	}
 
@@ -258,8 +259,8 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetExplicitDescription(ExplicitDescription newExplicitDescription, NotificationChain msgs) {
-		ExplicitDescription oldExplicitDescription = explicitDescription;
+	public NotificationChain basicSetExplicitDescription(RandomVariable newExplicitDescription, NotificationChain msgs) {
+		RandomVariable oldExplicitDescription = explicitDescription;
 		explicitDescription = newExplicitDescription;
 		if (eNotificationRequired()) {
 			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ServicebehaviorPackage.RESOURCE_DEMAND__EXPLICIT_DESCRIPTION, oldExplicitDescription, newExplicitDescription);
@@ -273,7 +274,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setExplicitDescription(ExplicitDescription newExplicitDescription) {
+	public void setExplicitDescription(RandomVariable newExplicitDescription) {
 		if (newExplicitDescription != explicitDescription) {
 			NotificationChain msgs = null;
 			if (explicitDescription != null)
@@ -385,7 +386,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 				setCharacterization((ModelVariableCharacterizationType)newValue);
 				return;
 			case ServicebehaviorPackage.RESOURCE_DEMAND__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)newValue);
+				setExplicitDescription((RandomVariable)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -412,7 +413,7 @@ public class ResourceDemandImpl extends ModelVariableImpl implements ResourceDem
 				setCharacterization(CHARACTERIZATION_EDEFAULT);
 				return;
 			case ServicebehaviorPackage.RESOURCE_DEMAND__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)null);
+				setExplicitDescription((RandomVariable)null);
 				return;
 		}
 		super.eUnset(featureID);
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResponseTimeImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResponseTimeImpl.java
index 268a51f22330e43d6afa7f60d1242730fe98a42e..54597609ae527b6c8ea818d26fe5af89465ead44 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResponseTimeImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ResponseTimeImpl.java
@@ -5,6 +5,7 @@ package edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.impl;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.functions.ExplicitDescription;
 
+import edu.kit.ipd.descartes.mm.applicationlevel.functions.RandomVariable;
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ModelVariableCharacterizationType;
 
 import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.impl.ModelVariableImpl;
@@ -67,7 +68,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 	 * @generated
 	 * @ordered
 	 */
-	protected ExplicitDescription explicitDescription;
+	protected RandomVariable explicitDescription;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -155,7 +156,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ExplicitDescription getExplicitDescription() {
+	public RandomVariable getExplicitDescription() {
 		return explicitDescription;
 	}
 
@@ -164,8 +165,8 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetExplicitDescription(ExplicitDescription newExplicitDescription, NotificationChain msgs) {
-		ExplicitDescription oldExplicitDescription = explicitDescription;
+	public NotificationChain basicSetExplicitDescription(RandomVariable newExplicitDescription, NotificationChain msgs) {
+		RandomVariable oldExplicitDescription = explicitDescription;
 		explicitDescription = newExplicitDescription;
 		if (eNotificationRequired()) {
 			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ServicebehaviorPackage.RESPONSE_TIME__EXPLICIT_DESCRIPTION, oldExplicitDescription, newExplicitDescription);
@@ -179,7 +180,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setExplicitDescription(ExplicitDescription newExplicitDescription) {
+	public void setExplicitDescription(RandomVariable newExplicitDescription) {
 		if (newExplicitDescription != explicitDescription) {
 			NotificationChain msgs = null;
 			if (explicitDescription != null)
@@ -272,7 +273,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 				setCharacterization((ModelVariableCharacterizationType)newValue);
 				return;
 			case ServicebehaviorPackage.RESPONSE_TIME__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)newValue);
+				setExplicitDescription((RandomVariable)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -293,7 +294,7 @@ public class ResponseTimeImpl extends ModelVariableImpl implements ResponseTime
 				setCharacterization(CHARACTERIZATION_EDEFAULT);
 				return;
 			case ServicebehaviorPackage.RESPONSE_TIME__EXPLICIT_DESCRIPTION:
-				setExplicitDescription((ExplicitDescription)null);
+				setExplicitDescription((RandomVariable)null);
 				return;
 		}
 		super.eUnset(featureID);
diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ServicebehaviorPackageImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ServicebehaviorPackageImpl.java
index 411a3a6c94fc50ec00d4311f5e8aae4b1d879d24..c6f5a73121a121f20e89cf2f34f75bbf360fc3a4 100644
--- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ServicebehaviorPackageImpl.java
+++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/servicebehavior/impl/ServicebehaviorPackageImpl.java
@@ -1033,7 +1033,7 @@ public class ServicebehaviorPackageImpl extends EPackageImpl implements Serviceb
 		initEReference(getResourceDemand_CoarseGrainedBehavior(), this.getCoarseGrainedBehavior(), this.getCoarseGrainedBehavior_ResourceDemand(), "coarseGrainedBehavior", null, 0, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getResourceDemand_ResourceType(), theResourcetypePackage.getResourceType(), null, "resourceType", null, 1, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getResourceDemand_Characterization(), theParameterdependenciesPackage.getModelVariableCharacterizationType(), "characterization", null, 1, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getResourceDemand_ExplicitDescription(), theFunctionsPackage.getExplicitDescription(), null, "explicitDescription", null, 0, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getResourceDemand_ExplicitDescription(), theFunctionsPackage.getRandomVariable(), null, "explicitDescription", null, 0, 1, ResourceDemand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(coarseGrainedBehaviorEClass, CoarseGrainedBehavior.class, "CoarseGrainedBehavior", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getCoarseGrainedBehavior_DescribedEntity(), theRepositoryPackage.getInterfaceProvidingRequiringEntity(), null, "describedEntity", null, 1, 1, CoarseGrainedBehavior.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1055,7 +1055,7 @@ public class ServicebehaviorPackageImpl extends EPackageImpl implements Serviceb
 		initEClass(responseTimeEClass, ResponseTime.class, "ResponseTime", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getResponseTime_BlackBoxBehavior(), this.getBlackBoxBehavior(), this.getBlackBoxBehavior_ResponseTime(), "blackBoxBehavior", null, 1, 1, ResponseTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getResponseTime_Characterization(), theParameterdependenciesPackage.getModelVariableCharacterizationType(), "characterization", null, 1, 1, ResponseTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getResponseTime_ExplicitDescription(), theFunctionsPackage.getExplicitDescription(), null, "explicitDescription", null, 0, 1, ResponseTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getResponseTime_ExplicitDescription(), theFunctionsPackage.getRandomVariable(), null, "explicitDescription", null, 0, 1, ResponseTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		// Create resource
 		createResource(eNS_URI);