diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 3bb342aaf5555db36d6b2987b53892ee18a2d534..b330e1f0850e5b738720c8ddd74c1d6f1cf115f2 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -996,7 +996,7 @@ module OneM2M_Functions {
 				return v_resourceIndex;
 
 			}
-
+			
 			/**
 			 * @desc Getting the address of the last resource saved in the vc_resourcesList
 			 * @param p_tester Given component
@@ -1164,6 +1164,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
 			 */	
@@ -1181,15 +1191,6 @@ module OneM2M_Functions {
 				infoPort.send(lengthof(vc_resourcesList)-1);
 		
 			} 
-
-			/**
-			 * @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 local resource through InfoPort
@@ -1269,6 +1270,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);
@@ -1278,11 +1280,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;
 					}
 				}	
 				
@@ -1327,6 +1327,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);
@@ -1337,16 +1338,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;
 					}
 				}	
 				
@@ -1715,6 +1713,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);
 							}
@@ -2868,6 +2867,12 @@ module OneM2M_Functions {
 						v_localResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, p_responseStatusCode);
 						f_send(e_mccPortIn, 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_mccPortIn, 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");
 					}
@@ -2956,7 +2961,7 @@ module OneM2M_Functions {
 						}
 						v_response.from_ := vc_cseSimuDesc.cseId;
 						v_response.to_ := vc_request.primitive.requestPrimitive.from_;
-            f_send(e_mccPortIn, m_response(v_response));
+            			f_send(e_mccPortIn, m_response(v_response));
 					}
     					
 					[] tc_ac.timeout {
@@ -3028,6 +3033,12 @@ module OneM2M_Functions {
 						f_send(e_mccPortIn, 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_mccPortIn, 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");
 					}
@@ -3063,6 +3074,12 @@ module OneM2M_Functions {
 						f_send(e_mccPortIn, 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_mccPortIn, 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");
 					}
@@ -3177,6 +3194,12 @@ module OneM2M_Functions {
 						f_send(e_mccPortIn, 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_mccPortIn, 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");
 					}
@@ -3285,6 +3308,7 @@ module OneM2M_Functions {
 						f_checkAttributesToBeSaved(int16, v_request, v_response.primitive.responsePrimitive);
 						vc_remoteCseIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int16, -1);
 						v_localRemoteCSEResource := f_generateLocalResource(valueof(m_primitiveContentRemoteCSE(m_contentLocalRemoteCSEResource(vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))].myHost))), vc_cSEBaseIndex, int16);
+						vc_componentRegistered := true;
 						vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex);
 					}
 					[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) {
@@ -3330,6 +3354,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));
@@ -3339,6 +3364,7 @@ module OneM2M_Functions {
 						f_send(e_mccPortIn, m_response(v_response));
 						
 						vc_remoteCseIndex := f_setResource(valueof(m_primitiveContentRemoteCSE(m_contentMyRemoteCSEResource(f_getLocalPoA(vc_cseSimuDesc.mcaPortIn, "")))), int16, -1, true);
+						vc_componentRegistered := true;
 						v_resourceIndex := vc_remoteCseIndex;
 						v_remoteCSERegistered:=true;
 						tc_ac.start(10.0);
@@ -4032,6 +4058,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)) {
@@ -5064,7 +5091,6 @@ module OneM2M_Functions {
 				}
 			} 
 			
-
 			return valueof(p_request);
 		}
 		
@@ -6782,6 +6808,12 @@ module OneM2M_Functions {
 							}
 						}
 					}
+					case ("MqttSetDefaultTopicToNotRegistration") {
+						acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_aeIndex)}});
+					}
+					case ("MqttSetDefaultTopicToRegistration") {
+						acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_aeIndex)}});
+					}
 				} 
 			}
 		}//end of group AcFunctions
@@ -6846,6 +6878,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 {
@@ -7134,9 +7169,42 @@ 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);
+			}
+			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){
+								//Modify default topic to publish a non-registration message
+								f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1);
+								vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+								f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
+								return;
+							} //else {
+								//f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
+							//}
+						}
+					}
+				} 
+			}
+			//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 669b744655cd92c221873f54befccf8b8884e548..a6b4be4a9e4459d0b1f82ee2e2400438a7a16480 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -18,19 +18,6 @@ module OneM2M_Templates {
 	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 */
 	
@@ -103,7 +90,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, 
@@ -176,10 +163,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 := *,
@@ -209,8 +196,8 @@ module OneM2M_Templates {
 				vendorInformation := *
 			};
         	
