diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 43a74af3eb65d33858186970a4c5ce5b766cb555..1fa34a1ab1a52e668ab94ac6578fdf6b33e56517 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -787,6 +787,29 @@ module OneM2M_Functions {
 				return v_resourceIndex;
 
 			}
+			
+			/**
+			 * @desc Getting the address of the last resource saved in the vc_resourcesList
+			 * @param p_tester Given component
+			 */
+			function f_getLatestResourceAddress(in Tester p_component, AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on Tester return XSD.ID {
+				var XSD.ID v_resourceAddress;
+
+				f_connectInfoPort(p_component);
+
+				p_component.start(f_sendLatestResourceAddress(p_addressingMethod, p_primitiveScope));
+				alt {
+					[]infoPort.receive(mw_resourceAddress) -> value v_resourceAddress{
+					}
+				}
+
+				p_component.done;
+				f_disconnectInfoPort(p_component);
+
+				return v_resourceAddress;
+
+			}
+			
 
 			/**
 			 * @desc Getting the latest local resource from an CseSimu component
@@ -933,6 +956,16 @@ module OneM2M_Functions {
 					
 			}
 			
+			/**
+			 * @desc Sending the address of the last resource saved in the vc_resourcesList
+			 */	
+			function f_sendLatestResourceAddress(AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on Tester {
+			
+				infoPort.send(f_getResourceAddress(lengthof(vc_resourcesList)-1, p_addressingMethod, p_primitiveScope));
+		
+			} 
+			
+			
 			/**
 			 * @desc Sending of the latest resource through InfoPort
 			 */	
@@ -1018,6 +1051,7 @@ module OneM2M_Functions {
 							f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive);
 							
 							vc_aeIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2);
+							vc_componentRegistered := true;
 							
 							if(ispresent(v_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){
 								f_sendAcPrimitive("AE-ID_changed", vc_aeIndex);
@@ -1027,11 +1061,9 @@ module OneM2M_Functions {
 					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 						tc_ac.stop;
 						setverdict(inconc, __SCOPE__&":INFO: Error while registering application");
-						stop;
 					}
 					[] tc_ac.timeout {
 						setverdict(inconc, __SCOPE__&":INFO: No answer while registering resource");
-						stop;
 					}
 				}	
 				
@@ -1076,6 +1108,7 @@ module OneM2M_Functions {
 						if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.aE)) {
 							
 							vc_aeIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, int2);
+							vc_componentRegistered := true;
 							
 							if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){
 								f_sendAcPrimitive("AE-ID_changed", vc_aeIndex);
@@ -1086,16 +1119,13 @@ module OneM2M_Functions {
 					{
 						tc_ac.stop;
 						setverdict(inconc, __SCOPE__&":INFO: Error while registering application");
-						stop;
 					}
 					[] mcaPort.receive {
 						tc_ac.stop;
 						setverdict(inconc, __SCOPE__&":INFO: Unexpected message received");
-						stop;
 					}
 					[] tc_ac.timeout {
 						setverdict(inconc, __SCOPE__&":INFO: No answer while registering resource");
-						stop;
 					}
 				}	
 				
@@ -1410,6 +1440,7 @@ module OneM2M_Functions {
 						v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, p_parentIndex);
 						if(p_resourceType == int2) {
 							vc_aeIndex := v_resourceIndex;
+							vc_componentRegistered := true;
 							if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){
 								f_sendAcPrimitive("AE-ID_changed", vc_aeIndex);
 							}
@@ -2386,6 +2417,12 @@ module OneM2M_Functions {
 						v_localResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, p_responseStatusCode);
 						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
 					}
+					[] mccPortIn.receive(mw_request(mw_create)) -> value vc_request {
+						tc_ac.stop;
+						v_localResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
+						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
+						setverdict(inconc, __SCOPE__&":INFO: Wrong expected create request");
+					}
 					[] tc_ac.timeout {
 						setverdict(inconc, __SCOPE__&":INFO: No creation for resource received");
 					}
@@ -2527,6 +2564,12 @@ module OneM2M_Functions {
 						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
 						
 					}
+					[] mccPortIn.receive(mw_request(mw_update)) -> value vc_request {
+						tc_ac.stop;
+						v_targetResourceIndex := f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
+						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
+						setverdict(inconc, __SCOPE__&":INFO: Wrong expected update request");
+					}
 					[] tc_ac.timeout {
 						setverdict(inconc, __SCOPE__&":INFO: No answer while updating resource");
 					}
@@ -2562,6 +2605,12 @@ module OneM2M_Functions {
 						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
 						
 					}
+					[] mccPortIn.receive(mw_request(mw_retrieve(?))) -> value vc_request {
+						tc_ac.stop;
+						v_targetResourceIndex := f_processRetrieveRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
+						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
+						setverdict(inconc, __SCOPE__&":INFO: Wrong expected retrieve request");
+					}
 					[] tc_ac.timeout {
 						setverdict(inconc, __SCOPE__&":INFO: No answer while retrieving resource");
 					}
@@ -2676,6 +2725,12 @@ module OneM2M_Functions {
 						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
 						
 					}
+					[] mccPortIn.receive(mw_request(mw_delete)) -> value vc_request {
+						tc_ac.stop;
+						v_targetResourceIndex := f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
+						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
+						setverdict(inconc, __SCOPE__&":INFO: Wrong expected delete request");
+					}
 					[] tc_ac.timeout {
 						setverdict(inconc, __SCOPE__&":INFO: No answer while retrieving resource");
 					}
@@ -2783,6 +2838,10 @@ module OneM2M_Functions {
 						setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly");
 						f_checkAttributesToBeSaved(int16, v_request, v_response.primitive.responsePrimitive);
 						vc_remoteCseIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int16, -1);
+						vc_componentRegistered := true;
+						if(ispresent(v_response.primitive.responsePrimitive.primitiveContent.remoteCSE.cSE_ID)){
+							f_sendAcPrimitive("CSE-ID_changed", vc_remoteCseIndex);
+						}
 						v_localRemoteCSEResource := f_generateLocalResource(valueof(m_primitiveContentRemoteCSE(m_contentLocalRemoteCSEResource(f_getLocalPoA(PX_TS_CSE1.mccPortIn, "")))), vc_cSEBaseIndex, int16); // FIXME To be review not sure we have to use CSE1
 						vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex);
 					}
@@ -2829,6 +2888,7 @@ module OneM2M_Functions {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly");
 						v_localRemoteCSEResource := f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, vc_cSEBaseIndex, int16);//TODO Get index from v_request.primitive.requestPrimitive.to_
+						v_localRemoteCSEResource.remoteCSE.cSE_ID := v_request.primitive.requestPrimitive.from_;
 						vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex);
 						
 						v_response := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier));
@@ -2838,6 +2898,7 @@ module OneM2M_Functions {
 						f_send(e_mcc_in_port, m_response(v_response));
 						
 						vc_remoteCseIndex := f_setResource(valueof(m_primitiveContentRemoteCSE(m_contentMyRemoteCSEResource(f_getLocalPoA(PX_TS_CSE1.mcaPortIn, "")))), int16, -1, true);
+						vc_componentRegistered := true;
 						v_resourceIndex := vc_remoteCseIndex;
 						v_remoteCSERegistered:=true;
 						tc_ac.start(10.0);
@@ -3414,6 +3475,7 @@ module OneM2M_Functions {
 						v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, p_parentIndex);
 						if(p_resourceType == int16) {	//remoteCSE
 							vc_remoteCseIndex := v_resourceIndex;
+							vc_componentRegistered := true;
 						}
 					}
 					[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) {
@@ -4297,6 +4359,13 @@ module OneM2M_Functions {
 					}	
 				}  
 			} else if (p_resourceType == int4) {//contentInstance
+			} else if (p_resourceType == int30) {//timeSeriesInstance
+				//dataGenerationTime
+				if(ispresent(p_request.primitiveContent.timeSeriesInstance.dataGenerationTime)) {
+					if(match(valueof(p_request.primitiveContent.timeSeriesInstance.dataGenerationTime), {alt_ := "29991231T000000"} )){
+						p_request.primitiveContent.timeSeriesInstance.dataGenerationTime := {alt_ := fx_generateTimestamp()};
+					}
+				}
 			}
 
 			return valueof(p_request);
@@ -5589,7 +5658,7 @@ module OneM2M_Functions {
 			 * @param data Corresponding information for the correct execution of the given action
 			 * @verdict 
 			 */
-			function f_sendAcPrimitive(in charstring p_event, in integer p_aeIndex) runs on Tester {
+			function f_sendAcPrimitive(in charstring p_event, in integer p_resourceIndex, template (omit) XSD.ID p_originator := omit) runs on Tester {
 				var XSD.ID v_aeResourceAddress;
 				var charstring v_spRelativeAeIdForMqtt;
 				
@@ -5597,8 +5666,8 @@ module OneM2M_Functions {
 				
 					case ("AE-ID_changed") {
 						//Calculate the SP-Relative-AE-ID following format defined in TS-0010 MQTT
-						v_aeResourceAddress := f_getResourceAddress(p_aeIndex, e_nonHierarchical, e_spRelative);
-						if(vc_resourcesList[p_aeIndex].resource.aE.aE_ID[0] == "S") {
+						v_aeResourceAddress := f_getResourceAddress(p_resourceIndex, e_nonHierarchical, e_spRelative);
+						if(vc_resourcesList[p_resourceIndex].resource.aE.aE_ID[0] == "S") {
 							v_spRelativeAeIdForMqtt := oct2char(unichar2oct(f_resourceIdCleaner(v_aeResourceAddress)));
 						} else {
 							v_spRelativeAeIdForMqtt := f_getSpRelativeAeIdForMqtt(v_aeResourceAddress);
@@ -5621,6 +5690,25 @@ module OneM2M_Functions {
 							}
 						}
 					}
+					case ("CSE-ID_changed") {
+						//TODO Check for other resource address formats
+						v_spRelativeAeIdForMqtt := oct2char(unichar2oct(f_resourceIdCleaner(vc_resourcesList[p_resourceIndex].resource.remoteCSE.cSE_ID)));
+						
+						if((((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) and (vc_testSystemRole == e_cse)) or (vc_config == e_cf04)) {
+							if(vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_in_port))].myProtocolBinding == "MQTT") {
+								acPort.send(AcRequestPrimitive:{p_event & "_mccPort", {charstring := v_spRelativeAeIdForMqtt}});	
+							}
+							if(vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_in_port))].myProtocolBinding == "MQTT") {
+								acPort.send(AcRequestPrimitive:{p_event  & "_mccPortIn", {charstring := v_spRelativeAeIdForMqtt}});	
+							}
+						}
+					}
+					case ("MqttSetDefaultTopicToNotRegistration") {
+						acPort.send(AcRequestPrimitive:{p_event, {charstring := oct2char(unichar2oct(p_originator))}});
+					}
+					case ("MqttSetDefaultTopicToRegistration") {
+						acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_resourceIndex)}});
+					}
 				} 
 			}
 		}//end of group AcFunctions