-			template RequestPrimitive mw_retrieveFormalOntology(template XSD.ID p_targetResourceAddress := ?, template XSD.ID p_originator := ?, template XSD.AnyURI p_ontologyServerUri := ?) modifies mw_retrieve := {
-    		from_ := p_originator,
+			template RequestPrimitive mw_retrieveFormalOntology(template XSD.ID p_targetResourceAddress := ?, template XSD.ID p_from := ?, template XSD.AnyURI p_ontologyServerUri := ?) modifies mw_retrieve := {
+    		from_ := p_from,
 				requestIdentifier := ?,
 				primitiveContent := { flexContainer := mw_contentFlexContainer(p_ontologyServerUri) },
 				releaseVersionIndicator := "3"
@@ -225,7 +212,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,
@@ -264,7 +251,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,
@@ -300,7 +287,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,
@@ -342,7 +329,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
 			};
 			
@@ -354,7 +341,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,
@@ -395,7 +382,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,
@@ -438,7 +425,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,
@@ -561,7 +548,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,
@@ -1045,18 +1032,18 @@ module OneM2M_Templates {
 			/**
 			 * @desc Base CREATE request primitive for remoteCSE resource
 			 */
-			template (value) RequestPrimitive m_createRemoteCSEBase(template (value) XSD.ID p_from := PX_TS_CSE1.cseId, 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 (value) XSD.ID p_from := PX_TS_CSE1.cseId, 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 := {
 				from_ := p_from,//Originator CSE-ID
 				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 (value) XSD.ID p_from := PX_TS_CSE1.cseId, 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)}
 			};
 			
 			/**
@@ -2060,7 +2047,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, 
@@ -2089,10 +2076,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, 
@@ -2141,7 +2128,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,
@@ -2193,7 +2180,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,
@@ -3832,7 +3819,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
@@ -3848,7 +3835,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,//M
 			m2M_Ext_ID := omit,//O
 			trigger_Recipient_ID := omit,//O
 			requestReachability := false,//M
@@ -3869,7 +3856,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
@@ -3885,7 +3872,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,//M
 			m2M_Ext_ID := omit,//O
 			trigger_Recipient_ID := omit,//O
 			requestReachability := true,//M
@@ -3921,7 +3908,7 @@ module OneM2M_Templates {
 			cseType := *,//O
 			pointOfAccess := *,//O
 			cSEBase := ?,//M
-			cSE_ID := ?,//M
+			cSE_ID := *,//M
 			m2M_Ext_ID := *,//O
 			trigger_Recipient_ID := *,//O
 			requestReachability := ?,//M
@@ -7971,7 +7958,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,
@@ -8113,7 +8100,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, 
@@ -8146,7 +8133,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}
 			}
@@ -8154,7 +8141,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)}
 			}
@@ -8162,7 +8149,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}
 			}
@@ -8170,7 +8157,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}
 			}
@@ -8178,7 +8165,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}
 			}
@@ -8186,7 +8173,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 := mw_contentPollingChannel_allOmit}
 			}
@@ -8197,7 +8184,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, 
@@ -8230,7 +8217,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}
 			}
@@ -8238,7 +8225,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utRetrieveRemoteCSE(XSD.ID p_targetResourceAddress) modifies m_utRetrieve := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utRetrieveRemoteCSE" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utRetrieveRemoteCSE",
 				resourceType := int16,
 				primitiveContent := {remoteCSE := m_contentRemoteCSE_allOmit}
 			}
@@ -8249,7 +8236,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, 
@@ -8282,7 +8269,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}
 			}
@@ -8290,7 +8277,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}
 			}
@@ -8301,7 +8288,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, 
@@ -8399,7 +8386,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateRole modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateRole" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateRole",
 				resourceType := int31,
 				primitiveContent := {role := valueof(mw_contentRole_allOmit)}
 	 }	
@@ -8407,7 +8394,7 @@ module OneM2M_Templates {
 	
 		template (value) UtTriggerPrimitive m_utCreateToken modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateToken" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateToken",
 				resourceType := int32,
 				primitiveContent := {token := valueof(mw_contentToken_allOmit)}
 			}
@@ -8415,7 +8402,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateFlexContainer modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateFlexContainer" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateFlexContainer",
 				resourceType := int28,
 				primitiveContent := {flexContainer := m_contentFlexContainer_allOmit}
 			}
@@ -8423,7 +8410,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceAirConditioner modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceAirConditioner" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceAirConditioner",
 				resourceType := int28,
 				primitiveContent := {deviceAirConditioner := m_contentDeviceAirConditioner_allOmit}
 			}
@@ -8431,7 +8418,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceClothesWasherDryer modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceClothesWasherDryer" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceClothesWasherDryer",
 				resourceType := int28,
 				primitiveContent := {deviceClothesWasherDryer := m_contentDeviceClothesWasherDryer_allOmit}
 			}
@@ -8439,7 +8426,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceElectricVehicleCharger modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceElectricVehicleCharger" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceElectricVehicleCharger",
 				resourceType := int28,
 				primitiveContent := {deviceElectricVehicleCharger := m_contentDeviceElectricVehicleCharger_allOmit}
 			}
@@ -8447,7 +8434,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceLight modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceLightr" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceLightr",
 				resourceType := int28,
 				primitiveContent := {deviceLight := m_contentDeviceLight_allOmit}
 			}
@@ -8455,7 +8442,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceMicrogeneration modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceMicrogeneration" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceMicrogeneration",
 				resourceType := int28,
 				primitiveContent := {deviceMicrogeneration := m_contentDeviceMicrogeneration_allOmit}
 			}
@@ -8463,7 +8450,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceOven modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceOven" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceOven",
 				resourceType := int28,
 				primitiveContent := {deviceOven := m_contentDeviceOven_allOmit}
 			}
@@ -8471,7 +8458,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceRefrigerator modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceRefrigerator" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceRefrigerator",
 				resourceType := int28,
 				primitiveContent := {deviceRefrigerator := m_contentDeviceRefrigerator_allOmit}
 			}
@@ -8479,7 +8466,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceRobotCleaner modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceRobotCleaner" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceRobotCleaner",
 				resourceType := int28,
 				primitiveContent := {deviceRobotCleaner := m_contentDeviceRobotCleaner_allOmit}
 			}
@@ -8487,7 +8474,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceSmartElectricMeter modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceSmartElectricMeter" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceSmartElectricMeter",
 				resourceType := int28,
 				primitiveContent := {deviceSmartElectricMeter := m_contentDeviceSmartElectricMeter_allOmit}
 			}
@@ -8495,7 +8482,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceStorageBattery modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceStorageBattery" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceStorageBattery",
 				resourceType := int28,
 				primitiveContent := {deviceStorageBattery := m_contentDeviceStorageBattery_allOmit}
 			}
@@ -8503,7 +8490,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceTelevision modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceTelevision" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceTelevision",
 				resourceType := int28,
 				primitiveContent := {deviceTelevision := m_contentDeviceTelevision_allOmit}
 			}
@@ -8511,7 +8498,7 @@ module OneM2M_Templates {
 		
 	 	template (value) UtTriggerPrimitive m_utCreateDeviceThermostat modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceThermostat" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceThermostat",
 				resourceType := int28,
 				primitiveContent := {deviceThermostat := m_contentDeviceThermostat_allOmit}
 			}
@@ -8519,7 +8506,7 @@ module OneM2M_Templates {
 		
 		template (value) UtTriggerPrimitive m_utCreateDeviceWaterHeater modifies m_utCreate := {
 			requestPrimitive := {
-				requestIdentifier := testcasename() & "-m_utCreateDeviceWaterHeater" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utCreateDeviceWaterHeater",
 				resourceType := int28,
 				primitiveContent := {deviceWaterHeater := m_contentDeviceWaterHeater_allOmit}
 			}
@@ -8530,7 +8517,7 @@ module OneM2M_Templates {
 				operation := int5,
 				to_ := "NotInitialized",
 				from_ := "UNINITIALIZED",
-				requestIdentifier := testcasename() & "-m_utNotify" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_utNotify",
 				resourceType := omit,
 				primitiveContent := omit,
 				roleIDs := omit, 
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index be995d3c68e4903521b0a4c42627b8a42b4ef06b..d424b02698fcd000e488be86965c2faa1bd6854f 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -50,6 +50,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/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 55f249009b4c694dd3f3475de86dda84f55e3b09..e4e17771a59fe2f4c19cc6f5f77c0ed3ad2c97a7 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -2933,6 +2933,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
 
@@ -2953,7 +2954,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;
@@ -2971,25 +2973,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_mccPortIn, 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_mccPortIn, 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_mccPortIn, 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);
@@ -3052,16 +3054,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_mcaPort, m_request(valueof(p_requestPrimitive)));
@@ -12464,90 +12466,88 @@ module OneM2M_PermutationFunctions {
 				
 					function f_CSE_RT_NBA_005(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{
 			
-					// Local variables
-					var MsgIn v_response;
-					var RequestPrimitive v_request;
-					var integer v_aeIndex, v_ae2Index := -1;
-					var integer v_resourceIndex := -1;
-					var template PrimitiveContent v_contentResponse;
-   
-					// Test control
-					if(not PICS_NON_BLOCKING_REQUEST_SYNCH){
-						setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case");
-						stop;
-					}
-
-					// Test component configuration
-					f_cf01Up(true);
-
-					// Test adapter configuration
-
-					// Preamble
-
-					v_contentResponse.uRI := ?;
-
-						v_aeIndex := f_cse_preamble_registerAe(-,  {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn, "")});//c_CRUDNDi);
-
-					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
-					
-					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
-					
-					v_ae2Index := f_getResourceFromAeSimu(vc_ae2);
-					
-					if(ispresent(p_parentRequestPrimitive)) {
-						v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex);	
-						p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex);
-					}else{
-						p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
-					}
-					p_requestPrimitive.from_ := f_getOriginator(v_aeIndex);					
-					p_requestPrimitive.responseType.responseTypeValue := int2;		//nonBlockingRequestAsynch
-					p_requestPrimitive.responseType.notificationURI := {f_getResourceAddress(v_aeIndex), f_getResourceAddress(v_ae2Index)};		//"...an empty notification target list is provided"
-
-					// Test Body
-
-						f_send(e_mcaPort, m_request(valueof(p_requestPrimitive)));
-					tc_ac.start;
-					alt {
-						[] mcaPort.receive(mw_response(mw_responsePrimitive(int1002, v_contentResponse))) -> value v_response {
-							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address");
-						}
-						[] mcaPort.receive(mw_response(mw_responsePrimitive(int1002))) -> value v_response {
-							tc_ac.stop;
-							setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address");
-						}
-						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
-							tc_ac.stop;
-							setverdict(fail, __SCOPE__ & ": Wrong response status code");
-						}
-						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
-							tc_ac.stop;
-							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						// Local variables
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var integer v_aeIndex, v_ae2Index := -1;
+						var integer v_resourceIndex := -1;
+						var template PrimitiveContent v_contentResponse;
+	   
+						// Test control
+						if(not PICS_NON_BLOCKING_REQUEST_SYNCH){
+							setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case");
+							stop;
 						}
-						[] tc_ac.timeout {
-							setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation");
+	
+						// Test component configuration
+						f_cf01Up(true);
+	
+						// Test adapter configuration
+	
+						// Preamble
+	
+						v_contentResponse.uRI := ?;
+	
+						v_aeIndex := f_cse_preamble_registerAe(-,  {f_getLocalPoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi);
+	
+						f_checkAeSimuStatus();
+						
+						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);
+						
+						if(ispresent(p_parentRequestPrimitive)) {
+							v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex);	
+							p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex);
+						}else{
+							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
 						}
-					}
-
-					f_checkAeSimuStatus();
+						// Test Body
 
-					//Check if Notification is sent or not
-					
-					
-					vc_ae2.start(f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode)));
-					
-					f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode));
-					
-						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+						f_send(e_mcaPort, m_request(valueof(p_requestPrimitive)));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int1002, v_contentResponse))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int1002))) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Wrong response status code");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Wrong response status code");
+							}
+							[] tc_ac.timeout {
+								setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation");
+							}
+						}
 
-					// Postamble
-					f_cse_postamble_deleteResources();
+						f_checkAeSimuStatus();
 
-					// Tear down
-					f_cf01Down();
+						//Check if Notification is sent or not
+						
+						
+						vc_ae2.start(f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode)));
+						
+						f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode));
+						
+							f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+	
+						// Postamble
+						f_cse_postamble_deleteResources();
+	
+						// Tear down
+						f_cf01Down();
 
 					}//end f_CSE_RT_NBA_005
 				
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index 2abce727e704c9dc2a694650426b2cb618e292ab..dc638d7782ce919c87ec0bf7f237962a71097ffe 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 e079999f8ad9684ae1ddda25170379b790f50623..843f64530f148dea6531d139e038fc499f7813b8 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;