@@ -5676,6 +5764,9 @@ module OneM2M_Functions {
 				if(p_responseStatusCode == int2001) {
 					setverdict(pass, __SCOPE__&":INFO: Resource created successfuly");
 					v_localResource := f_generateLocalResource(p_request.primitiveContent, v_parentIndex, p_request.resourceType);
+					if(p_request.resourceType == int16){
+						v_localResource.remoteCSE.cSE_ID := p_request.from_;
+					}
 					v_localResourceIndex := f_setLocalResource(v_localResource, p_request.resourceType, v_parentIndex);
 					vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_localResourceIndex].resource;
 				} else {
@@ -5938,9 +6029,47 @@ module OneM2M_Functions {
 			p_msgOut.protocolBinding := vc_myInterfaces[enum2int(p_interfaceIds)].myProtocolBinding;
 			p_msgOut.serialization := vc_myInterfaces[enum2int(p_interfaceIds)].mySerialization;
 			log("f_send: protocolBinding=", p_msgOut.protocolBinding);
+			if(ischosen(p_msgOut.primitive.requestPrimitive)){
+				p_msgOut.primitive.requestPrimitive.requestIdentifier := p_msgOut.primitive.requestPrimitive.requestIdentifier & f_rnd(1, 1000000);
+				vc_request.primitive.requestPrimitive := valueof(p_msgOut.primitive.requestPrimitive);
+			}
+			if(not(vc_componentRegistered)) {
+				if(valueof(p_msgOut.protocolBinding) == "MQTT") {
+					if(ischosen(p_msgOut.primitive.requestPrimitive)) {
+						if(ispresent(p_msgOut.primitive.requestPrimitive.resourceType))	{
+							if((valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int2) and (valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int16)){
+								//Modify default topic to publish a non-registration message
+								f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_));
+								vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+								f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
+								return;
+							}
+						} else {//RETRIEVE - UPDATE - DELETE - NOTIFY
+							//Modify default topic to publish a non-registration message
+							f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_));
+							vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+							f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
+							return;
+						}
+					}
+				} 
+			}
+			//TODO: Handle response to normal messages before CSE registration occurs
 			vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
 		}
 		
+		/**
+		 * @desc Get a converted to string random number 
+		 * @param p_lower Lower limit 
+		 * @param p_upper Upper limit
+		 * @return Random number converted to string
+		 * @verdict 
+		 */
+		function f_rnd(in integer p_lower, in integer p_upper) return charstring {
+			
+			return int2str(float2int(rnd() * int2float(p_upper - p_lower + 1)) + p_lower);	
+		}
+		
 	}//end of commonFunctions
 	
 	group externalFunctions {
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 92f447192d72f341f9fbfb1754841a791298b3dc..aa52cf85fe79b0fec33ff7d15bfd4a1a2d3bf076 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -15,21 +15,7 @@ module OneM2M_Templates {
 	import from OneM2M_Types all;
 	import from OneM2M_TypesAndValues all;
 	import from OneM2M_Pixits all;
-	import from OneM2M_Functions all;
-		
-	/**
-	 * @desc Get a converted to string random number 
-	 * @param p_lower Lower limit 
-	 * @param p_upper Upper limit
-	 * @return Random number converted to string
-	 * @verdict 
-	 */
-	function f_rnd(in integer p_lower, in integer p_upper) return charstring {
-		
-		return int2str(float2int(rnd() * int2float(p_upper - p_lower + 1)) + p_lower);	
-	}
-
-
+		
 	/* Templates */
 	
 	group Primitives {
@@ -101,7 +87,7 @@ module OneM2M_Templates {
 				operation := int2,
 				to_ := p_targetResourceAddress,
 				from_ := p_originator,
-				requestIdentifier := "m_retrieve" & f_rnd(1, 1000000),
+				requestIdentifier := "m_retrieve",
 				resourceType := omit,
 				primitiveContent := omit,
 				roleIDs := omit, 
@@ -161,10 +147,10 @@ module OneM2M_Templates {
 			 * @desc Base Receive RETRIEVE request primitive
 			 * @param p_targetResourceAddress Target resource address
 			 */
-			template RequestPrimitive mw_retrieve(template XSD.ID p_targetResourceAddress) := {
+			template RequestPrimitive mw_retrieve(template XSD.ID p_targetResourceAddress, template XSD.ID p_from := ?) := {
 				operation := int2,
 				to_ := p_targetResourceAddress,
-				from_ := ?,
+				from_ := p_from,
 				requestIdentifier := ?,
 				resourceType := omit,
 				primitiveContent := *,
@@ -198,7 +184,7 @@ module OneM2M_Templates {
         		operation := int2,
         		to_ := p_targetResourceAddress,
         		from_ := p_originator,
-        		requestIdentifier := "m_retrieveResourceAttributeOptionTo" & f_rnd(1, 1000000),
+        		requestIdentifier := "m_retrieveResourceAttributeOptionTo",
         		resourceType := omit,
 				primitiveContent := omit, 
 				roleIDs := omit,
@@ -232,7 +218,7 @@ module OneM2M_Templates {
 				operation := int2,
 				to_ := p_targetResourceAddress,
 				from_ := p_originator,
-				requestIdentifier := "m_retrieveResourceAttributeContentOption" & f_rnd(1, 1000000),
+				requestIdentifier := "m_retrieveResourceAttributeContentOption",
 				resourceType := omit,
 				primitiveContent := {attributeList := p_attributeList},
 				roleIDs := omit,
@@ -263,7 +249,7 @@ module OneM2M_Templates {
 			  * @param p_originator Originator (from)
 		     */
 			template (value) RequestPrimitive m_retrieveFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage) modifies m_retrieve := {
-				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
+				requestIdentifier := "m_retrieveResourceFilterUsageOption",
 				filterCriteria := {
 					createdBefore := omit,
 					createdAfter := omit,
@@ -297,7 +283,7 @@ module OneM2M_Templates {
 			  * @param p_originator Originator (from)
 			 */
 			template (value) RequestPrimitive m_retrieveFilterCriteria(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterCriteria p_filterCriteria) modifies m_retrieve := {
-				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
+				requestIdentifier := "m_retrieveResourceFilterUsageOption",
 				filterCriteria := p_filterCriteria
 			};
 			
@@ -309,7 +295,7 @@ module OneM2M_Templates {
 			  * @param p_labels Labels
 			 */
 			template (value) RequestPrimitive m_retrieveFilterUsageOptionLabel(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage, in Labels p_labels) modifies m_retrieve := {
-				requestIdentifier := "m_retrieveResourceFilterUsageOptionLabel" & f_rnd(1, 1000000),
+				requestIdentifier := "m_retrieveResourceFilterUsageOptionLabel",
 				filterCriteria := {
 					createdBefore := omit,
 					createdAfter := omit,
@@ -342,7 +328,7 @@ module OneM2M_Templates {
 			  * @param p_originator Originator (from)
 			 */
 			template (value) RequestPrimitive m_retrieveDiscResTypeFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) DesIdResType p_desIdResType, in template (value) FilterUsage p_filterUsage) modifies m_retrieve := {
-				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
+				requestIdentifier := "m_retrieveResourceFilterUsageOption",
 				filterCriteria := {
 					createdBefore := omit,
 					createdAfter := omit,
@@ -377,7 +363,7 @@ module OneM2M_Templates {
 			  * @param p_originator Originator (from)
 			 */
 			template (value) RequestPrimitive m_retrieveInvalidFormatOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieve := {
-				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
+				requestIdentifier := "m_retrieveResourceFilterUsageOption",
 				filterCriteria := {
 					createdBefore := omit,
 					createdAfter := omit,
@@ -477,7 +463,7 @@ module OneM2M_Templates {
 			};
         	
 						
-			template RequestPrimitive mw_update(template XSD.ID p_from := *, template XSD.ID p_to := ?) := {
+			template RequestPrimitive mw_update(template XSD.ID p_from := ?, template XSD.ID p_to := ?) := {
 				operation := int3,
 				to_ := p_to,
 				from_ := p_from,
@@ -916,17 +902,17 @@ module OneM2M_Templates {
 			/**
 			 * @desc Base CREATE request primitive for remoteCSE resource
 			 */
-			template (value) RequestPrimitive m_createRemoteCSEBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName :=  c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId, in template (omit) XSD.ID p_cSE_ID := PX_TS_CSE1.cseId) modifies m_create := {
+			template (value) RequestPrimitive m_createRemoteCSEBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName :=  c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId) modifies m_create := {
 				requestIdentifier := testcasename() & "-m_createRemoteCSE",
 				resourceType := int16,
-				primitiveContent := {remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID)}
+				primitiveContent := {remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase)}
 			};
 			
 			/**
 			 * @desc CREATE request primitive for remoteCSE resource with poa
 			 */
 			template (value) RequestPrimitive m_createRemoteCSE_poa(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName :=  c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId & "/" & PX_TS_CSE1.cseName, in template (omit) XSD.ID p_cSE_ID := PX_TS_CSE1.cseId, in PoaList p_poaList) modifies m_createRemoteCSEBase := {
-				primitiveContent := {remoteCSE := m_contentCreateRemoteCSE_poa(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID, p_poaList)}
+				primitiveContent := {remoteCSE := m_contentCreateRemoteCSE_poa(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_poaList)}
 			};
 			
 			/**
@@ -1397,7 +1383,7 @@ module OneM2M_Templates {
         		operation := int4,
         		to_ := p_resourceAddress,
         		from_ := p_originator,
-				requestIdentifier := testcasename() & "-m_delete" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_delete",
         		resourceType := omit,
         		primitiveContent := omit, 
 				roleIDs := omit, 
@@ -1421,10 +1407,10 @@ module OneM2M_Templates {
 				vendorInformation := omit
 			};
 
-			template  RequestPrimitive mw_delete(template XSD.ID p_resourceAddress := ?, template XSD.ID p_from := *) := {
+			template  RequestPrimitive mw_delete(template XSD.ID p_resourceAddress := ?, template XSD.ID p_from := ?) := {
 				operation := int4,
 				to_ := p_resourceAddress,
-				from_ := ?,
+				from_ := p_from,
 				requestIdentifier := ?,
 				resourceType := omit,
 				primitiveContent := omit, 
@@ -1468,7 +1454,7 @@ module OneM2M_Templates {
 				operation := int5,
 				to_ := p_resourceAddress,
 				from_ := "NotInitialized",
-				requestIdentifier := testcasename() & "-m_notify" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_notify",
 				resourceType := omit,
 				primitiveContent := {notification := m_contentNotification_allOmit},
 				roleIDs := omit,
@@ -1515,7 +1501,7 @@ module OneM2M_Templates {
 				operation := int5,
 				to_ := "NotInitialized",
 				from_ := omit,
-				requestIdentifier := testcasename() & "-m_notifyAggregatedNotification" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_notifyAggregatedNotification",
 				resourceType := omit,
 				primitiveContent := {aggregatedNotification := {notification_list := {m_contentNotification_allOmit,m_contentNotification_allOmit}}},
 				roleIDs := omit,
@@ -2503,7 +2489,7 @@ module OneM2M_Templates {
 			announcedAttribute := omit,//O
 			stateTag := omit,//NP
 			creator := omit,//O
-			contentInfo := "a",//O
+			contentInfo := "text/strings:0",//O
 			contentSize := omit,//NP
 			contentRef := omit, //O
 			ontologyRef := omit,//O
@@ -2681,7 +2667,7 @@ module OneM2M_Templates {
 		 * @desc Base primitiveContent for CREATE operation for RemoteCSE resource
 		 * @param p_name Resource name
 		 */
-		template (value) RemoteCSE_optional m_contentCreateRemoteCSE (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId, in template (omit) XSD.ID p_cSE_ID := PX_TS_CSE1.cseId):= {
+		template (value) RemoteCSE_optional m_contentCreateRemoteCSE (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId):= {
 			resourceName := p_name,//O
 			resourceType := omit,//NP
 			resourceID := omit,//NP
@@ -2697,7 +2683,7 @@ module OneM2M_Templates {
 			cseType := omit,//O
 			pointOfAccess := omit,//O
 			cSEBase := valueof(p_cSEBase),//M
-			cSE_ID := valueof(p_cSE_ID),//M
+			cSE_ID := omit,//O
 			m2M_Ext_ID := omit,//O
 			trigger_Recipient_ID := omit,//O
 			requestReachability := false,//M
@@ -2712,7 +2698,7 @@ module OneM2M_Templates {
 		 * @desc PrimitiveContent for CREATE operation for RemoteCSE resource with poa
 		 * @param p_name Resource name
 		 */
-		template (value) RemoteCSE_optional m_contentCreateRemoteCSE_poa (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId & "/" & PX_TS_CSE1.cseName, in template (omit) XSD.ID p_cSE_ID := PX_TS_CSE1.cseId, in PoaList p_poaList):= {
+		template (value) RemoteCSE_optional m_contentCreateRemoteCSE_poa (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId & "/" & PX_TS_CSE1.cseName, in PoaList p_poaList):= {
 			resourceName := p_name,//O
 			resourceType := omit,//NP
 			resourceID := omit,//NP
@@ -2728,7 +2714,7 @@ module OneM2M_Templates {
 			cseType := omit,//O
 			pointOfAccess := p_poaList,//O
 			cSEBase := valueof(p_cSEBase),//M
-			cSE_ID := valueof(p_cSE_ID),//M
+			cSE_ID := omit,//O
 			m2M_Ext_ID := omit,//O
 			trigger_Recipient_ID := omit,//O
 			requestReachability := true,//M
@@ -2758,7 +2744,7 @@ module OneM2M_Templates {
 			cseType := *,//O
 			pointOfAccess := *,//O
 			cSEBase := ?,//M
-			cSE_ID := ?,//M
+			cSE_ID := *,//O
 			m2M_Ext_ID := *,//O
 			trigger_Recipient_ID := *,//O
 			requestReachability := ?,//M
@@ -3247,7 +3233,7 @@ module OneM2M_Templates {
 			expirationTime := omit,//O
 			announceTo := omit,//O
 			announcedAttribute := omit,//O
-			dataGenerationTime := {alt_ := fx_generateTimestamp()},//M
+			dataGenerationTime := {alt_ := "29991231T000000"},//M
 			content := "AnyValue",//M
 			sequenceNr := omit,//O
 			contentSize  := omit//NP
@@ -4370,7 +4356,7 @@ module OneM2M_Templates {
 			metaInformation := ?,//M
 			primitiveContent := *,//O
 			requestStatus := ?,//M
-			operationResult := ?,//M
+			operationResult := *,//O TODO Check when new XSD available
 			choice := *//O
 		};
 		
@@ -5433,7 +5419,7 @@ module OneM2M_Templates {
     	
 		template (value) ResponsePrimitive m_responseNotification(ResponseStatusCode p_statusCode, in template(omit) PrimitiveContent p_notification := omit) := {
 			responseStatusCode := p_statusCode,
-			requestIdentifier := testcasename() & "-m_responseNotification" & f_rnd(1, 1000000),
+			requestIdentifier := testcasename() & "-m_responseNotification",
 			primitiveContent := p_notification,
 			to_ := omit,
 			from_ := omit,
@@ -5481,7 +5467,7 @@ module OneM2M_Templates {
 				operation := int1,
 				to_ := "NotInitialized",
 				from_ := "UNINITIALIZED",
-				requestIdentifier := testcasename() & "-m_utCreate" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreate",
 				resourceType := omit,
 				primitiveContent := omit,
 				roleIDs := omit, 
@@ -5509,7 +5495,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateAe modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateAe" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateAe",
 				resourceType := int2,
 				primitiveContent := {aE := m_contentAe_allOmit}
 			}
@@ -5517,7 +5503,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateContainer modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateContainer" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateContainer",
 				resourceType := int3,
 				primitiveContent := {container := valueof(mw_contentContainer_allOmit)}
 			}
@@ -5525,7 +5511,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateContentInstance modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateContentInstance" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateContentInstance",
 				resourceType := int4,
 				primitiveContent := {contentInstance := m_contentContentInstance_allOmit}
 			}
@@ -5533,7 +5519,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateSubscription modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateSubscription" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateSubscription",
 				resourceType := int23,
 				primitiveContent := {subscription := m_contentSubscription}
 			}
@@ -5541,7 +5527,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateRemoteCSE modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateRemoteCSE" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateRemoteCSE",
 				resourceType := int16,
 				primitiveContent := {remoteCSE := m_contentRemoteCSE_allOmit}
 			}
@@ -5549,7 +5535,7 @@ module OneM2M_Templates {
  		
 		template (value) UtTriggerPrimitive m_utCreatePollingChannel modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreatePollingChannel" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreatePollingChannel",
 				resourceType := int15,
 				primitiveContent := {pollingChannel := m_contentPollingChannel_allOmit}
 			}
@@ -5560,7 +5546,7 @@ module OneM2M_Templates {
 				operation := int2,
 				to_ := p_targetResourceAddress,
 				from_ := "UNINITIALIZED",
-				requestIdentifier := "m_utRetrieveResource" & f_rnd(1, 1000000),
+				requestIdentifier := "m_utRetrieveResource",
 				resourceType := omit,
 				primitiveContent := omit,
 				roleIDs := omit, 
@@ -5588,7 +5574,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utRetrievePollingChannelUri(XSD.ID p_targetResourceAddress) modifies m_utRetrieve := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utRetrievePollingChannelUri" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utRetrievePollingChannelUri",
 				resourceType := int15,
 				primitiveContent := {pollingChannel := m_contentRetrievePollingChannel}
 			}
@@ -5599,7 +5585,7 @@ module OneM2M_Templates {
 				operation := int3,
 				to_ := "NotInitialized",
 				from_ := "UNINITIALIZED",
-				requestIdentifier := testcasename() & "-m_utUpdate" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utUpdate",
 				resourceType := omit,
 				primitiveContent := omit,
 				roleIDs := omit, 
@@ -5627,7 +5613,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utUpdateAe modifies m_utUpdate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utUpdateContainer" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utUpdateContainer",
 				resourceType := int2,
 				primitiveContent := {aE := m_contentUpdateAe}
 			}
@@ -5635,7 +5621,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utUpdateContainer modifies m_utUpdate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utUpdateContainer" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utUpdateContainer",
 				resourceType := int3,
 				primitiveContent := {container := m_contentUpdateContainer}
 			}
@@ -5646,7 +5632,7 @@ module OneM2M_Templates {
 				operation := int4,
 				to_ := "NotInitialized",
 				from_ := "UNINITIALIZED",
-				requestIdentifier := testcasename() & "-m_utDeleteRequest" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utDeleteRequest",
 				resourceType := omit,
 				primitiveContent := omit, 
 				roleIDs := omit, 
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index 02698923b09f1c8950fcd6622811acca3f357314..fe3b31aa6366f1aa0ec20a90e71b2d88fb9cb94a 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -49,6 +49,7 @@ module OneM2M_TestSystem {
 		//About configuration of the component
 		var Configurations vc_config;
 		var TestSystemRole vc_testSystemRole;
+		var boolean vc_componentRegistered := false;
 		//Default behaviour
 		var default vc_aeSimu := null;
 		var default vc_cseSimu := null;
diff --git a/LibOneM2M/oneM2M_Types b/LibOneM2M/oneM2M_Types
index 6ed906c421752aec5f64790181e590287b271684..d5bb3d0029d90aae8e4961173a19b045ef1a4adb 160000
--- a/LibOneM2M/oneM2M_Types
+++ b/LibOneM2M/oneM2M_Types
@@ -1 +1 @@
-Subproject commit 6ed906c421752aec5f64790181e590287b271684
+Subproject commit d5bb3d0029d90aae8e4961173a19b045ef1a4adb
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 0afa59589b24d383fb8fc5adb966609538e2f56e..b6b78739a2abc7f7a6628c48d4cee6bcf1e1163c 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -2339,6 +2339,7 @@ module OneM2M_PermutationFunctions {
 				var integer v_aeIndex, v_remoteCseIndex, v_targetResourceIndex := -1;
 				var ResponseStatusCode v_responseStatusCode := int2000;   
 				var XSD.ID v_targetResourceAddress;
+				var XSD.ID v_originatorResourceAddress;
 				
 				// Test control
 
@@ -2359,7 +2360,8 @@ module OneM2M_PermutationFunctions {
 				
 				// Test Body
 				v_aeIndex := f_getLatestResource(vc_ae1);
-				
+				v_originatorResourceAddress := f_getLatestResourceAddress(vc_ae1, e_nonHierarchical, e_spRelative);
+ 				
 				v_targetResourceAddress := f_getLocalResourceAddress(v_targetResourceIndex, PX_ADDRESSING_METHOD, e_spRelative);
 				p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
 				p_requestPrimitive.to_ := v_targetResourceAddress;
@@ -2377,25 +2379,25 @@ module OneM2M_PermutationFunctions {
 				
 				tc_ac.start;
 				alt {
-					[v_responseStatusCode == int2001] mccPortIn.receive(mw_request(mw_create(-, v_targetResourceAddress))) -> value vc_request {
+					[v_responseStatusCode == int2001] mccPortIn.receive(mw_request(mw_create(v_originatorResourceAddress, v_targetResourceAddress))) -> value vc_request {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully");
 						f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive);
 						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
 					}
-					[v_responseStatusCode == int2000] mccPortIn.receive(mw_request(mw_retrieve(v_targetResourceAddress))) -> value vc_request {
+					[v_responseStatusCode == int2000] mccPortIn.receive(mw_request(mw_retrieve(v_targetResourceAddress, v_originatorResourceAddress))) -> value vc_request {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully");
 						f_processRetrieveRequestPrimitive(vc_request.primitive.requestPrimitive);
 						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
 					}
-					[v_responseStatusCode == int2004] mccPortIn.receive(mw_request(mw_update(-, v_targetResourceAddress))) -> value vc_request {
+					[v_responseStatusCode == int2004] mccPortIn.receive(mw_request(mw_update(v_originatorResourceAddress, v_targetResourceAddress))) -> value vc_request {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully");
 						f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive);
 						f_send(e_mcc_in_port, m_response(vc_response.primitive.responsePrimitive));
 					}
-					[v_responseStatusCode == int2002] mccPortIn.receive(mw_request(mw_delete(v_targetResourceAddress))) -> value vc_request {
+					[v_responseStatusCode == int2002] mccPortIn.receive(mw_request(mw_delete(v_targetResourceAddress, v_originatorResourceAddress))) -> value vc_request {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully");
 						f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive);
@@ -2458,16 +2460,16 @@ module OneM2M_PermutationFunctions {
 				
 				if(valueof(p_requestPrimitive.operation) == int1) {
 					v_responseStatusCode := int2001;
-					vc_cse1.start(f_cse_createResourceHandler(mw_create(-, v_targetResourceAddress )));
+					vc_cse1.start(f_cse_createResourceHandler(mw_create(f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative), v_targetResourceAddress )));
 				} else if(valueof(p_requestPrimitive.operation) == int2) {
 					v_responseStatusCode := int2000;
-					vc_cse1.start(f_cse_retrieveResourceHandler(v_targetResourceIndex));
+					vc_cse1.start(f_cse_retrieveResourceHandler(v_targetResourceIndex, mw_retrieve(v_targetResourceAddress, f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative))));
 				} else if(valueof(p_requestPrimitive.operation) == int3) {
 					v_responseStatusCode := int2004;
-					vc_cse1.start(f_cse_updateResourceHandler(v_targetResourceIndex));
+					vc_cse1.start(f_cse_updateResourceHandler(v_targetResourceIndex, mw_update(f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative),v_targetResourceAddress)));
 				} else if(valueof(p_requestPrimitive.operation) == int4) {
 					v_responseStatusCode := int2002;
-					vc_cse1.start(f_cse_deleteResourceHandler(v_targetResourceIndex));
+					vc_cse1.start(f_cse_deleteResourceHandler(v_targetResourceIndex, mw_delete(v_targetResourceAddress,f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative))));
 				}
 
 				f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
@@ -7058,7 +7060,6 @@ module OneM2M_PermutationFunctions {
 	       
 						p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
 						p_requestPrimitive.from_ := f_getOriginator(v_groupIndex);
-						p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
 						
 						// Test Body
 	
@@ -7134,8 +7135,7 @@ module OneM2M_PermutationFunctions {
 	   
 						p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
 						p_requestPrimitive.from_ := f_getOriginator(v_groupIndex);
-						p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-	
+						
 						// Test Body
 	
 						f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
@@ -7200,8 +7200,7 @@ module OneM2M_PermutationFunctions {
 						
 						p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
 						p_requestPrimitive.from_ := f_getOriginator(v_groupIndex);
-						p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-	
+						
 						// Test Body
 	
 						f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
@@ -7276,8 +7275,7 @@ module OneM2M_PermutationFunctions {
 	   
 						p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
 						p_requestPrimitive.from_ := f_getOriginator(v_groupIndex);
-						p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-	
+						
 						// Test Body
 	
 						f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
@@ -7351,8 +7349,7 @@ module OneM2M_PermutationFunctions {
 						   
 						p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
 						p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); 
-						p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-	
+						
 						// Test Body
 	
 						f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
@@ -7454,8 +7451,7 @@ module OneM2M_PermutationFunctions {
 	   
 						p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/" & c_resourceShortNameFanOutPoint & "/" & c_defaultContainerResourceName;
 						p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); //TODO see if it is correct or if we have to use PX_SUPER_ADMIN
-						p_requestPrimitive.requestIdentifier := p_requestPrimitive.requestIdentifier & f_rnd(1, 1000000);
-	
+						
 						// Test Body
 	
 						f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
@@ -7706,8 +7702,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_aeIndex2].resource);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-	
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -7776,8 +7771,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-	
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -7832,7 +7826,6 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := "testDomain";
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
 							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
@@ -7912,8 +7905,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_aeIndex2].resource);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-			
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -7970,8 +7962,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-			
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -8040,8 +8031,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-			
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -8103,8 +8093,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-			
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -8161,8 +8150,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-			
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -8217,8 +8205,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-			
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -8278,8 +8265,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 							p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-			
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -8334,8 +8320,7 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_containerIndex);
 							p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
-	
+							
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
 							alt {
@@ -8397,7 +8382,6 @@ module OneM2M_PermutationFunctions {
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_containerIndex);
 							p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);
-							p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
 								
 							f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
 							tc_ac.start;
@@ -8719,6 +8703,7 @@ module OneM2M_PermutationFunctions {
 						var RequestStatus v_requestStatus;
 						var URI v_requestResourceURI;
 						var ResponseStatusCode v_statusCode;
+						var RequestID v_requestIdentifier;
 						var template PrimitiveContent v_primitiveContent;
 	   
 								// Test control
@@ -8750,6 +8735,8 @@ module OneM2M_PermutationFunctions {
 						// Test Body
 	
 						f_send(e_mca_port, m_request(valueof(p_requestPrimitive)));
+						v_requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier;
+					
 						tc_ac.start;
 						alt {
 							[] mcaPort.receive(mw_response(mw_responsePrimitive(int1001, v_contentResponseUri))) -> value v_response {
@@ -8801,7 +8788,7 @@ module OneM2M_PermutationFunctions {
 									v_requestStatus := v_response.primitive.responsePrimitive.primitiveContent.request.requestStatus;
 									if (v_requestStatus==int1){			//COMPLETED
 										tc_ac.stop;
-										if (valueof(p_requestPrimitive.requestIdentifier) ==  valueof(v_response.primitive.responsePrimitive.primitiveContent.request.operationResult.requestIdentifier) ){
+										if (valueof(v_requestIdentifier) ==  valueof(v_response.primitive.responsePrimitive.primitiveContent.request.operationResult.requestIdentifier) ){
 											setverdict(pass, testcasename() & ": RequestStatus: COMPLETED and requestIdentifier attribute correctly received");
 										}else{
 											setverdict(fail, testcasename() & ": RequestStatus: COMPLETED and requestIdentifier attribute not correctly received");
@@ -9164,8 +9151,10 @@ module OneM2M_PermutationFunctions {
 	
 						f_checkAeSimuStatus();
 						
-						vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getLocalPoA(PX_TS_AE2.mcaPortIn, "")}))); // AE2 is registred
+						vc_ae2.start(f_cse_createAccessControlPolicyAux("PermissionForNotificationAcp",{"all"}, int63)); // Permissions for NOTIFY 
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 						
+						vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getLocalPoA(PX_TS_AE2.mcaPortIn, "")}))); // AE2 is registred
 						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 						
 						v_ae2Index := f_getResourceFromAeSimu(vc_ae2);
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index 0ab9c16ecf2c7e5d2adcb806c913f6d2d98a5477..999104a3c26db664050540606ca29e7ea0e02632 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -4604,7 +4604,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
 						const AttributeList c_optionalAttribute := {"contentInfo"};
-						v_createRequest.primitiveContent.contentInstance.contentInfo := "MyContentInfo";
+						v_createRequest.primitiveContent.contentInstance.contentInfo := "text/strings:0";
 						
 						v_ae1.start(f_CSE_DMR_CRE_012(int4, v_createRequest, c_optionalAttribute));
 						v_ae1.done;
diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn
index 9d8cd4533ff82b4e28e7f001503654422383be85..41faf2f46966ca98443cce1c60a77016b59809e3 100644
--- a/OneM2M_Testcases_CSE_Release_2.ttcn
+++ b/OneM2M_Testcases_CSE_Release_2.ttcn
@@ -1487,35 +1487,6 @@ module OneM2M_Testcases_CSE_Release_2 {
 						}
 					}
 					
-					testcase TC_CSE_DMR_UPD_014_SUB_ACPI() runs on Tester system CseSystem {
-						// Local variables
-						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var AcpType v_accessControlPolicyIDs_1 := {"NotInitialized_1"};
-						var AcpType v_accessControlPolicyIDs_2 := {"NotInitialized_2"};
-						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
-						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
-						var ResponsePrimitive v_responsePrimitive;
-						v_createRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_1;
-						v_updateRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_2;
-
-						v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription
-						v_ae1.done;
-						
-						 
-
-						if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
-							//Check attribute 1
-							if(ispresent(v_responsePrimitive.primitiveContent)) {
-								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
-									if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != v_accessControlPolicyIDs_2){
-										setverdict(fail, __SCOPE__ & ": Error: AccessControlPolicyIDs attribute not updated correctly")
-									}
-								}
-							}
-						}
-
-					}
-					
 					testcase TC_CSE_DMR_UPD_014_SUB_BN() runs on Tester system CseSystem {
 						// Local variables
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
@@ -3364,7 +3335,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					// Local variables
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					var RequestPrimitive v_req1, v_req2, v_req3;
+					var RequestPrimitive v_req1, v_req3;
+					var template RequestPrimitive v_req2;
 					var MsgIn v_resp1, v_resp3;
 					var ResponsePrimitive v_resp2;
 					
@@ -3388,11 +3360,12 @@ module OneM2M_Testcases_CSE_Release_2 {
 					v_req1 := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
 					f_send(e_mca_port, m_request(v_req1));
 					
-					v_req2 := valueof(m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId)));
+					v_req2 := m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId));
 					
-					vc_cse1.start(f_cse_notifyProcedure_notify(v_req2));
+					vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2)));
 					
 					v_req2.from_ := PX_TS_CSE1.cseId;
+					v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*";
 					
 					tc_ac.start;
 					alt {
@@ -3473,7 +3446,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					// Local variables
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					var RequestPrimitive v_req1, v_req2, v_req3;
+					var RequestPrimitive v_req1, v_req3;
+					var template RequestPrimitive v_req2;
 					var MsgIn v_resp1, v_resp3;
 					var ResponsePrimitive v_resp2;
 					
@@ -3494,10 +3468,11 @@ module OneM2M_Testcases_CSE_Release_2 {
 					
 					v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex);
 					
-					v_req2 := valueof(m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId)));
+					v_req2 := m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId));
 					
-					vc_cse1.start(f_cse_notifyProcedure_notify(v_req2));
+					vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2)));
 					v_req2.from_ := PX_TS_CSE1.cseId;
+					v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*";
 					
 					v_req1 := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
 					f_send(e_mca_port, m_request(v_req1));
@@ -3579,7 +3554,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
 					var RequestPrimitive v_req1;
-					var RequestPrimitive v_req2;
+					var template RequestPrimitive v_req2;
 					var RequestPrimitive v_req3;
 					var MsgIn v_resp1, v_resp3;
 					var ResponsePrimitive v_resp2;//Response to a Notify Request
@@ -3605,10 +3580,11 @@ module OneM2M_Testcases_CSE_Release_2 {
 					v_req1 := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
 					f_send(e_mca_port, m_request(v_req1));
 					
-					v_req2 := valueof(m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId)));
+					v_req2 := m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId));
 					
-					vc_cse1.start(f_cse_notifyProcedure_notify(v_req2));
+					vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2)));
 					v_req2.from_ := PX_TS_CSE1.cseId;
+					v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*";
 					
 					tc_ac.start;
 					alt {