diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 4e79578a963aac6d556fc3207a692ee4509deda6..ee78a1dfc93bff850a9cc0d1271d03e08247db72 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -165,7 +165,7 @@ module OneM2M_Functions {
 		/**
 		 * @desc Ports mapping and default behaviour activation for Config 02
 		 */
-		function f_cf02UpCseSimuMaster(in CseTypeID p_cseType := int2) runs on CseSimu system CseSystem {
+		function f_cf02UpCseSimuMaster(in CseTypeID p_cseType := int2, in boolean p_auxiliaryCse2Required := false) runs on CseSimu system CseSystem {
 				
 			// Variables
       		var charstring v_binding;
@@ -202,12 +202,56 @@ module OneM2M_Functions {
 			vc_ae1.start(f_cf02UpAe1());
 			vc_ae1.done;
 				
-			// Connect
+			//Initialize CSE2
+			 if(p_auxiliaryCse2Required) {
+				 vc_auxiliaryCse2Up := p_auxiliaryCse2Required;
+				 vc_cse2 := CseSimu.create("CSE2") alive;
+				 vc_cse2.start(f_cf02UpCse2());
+				 vc_cse2.done;
+			 }	
 			
 			//Initialze the IUT
 							
 		} // end f_cf02UpCseSimuMaster
 		
+		function f_cf02UpCse2(in CseTypeID p_cseType := int2) runs on CseSimu system CseSystem {
+				
+			// Variables
+      		var charstring v_binding;
+      		var charstring v_binding_in;
+      		var charstring v_host;
+			var PrimitiveContent v_cSEBaseResource;
+			
+			//Initialization of component variables
+			vc_config := e_cf02CseSimuMaster;
+			vc_testSystemRole := e_cse;	
+			vc_cseType := p_cseType;
+			vc_cseSimuDesc := PX_TS_CSE2;
+			
+			//Initialization of local CSEBase
+			v_cSEBaseResource := f_generateLocalResource(m_primitiveContentCSEBase(m_contentCSEBase(vc_cseSimuDesc)), -1, int5);
+			vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1);
+				
+			// Map
+			map(self:mccPort, system:mccPort) param (vc_cseSimuDesc.mccPort);
+			map(self:mccPortIn, system:mccPortIn) param (vc_cseSimuDesc.mccPortIn);
+			map(self:acPort, system:acPort);
+			if(PX_UT_IMPLEMENTED) {
+				map(self:utPort, system:utPort) param (PX_TS_UT);
+			}
+			
+			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
+      
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
+			
+			activate(a_default());
+			vc_cseSimu := activate(a_cse_cf02_cse1());
+							
+			//Initialze the IUT
+							
+		} // end f_cf02UpCse2
+
 		/**
 			@desc Ports mapping and default behaviour activation for Config 2 on the AE1
 		*/
@@ -1457,14 +1501,11 @@ module OneM2M_Functions {
 					if(vc_config == e_cf02) {
 						if(vc_cse1.running) {
 							f_sendSyncPoint(e_done, vc_cse1);
-				}
+						}
 						vc_cse1.done;
-					}
-						
-					if(vc_config == e_cf02) {
 						if(vc_cse1.alive) {
 							f_cse_postamble_cse1();
-			}
+						}
 					}
 				}
 			
@@ -1478,7 +1519,7 @@ module OneM2M_Functions {
 				if(p_ae.running) {
 					p_ae.stop;
 				}
-					p_ae.start(f_cse_postamble_deleteResources());
+				p_ae.start(f_cse_postamble_deleteResources());
 				p_ae.done;
 			}
 			
@@ -1526,6 +1567,9 @@ module OneM2M_Functions {
 						if(vc_ae1.alive) {
 							f_cse_postamble_ae1();
 						}
+						if(vc_cse2.alive) {
+							vc_cse2.stop;
+						}
 					};
 		
 					for(i := lengthof(vc_resourcesIndexToBeDeleted) -1; i >=0; i := i - 1) {
@@ -2548,7 +2592,7 @@ module OneM2M_Functions {
 				 * @param p_expectedResourceIndex Expected target parent resource of the announcemnet
 				 * @verdict 
 				 */
-				function f_cse_announcementProcedure_createHandler(template RequestPrimitive p_requestprimitive := mw_createAnnc, in ResponseStatusCode p_responseStatusCode := int2001, in integer p_expectedParentResourceIndex := vc_localRemoteCseIndex) runs on CseSimu return integer{
+				function f_cse_announcementProcedure_createHandler(template RequestPrimitive p_requestprimitive := mw_createAnnc, in ResponseStatusCode p_responseStatusCode := int2001, template (omit) integer p_expectedParentResourceIndex := vc_localRemoteCseIndex) runs on CseSimu return integer{
 					// Local variables
 					var integer v_announcedResourceIndex;
 				
@@ -2753,7 +2797,7 @@ module OneM2M_Functions {
 						[] infoPort.receive(OneM2M_TypesAndValues.SyncPoints:e_done) {
 							log(__SCOPE__, "Peer component done")
 						}
-						[]tc_ac.timeout {
+						[] tc_ac.timeout {
 						}
 					}
 			
@@ -3312,9 +3356,7 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10002 and ispresent (p_resource)) { //AE Annc
 					if(ischosen(p_resource.aEAnnc)) {
 						v_myResource.aEAnnc := valueof(p_resource.aEAnnc);
-						if(not(ispresent(p_resource.aEAnnc.resourceName))) {
-							v_myResource.aEAnnc.resourceName := "aEAnnc" & int2str(v_resourceIndex);
-						}
+						v_myResource.aEAnnc.resourceName := "aEAnnc" & int2str(v_resourceIndex);
 						v_myResource.aEAnnc.resourceType := p_resourceType;
 						v_myResource.aEAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
 						v_myResource.aEAnnc.creationTime := fx_generateTimestamp();
@@ -3331,9 +3373,7 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10001 and ispresent (p_resource)) { //Acp Annc
 					if(ischosen(p_resource.accessControlPolicyAnnc)) {
 						v_myResource.accessControlPolicyAnnc := valueof(p_resource.accessControlPolicyAnnc);
-						if(not(ispresent(p_resource.accessControlPolicyAnnc.resourceName))) {
-							v_myResource.accessControlPolicyAnnc.resourceName := "accessControlPolicyAnnc" & int2str(v_resourceIndex);
-						}
+						v_myResource.accessControlPolicyAnnc.resourceName := "accessControlPolicyAnnc" & int2str(v_resourceIndex);
 						v_myResource.accessControlPolicyAnnc.resourceType := p_resourceType;
 						v_myResource.accessControlPolicyAnnc.resourceID := "acpA" & int2str(v_resourceIndex);
 						v_myResource.accessControlPolicyAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -3343,9 +3383,7 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10003 and ispresent (p_resource)) { //Container Annc
 					if(ischosen(p_resource.containerAnnc)) {
 						v_myResource.containerAnnc := valueof(p_resource.containerAnnc);
-						if(not(ispresent(p_resource.containerAnnc.resourceName))) {
-							v_myResource.containerAnnc.resourceName := "containerAnnc" & int2str(v_resourceIndex);
-						}
+						v_myResource.containerAnnc.resourceName := "containerAnnc" & int2str(v_resourceIndex);
 						v_myResource.containerAnnc.resourceType := p_resourceType;
 						v_myResource.containerAnnc.resourceID := "cntA" & int2str(v_resourceIndex);
 						v_myResource.containerAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -3355,9 +3393,7 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10009 and ispresent (p_resource)) { //Group Annc
 					if(ischosen(p_resource.groupAnnc)) {
 						v_myResource.groupAnnc := valueof(p_resource.groupAnnc);
-						if(not(ispresent(p_resource.groupAnnc.resourceName))) {
-							v_myResource.groupAnnc.resourceName := "groupAnnc" & int2str(v_resourceIndex);
-						}
+						v_myResource.groupAnnc.resourceName := "groupAnnc" & int2str(v_resourceIndex);
 						v_myResource.groupAnnc.resourceType := p_resourceType;
 						v_myResource.groupAnnc.resourceID := "grpA" & int2str(v_resourceIndex);
 						v_myResource.groupAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -3367,44 +3403,42 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10004 and ispresent (p_resource)) { //ContentInstance Annc
 					if(ischosen(p_resource.contentInstanceAnnc)) {
 						v_myResource.contentInstanceAnnc := valueof(p_resource.contentInstanceAnnc);
-						if(not(ispresent(p_resource.contentInstanceAnnc.resourceName))) {
-							v_myResource.contentInstanceAnnc.resourceName := "contentInstanceAnnc" & int2str(v_resourceIndex);
-						}
+						v_myResource.contentInstanceAnnc.resourceName := "contentInstanceAnnc" & int2str(v_resourceIndex);
 						v_myResource.contentInstanceAnnc.resourceType := p_resourceType;
 						v_myResource.contentInstanceAnnc.resourceID := "cinA" & int2str(v_resourceIndex);
 						v_myResource.contentInstanceAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
 						v_myResource.contentInstanceAnnc.creationTime := fx_generateTimestamp();
 						v_myResource.contentInstanceAnnc.lastModifiedTime := v_myResource.contentInstanceAnnc.creationTime;
 					}
+				} else if (p_resourceType == int10016 and ispresent (p_resource)) { //RemoteCSEAnnc
+					if(ischosen(p_resource.remoteCSEAnnc)) {
+						v_myResource.remoteCSEAnnc := valueof(p_resource.remoteCSEAnnc);
+						v_myResource.remoteCSEAnnc.resourceName := "remoteCSEAnnc" & int2str(v_resourceIndex);
+						v_myResource.remoteCSEAnnc.resourceType := p_resourceType;
+						v_myResource.remoteCSEAnnc.resourceID := "csrA" & int2str(v_resourceIndex);
+						v_myResource.remoteCSEAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
+						v_myResource.remoteCSEAnnc.creationTime := fx_generateTimestamp();
+						v_myResource.remoteCSEAnnc.lastModifiedTime := v_myResource.remoteCSEAnnc.creationTime;
+					}
 				} else if(p_resourceType == int10029 and ispresent(p_resource)) { //TimeSeriesAnnc
 					if(ischosen(p_resource.timeSeriesAnnc)){
 						v_myResource.timeSeriesAnnc := valueof(p_resource.timeSeriesAnnc);
 						v_myResource.timeSeriesAnnc.resourceID := "tsA" & int2str(v_resourceIndex);
-						if(not(ispresent(p_resource.timeSeriesAnnc.resourceName))) {
-							v_myResource.timeSeriesAnnc.resourceName := "timeSeriesAnnc" & int2str(v_resourceIndex);
-						}
+						v_myResource.timeSeriesAnnc.resourceName := "timeSeriesAnnc" & int2str(v_resourceIndex);
 						v_myResource.timeSeriesAnnc.resourceType := p_resourceType;
 						v_myResource.timeSeriesAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
 						v_myResource.timeSeriesAnnc.creationTime := fx_generateTimestamp();
 						v_myResource.timeSeriesAnnc.lastModifiedTime := v_myResource.timeSeriesAnnc.creationTime;											
-						if(not(ispresent(p_resource.timeSeriesAnnc.expirationTime))) {
-							v_myResource.timeSeriesAnnc.expirationTime := "20301231T012345";
-						}
 					}				
 				} else if(p_resourceType == int10030 and ispresent(p_resource)) { //TimeSeriesInstanceAnnc
 					if(ischosen(p_resource.timeSeriesInstanceAnnc)){
 						v_myResource.timeSeriesInstanceAnnc := valueof(p_resource.timeSeriesInstanceAnnc);
 						v_myResource.timeSeriesInstanceAnnc.resourceID := "tsiA" & int2str(v_resourceIndex);
-						if(not(ispresent(p_resource.timeSeriesInstanceAnnc.resourceName))) {
-							v_myResource.timeSeriesInstanceAnnc.resourceName := "timeSeriesInstanceAnnc" & int2str(v_resourceIndex);
-						}
+						v_myResource.timeSeriesInstanceAnnc.resourceName := "timeSeriesInstanceAnnc" & int2str(v_resourceIndex);
 						v_myResource.timeSeriesInstanceAnnc.resourceType := p_resourceType;
 						v_myResource.timeSeriesInstanceAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
 						v_myResource.timeSeriesInstanceAnnc.creationTime := fx_generateTimestamp();
 						v_myResource.timeSeriesInstanceAnnc.lastModifiedTime := v_myResource.timeSeriesInstanceAnnc.creationTime;											
-						if(not(ispresent(p_resource.timeSeriesInstanceAnnc.expirationTime))) {
-							v_myResource.timeSeriesInstanceAnnc.expirationTime := "20301231T012345";
-						}
 						v_myResource.timeSeriesInstanceAnnc.contentSize := lengthof(v_myResource.timeSeriesInstanceAnnc.content);
 						if(not(ispresent(p_resource.timeSeriesInstanceAnnc.sequenceNr))) {
 							v_myResource.timeSeriesInstanceAnnc.sequenceNr := 1;
@@ -3608,7 +3642,9 @@ module OneM2M_Functions {
 			 * @param  p_resource          	Resource update
 			 */
 			function f_updateLocalResource(in integer p_localResourceIndex, in PrimitiveContent p_resource) runs on CseSimu {
-
+				var XSD.AnyURI v_remoteCSEAnncAddress;
+				var PrimitiveContent v_primitiveContent;
+				
 				// TODO To review the code (use of indexes, generation of value for certain attributes, etc..)
 				if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.remoteCSE) and ischosen(p_resource.remoteCSE)) {//RemoteCSE
 					
@@ -3622,7 +3658,12 @@ module OneM2M_Functions {
 						vc_localResourcesList[p_localResourceIndex].resource.remoteCSE.labels := p_resource.remoteCSE.labels;
 					}
 					if(ispresent(p_resource.remoteCSE.announceTo)) {
-						vc_localResourcesList[p_localResourceIndex].resource.remoteCSE.announceTo := {p_resource.remoteCSE.announceTo[0] & "/" & vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE.resourceID & "Annc"};
+						v_primitiveContent := {remoteCSEAnnc := m_contentCreateRemoteCSEAnnc};
+						v_primitiveContent := f_setLink(v_primitiveContent, f_getLocalResourceAddress(p_localResourceIndex));
+						vc_cse2.start(f_generateAndSetLocalResource(m_primitiveContentRemoteCSEAnnc(v_primitiveContent.remoteCSEAnnc), -, int10016));
+						f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2);
+						v_remoteCSEAnncAddress := f_getLatestLocalResourceAddress(vc_cse2);
+						vc_localResourcesList[p_localResourceIndex].resource.remoteCSE.announceTo := {v_remoteCSEAnncAddress};
 					}
 					if(ispresent(p_resource.remoteCSE.announcedAttribute)) {
 						vc_localResourcesList[p_localResourceIndex].resource.remoteCSE.announcedAttribute := p_resource.remoteCSE.announcedAttribute;
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 4c071b55489ba84ea2eb84dd00d5f6f997f85ee1..62d8b2342d698e3094b16de7b6aad792edf89293 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -1090,7 +1090,7 @@ module OneM2M_Templates {
 			 * @desc Base CREATE request primitive for remoteCSEAnnc resource
 			 */
 			template (value) RequestPrimitive m_createRemoteCSEAnncBase modifies m_create := {
-				requestIdentifier := testcasename() & "-m_createRemoteCSE",
+				requestIdentifier := testcasename() & "-m_createRemoteCSEAnnc",
 				resourceType := int10016,
 				primitiveContent := {remoteCSEAnnc := m_contentCreateRemoteCSEAnnc}
 			};			
@@ -2344,6 +2344,10 @@ module OneM2M_Templates {
 			remoteCSE := p_remoteCSE
 		}
 		
+		template (value) PrimitiveContent m_primitiveContentRemoteCSEAnnc(template (value) RemoteCSEAnnc_optional p_remoteCSEAnnc) := {
+			remoteCSEAnnc := p_remoteCSEAnnc
+		}
+
 		template (value) PrimitiveContent m_primitiveContentResponsePrimitive(template (value) ResponsePrimitive p_responsePrimitive) := {
 			responsePrimitive := p_responsePrimitive
 		}		
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 39aa2f747f27d84696a46ded92b3a0c725bc4794..b9feccdc0b83e2340a697925d706ce15d7e17ca5 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -8915,7 +8915,6 @@ module OneM2M_PermutationFunctions {
 				function f_CSE_ANNC_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive, in template RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu system CseSystem {
 
 					// Local variables
-					var MsgIn v_response;
 					var RequestPrimitive v_request;
 					var integer v_parentIndex := -1;
 					var integer v_aeIndex := -1;
@@ -8934,18 +8933,17 @@ module OneM2M_PermutationFunctions {
 			
 					//Register the CSE
 					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})));
-					
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
+					//remoteCSE is by default the parent for an announced resource
+					v_parentIndex := f_getLatestLocalResourceIndex(vc_cse1);
+					
 					//Preamble
 					vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)));
 					v_aeIndex := f_cse_createResource(int2,v_create);
 					
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
-					//Retrieve the AEAnnc resource index
-					v_parentIndex := f_getLatestLocalResourceIndex(vc_cse1);
-					
 					// Test Body
 					if (ispresent (p_requestUpdatePrimitive)) {
 						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex);
@@ -8955,14 +8953,14 @@ module OneM2M_PermutationFunctions {
 						if (p_resourceType == int4) {
 							v_create := m_createContainerBase;
 							v_create.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId};
-							vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, v_parentIndex));//Do not commit
+							vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, v_parentIndex));
 							v_resourceIndex := f_cse_createResource(int3, v_create, v_aeIndex);
 							f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 							v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_resourceIndex);
 					  	} else if (p_resourceType == int30) {
 							v_create := m_createTimeSeriesBase;
 							v_create.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
-							vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, v_parentIndex));//Do not commit
+							vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, v_parentIndex));
 							v_resourceIndex := f_cse_createResource(int29, v_create, v_aeIndex);
 							f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 							v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_resourceIndex);
@@ -8975,12 +8973,12 @@ module OneM2M_PermutationFunctions {
 					  	v_responsePrimitive.responseStatusCode := int2001;
 					}
 					
-					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_parentIndex));//Do not commit - parent is always remoteCSE	
+					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_parentIndex));	
 					f_send(e_mcaPort, m_request(v_request));
 
 					tc_ac.start;
 					alt {
-						[] mcaPort.receive(mw_response(mw_responsePrimitive(v_responsePrimitive.responseStatusCode))) -> value v_response {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(v_responsePrimitive.responseStatusCode))) -> value vc_response {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ": Operation for resource " & int2str(enum2int(p_resourceType)) & " performed successfully");	
 						}
@@ -9009,10 +9007,7 @@ module OneM2M_PermutationFunctions {
 				
 				function f_CSE_ANNC_CRE_001(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on AeSimu system CseSystem {
 				  //Local variables
-				  var MsgIn v_response;
 				  var integer v_aeIndex := -1;
-				  var integer v_resourceIndex;
-				  var ResponsePrimitive v_responsePrimitive;
 				  var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 				  v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
 				  //Test control
@@ -9045,19 +9040,21 @@ module OneM2M_PermutationFunctions {
 				function f_CSE_ANNC_CRE_002(ResourceType p_resourceType, template RequestPrimitive p_createRequest, in template RequestPrimitive p_updateRequest := omit, in template RequestPrimitive p_createRequestAnnc) runs on CseSimu system CseSystem {
 					// Local variables
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
-					var integer v_localResourceIndex := -1;
-					var integer v_remoteCSEAnncIndex := -1;
+					var integer v_resourceIndex := -1;
+					var XSD.AnyURI v_remoteCSEAnncAddress;
+					var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()});
+					var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE;
+					//v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
 					
 					// Test control
 
 					// Test component configuration
-					f_cf02UpCseSimuMaster();
+					f_cf02UpCseSimuMaster(-, true);
 
 					// Test adapter configuration
 
 					//Register the CSE
-				  	//f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()}));
+				  	f_cse_registerRemoteCse(v_createRemoteCse);
 				  
 					//Preamble
 					vc_ae1.start(f_cse_preamble_registerAe());
@@ -9071,24 +9068,18 @@ module OneM2M_PermutationFunctions {
 					v_resourceIndex := f_getLatestResourceIndex(vc_ae1);
 	
 					// Test Body
+					//Update of the resource so that it gets announced
 					vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_updateRequest, -));
 					
-					tc_ac.start;
-					alt {
-						[] mccPortIn.receive(mw_request(mw_createRemoteCSEAnnc())) -> value vc_request {
-							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ":INFO: Resource Announced CREATE received");
-		
-							//Simulate that resourceAnnc is created on CSE2
-							v_remoteCSEAnncIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -);
-							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
-						}
-						[] tc_ac.timeout {
-							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
-						}
-					}
+					//IUT should announce itself by updating announceTo attribute of remoteCSE
+					v_updateRemoteCse.primitiveContent.remoteCSE.announceTo := {PX_TS_CSE2.cseId};
+					f_cse_updateResourceHandler(vc_localRemoteCseIndex, v_updateRemoteCse, -);
+										
+					//Then, IUT announces the resource on the remoteCSEAnnc resource
+					v_remoteCSEAnncAddress := f_getLatestLocalResourceAddress(vc_cse2);
+					p_createRequestAnnc.to_ := 	v_remoteCSEAnncAddress;	
 					
-					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_remoteCSEAnncIndex);
+					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit);
 					
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
@@ -9100,13 +9091,10 @@ module OneM2M_PermutationFunctions {
 
 				}//end f_CSE_ANNC_CRE_002
 				
-				function f_CSE_ANNC_CRE_004_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
+				function f_CSE_ANNC_CRE_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
 					// Local variables
-					var MsgIn v_request;
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
 					var integer v_aEAnncIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 					
 					v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
@@ -9132,7 +9120,7 @@ module OneM2M_PermutationFunctions {
 					
 					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_aEAnncIndex);					
 					
-					vc_ae1.done;
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
@@ -9142,61 +9130,45 @@ module OneM2M_PermutationFunctions {
 
 				}//end f_CSE_ANNC_CRE_004
 				
-				function f_CSE_ANNC_CRE_005_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
+				function f_CSE_ANNC_CRE_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
 					// Local variables
-					var MsgIn v_request;
-					var integer v_parentIndex := -1;
 					var integer v_aeIndex := -1;
-					var integer v_resourceAnncIndex := -1;
-					var integer v_aEAnncIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
-					var PrimitiveContent v_announcedResource;
+					var XSD.AnyURI v_remoteCSEAnncAddress;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 					var template RequestPrimitive v_createContainer := m_createContainerBase;
+					var template RequestPrimitive v_createContainerAnnc := mw_createContainerAnnc;
+					var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()});
+					var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE;
+					//v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
 					
 					// Test control
 
 					// Test component configuration
-					f_cf02UpCseSimuMaster();
+					f_cf02UpCseSimuMaster(-, true);
 
 					// Test adapter configuration
 					// Register the CSE
-					vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE);
+					vc_remoteCseIndex := f_cse_registerRemoteCse(v_createRemoteCse);
 				  
-					f_checkCseSimuStatus();
-					
 					//Preamble
 					vc_ae1.start(f_cse_createResource(int2,v_create));
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
 					
-					v_createContainer.primitiveContent.container.announceTo := {"/CSE2_ID"};
+					v_createContainer.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId};
 					v_createContainer.primitiveContent.container.resourceName := "TriggerAnnounceIUT";
 					vc_ae1.start(f_cse_createResource(int3,v_createContainer, v_aeIndex));
 					
 					//IUT shall announce itself by updating announceTo attribute of its remoteCSE on its registrar (CSE1)
-					f_cse_updateResourceHandler(vc_localRemoteCseIndex, mw_updateRemoteCSE);				
+					v_updateRemoteCse.primitiveContent.remoteCSE.announceTo := {PX_TS_CSE2.cseId};
+					f_cse_updateResourceHandler(vc_localRemoteCseIndex, v_updateRemoteCse);				
 					
-					tc_ac.start;
-					alt {
-						[] mccPortIn.receive(mw_request(mw_createContainerAnnc(PX_CSE_ID, vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE.announceTo[0] ))) -> value v_request {
-							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ":INFO: Resource Announced CREATE received");
-							
-							//Simulate that resourceAnnc is created on CSE2
-							v_announcedResource:= f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, -1,v_request.primitive.requestPrimitive.resourceType);
-							//Set parentID correctly to remoteCSEAnnc-ID
-							v_announcedResource := f_setParentID(v_announcedResource, f_resourceIdCleaner(vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE.announceTo[0]));
-										
-							v_responsePrimitive := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier));
-							v_responsePrimitive.primitiveContent := v_announcedResource;
-							f_send(e_mccPortIn, m_response(v_responsePrimitive));
-						}
-						[] tc_ac.timeout {
-							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
-						}
-					}
+					//Then, IUT announces the resource on the remoteCSEAnnc
+					v_remoteCSEAnncAddress := f_getLatestLocalResourceAddress(vc_cse2);
+					v_createContainerAnnc.to_ := 	v_remoteCSEAnncAddress;	
+					
+					f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, omit);
 					
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
@@ -9204,28 +9176,11 @@ module OneM2M_PermutationFunctions {
 					vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex));
 					
 					//IUT shall then create the announced resource on its remoteCSEAnnc as indicated in the announceTo attribute returned by its registrar (CSE1)
-					p_createRequestAnnc.to_ := vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE.announceTo[0];
-					tc_ac.start;
-					alt {
-						[] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request {
-							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ":INFO: Resource Announced CREATE received");
-				
-							//Simulate that resourceAnnc is created on CSE2
-							v_announcedResource:= f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, -1,v_request.primitive.requestPrimitive.resourceType);
-							//Set parentID correctly to remoteCSEAnnc-ID
-							v_announcedResource := f_setParentID(v_announcedResource, f_resourceIdCleaner(vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE.announceTo[0]));
-							
-							v_responsePrimitive := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier));
-							v_responsePrimitive.primitiveContent := v_announcedResource;
-							f_send(e_mccPortIn, m_response(v_responsePrimitive));
-						}
-						[] tc_ac.timeout {
-							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
-						}
-					}
+					p_createRequestAnnc.to_ := v_remoteCSEAnncAddress;
 					
-					vc_ae1.done;
+					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit);
+										
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
@@ -9235,14 +9190,9 @@ module OneM2M_PermutationFunctions {
 
 				}//end f_CSE_ANNC_CRE_005
 				
-				function f_CSE_ANNC_CRE_006_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
+				function f_CSE_ANNC_CRE_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
 					// Local variables
-					var MsgIn v_request;
-					var integer v_parentIndex := -1;
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
-					var integer v_aEAnncIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 					
 					// Test control
@@ -9265,7 +9215,7 @@ module OneM2M_PermutationFunctions {
 
 					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, vc_localRemoteCseIndex);
 										
-					vc_ae1.done;
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
@@ -9275,90 +9225,44 @@ module OneM2M_PermutationFunctions {
 
 				}//end f_CSE_ANNC_CRE_006
 				
-				function f_CSE_ANNC_CRE_007_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
+				function f_CSE_ANNC_CRE_007(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
 					// Local variables
-					var MsgIn v_request;
-					var integer v_parentIndex := -1;
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
-					var integer v_aEAnncIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
-					var PrimitiveContent v_announcedResource;
+					var XSD.AnyURI v_remoteCSEAnncAddress;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
-					var template RequestPrimitive v_createContainer := m_createContainerBase;
+					var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()});
+					var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE;
+					//v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
 					
 					// Test control
 					// Test component configuration
-					f_cf02UpCseSimuMaster();
+					f_cf02UpCseSimuMaster(-, true);
 
 					// Test adapter configuration
 					// Register the CSE
-					vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE);
+					f_cse_registerRemoteCse(v_createRemoteCse);
 				  
-					f_checkCseSimuStatus();
-					
 					//Preamble
 					vc_ae1.start(f_cse_createResource(int2,v_create));
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
 					
-					v_createContainer.primitiveContent.container.announceTo := {"/CSE2_ID"};
-					v_createContainer.primitiveContent.container.resourceName := "TriggerAnnounceIUT";
-					vc_ae1.start(f_cse_createResource(int3,v_createContainer, v_aeIndex));
+					p_requestCreatePrimitive.primitiveContent.container.resourceName := "TriggerAnnounceIUT";
+					vc_ae1.start(f_cse_createResource(int3,p_requestCreatePrimitive, v_aeIndex));
 					
 					//IUT shall announce itself by updating announceTo attribute of its remoteCSE on its registrar (CSE1)
-					f_cse_updateResourceHandler(vc_localRemoteCseIndex, mw_updateRemoteCSE);				
+					v_updateRemoteCse.primitiveContent.remoteCSE.announceTo := {PX_TS_CSE2.cseId};
+					f_cse_updateResourceHandler(vc_localRemoteCseIndex, v_updateRemoteCse);				
 					
-					tc_ac.start;
-					alt {
-						[] mccPortIn.receive(mw_request(mw_createContainerAnnc(PX_CSE_ID, vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE.announceTo[0] ))) -> value v_request {
-							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ":INFO: Resource Announced CREATE received");
-							
-							//Simulate that resourceAnnc is created on CSE2
-							v_announcedResource:= f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, -1,v_request.primitive.requestPrimitive.resourceType);
-							//Set parentID correctly to remoteCSEAnnc-ID
-							v_announcedResource := f_setParentID(v_announcedResource, f_resourceIdCleaner(vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE.announceTo[0]));
-										
-							v_responsePrimitive := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier));
-							v_responsePrimitive.primitiveContent := v_announcedResource;
-							f_send(e_mccPortIn, m_response(v_responsePrimitive));
-						}
-						[] tc_ac.timeout {
-							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
-						}
-					}
+					//Then, IUT announces the resource on the remoteCSEAnnc
+					v_remoteCSEAnncAddress := f_getLatestLocalResourceAddress(vc_cse2);
+					p_createRequestAnnc.to_ := 	v_remoteCSEAnncAddress;	
 					
-					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit);
 					
-					// Test Body
-					vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex));
-					
-					//IUT shall then create the announced resource on its remoteCSEAnnc as indicated in the announceTo attribute returned by its registrar (CSE1)
-					p_createRequestAnnc.to_ := vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE.announceTo[0];
-					tc_ac.start;
-					alt {
-						[] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request {
-							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ":INFO: Resource Announced CREATE received");
-				
-							//Simulate that resourceAnnc is created on CSE2
-							v_announcedResource:= f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, -1,v_request.primitive.requestPrimitive.resourceType);
-							//Set parentID correctly to remoteCSEAnnc-ID
-							v_announcedResource := f_setParentID(v_announcedResource, f_resourceIdCleaner(vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE.announceTo[0]));
-							
-							v_responsePrimitive := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier));
-							v_responsePrimitive.primitiveContent := v_announcedResource;
-							f_send(e_mccPortIn, m_response(v_responsePrimitive));
-						}
-						[] tc_ac.timeout {
-							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
-						}
-					}
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
-					vc_ae1.done;
-
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
 										
@@ -9367,13 +9271,12 @@ module OneM2M_PermutationFunctions {
 
 				}//end f_CSE_ANNC_CRE_007
 				
-				function f_CSE_ANNC_CRE_008_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
+				function f_CSE_ANNC_CRE_008(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
 					// Local variables
-					var MsgIn v_request;
 					var integer v_aeIndex := -1;
 					var integer v_aEAnncIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
+					
 					v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
    
 					// Test control
@@ -9396,7 +9299,7 @@ module OneM2M_PermutationFunctions {
 					// Test Body
 					vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex));
 					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_aEAnncIndex);
-					vc_ae1.done;
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
@@ -9406,15 +9309,12 @@ module OneM2M_PermutationFunctions {
 
 				}//end f_CSE_ANNC_CRE_008
 				
-				function f_CSE_ANNC_CRE_009_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
+				function f_CSE_ANNC_CRE_009(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem {
 					// Local variables
-					var MsgIn v_request;
-					var integer v_parentIndex := -1;
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
 					var integer v_aEAnncIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
+					
 					v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
    
 					// Test control
@@ -9436,7 +9336,7 @@ module OneM2M_PermutationFunctions {
 					// Test Body
 					vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex));
 					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_aEAnncIndex);
-					vc_ae1.done;
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
@@ -9480,7 +9380,7 @@ module OneM2M_PermutationFunctions {
 					
 					//Creating resource in Hosting CSE
 					vc_cse1.start(f_generateAndSetLocalResource(valueof(p_originalResource), v_cseBaseIndex, p_resourceType));
-					vc_cse1.done;
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
 					v_originalResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, -);
 					
@@ -9560,7 +9460,7 @@ module OneM2M_PermutationFunctions {
 					
 					//Creating resource in Hosting CSE
 					vc_cse1.start(f_generateAndSetLocalResource(valueof(p_originalResource), v_cseBaseIndex, p_resourceType));
-					vc_cse1.done;
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
 					v_originalResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, e_spRelative);
 					
@@ -9625,7 +9525,6 @@ module OneM2M_PermutationFunctions {
 					var integer v_aEAnncIndex := -1;
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 		
 					v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
@@ -9689,7 +9588,7 @@ module OneM2M_PermutationFunctions {
 				function f_CSE_ANNC_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu system CseSystem {
 					// Local variables
 					var integer v_aeIndex := -1;
-					var integer v_announcedResourceIndex;
+					var integer v_announcedResourceIndex := -1;
 					var integer v_aEAnncIndex := -1;
 					var integer v_resourceIndex := -1;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
@@ -9821,7 +9720,7 @@ module OneM2M_PermutationFunctions {
 					
 				} //end f_CSE_ANNC_UPD_003
 				
-				function f_CSE_ANNC_UPD_004(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on AeSimu system CseSystem {
+				function f_CSE_ANNC_UPD_004(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template PrimitiveContent p_updateResponse) runs on AeSimu system CseSystem {
 					// Local variables
 					var integer v_aeIndex := -1;
 					var integer v_announcedResourceIndex := -1;
@@ -9862,7 +9761,7 @@ module OneM2M_PermutationFunctions {
 
 					tc_ac.start;
 					alt {
-						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, p_updateResponse), {*, "announceAttribute", *})) -> value vc_response {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ": Resource updated successfully");
 
@@ -9892,13 +9791,10 @@ module OneM2M_PermutationFunctions {
 	
 				function f_CSE_ANNC_UPD_005(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu system CseSystem {
 					// Local variables
-					var RequestPrimitive v_requestUpdatePrimitive;
-					var integer v_parentIndex := -1;
 					var integer v_aeIndex := -1;
 					var integer v_aEAnncIndex := -1;
 					var integer v_resourceIndex := -1;
 					var integer v_announcedResourceIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 		
 					v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
@@ -9964,57 +9860,47 @@ module OneM2M_PermutationFunctions {
 					// Local variables
 					var integer v_resourceIndex := -1;
 					var integer v_aeIndex := -1;
-					var integer v_announcedRemoteCseIndex;
+					var XSD.AnyURI v_remoteCSEAnncAddress;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 					var template RequestPrimitive v_createRequestRemoteCseAnnc := m_createRemoteCSEAnncBase;
+					var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()});
+					var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE;
+					//v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
+
+					// Test control
 
-								//Test control
-	
 					// Test component configuration
-					f_cf02UpCseSimuMaster();
-					
+					f_cf02UpCseSimuMaster(-, true);
+
 					// Test adapter configuration
-					// Do not register the CSE
-					v_createRequestRemoteCseAnnc.primitiveContent := f_setLink(valueof(v_createRequestRemoteCseAnnc.primitiveContent), f_getLocalResourceAddress());
-					v_createRequestRemoteCseAnnc.primitiveContent.remoteCSEAnnc.pointOfAccess := {f_getCompletePoA()};
-					v_announcedRemoteCseIndex := f_cse_createResource_cseSimu(int10016, v_createRequestRemoteCseAnnc);
-					
+
+					//Register the CSE
+					f_cse_registerRemoteCse(v_createRemoteCse);
+
 					//Preamble
-					vc_ae1.start(f_cse_createResource(int2,v_create));
+					vc_ae1.start(f_cse_preamble_registerAe());
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
 					
-					// Test Body
-					vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex));
+					vc_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex));
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					v_resourceIndex := f_getLatestResourceIndex(vc_ae1);
 	
 					// Test Body
-					vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -));
+					vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestCreatePrimitive, -));
 					
-					tc_ac.start;
-					alt {
-						[] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value vc_request {
-							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ":INFO: Announcement received");
-			
-							f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedRemoteCseIndex);
-							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
-						}
-						[] mccPortIn.receive(mw_request(mw_create)) -> value vc_request {
-							tc_ac.stop;
-							setverdict(fail, __SCOPE__ & ":ERROR: Unexpected create operation received");
-	
-							f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive);
-							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
-						}
-						[] tc_ac.timeout {
-							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
-						}
-					}
+					//IUT shall announce itself by updating announceTo attribute of its remoteCSE on its registrar (CSE1)
+					v_updateRemoteCse.primitiveContent.remoteCSE.announceTo := {PX_TS_CSE2.cseId};
+					f_cse_updateResourceHandler(vc_localRemoteCseIndex, v_updateRemoteCse, -);
 					
+					//Then, IUT announces the resource on the remoteCSEAnnc
+					v_remoteCSEAnncAddress := f_getLatestLocalResourceAddress(vc_cse2);
+					p_createRequestAnnc.to_ := 	v_remoteCSEAnncAddress;	
+					
+					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit);
+
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 
 					// Postamble
@@ -10028,8 +9914,7 @@ module OneM2M_PermutationFunctions {
 				function f_CSE_ANNC_UPD_007(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu system CseSystem {
 					// Local variables
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
-					var ResponsePrimitive v_responsePrimitive;
+					var integer v_resourceIndex := -1;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 
 					//Test control
@@ -10159,7 +10044,7 @@ module OneM2M_PermutationFunctions {
 					// Local variables
 					var integer v_announcedResourceIndex := -1;
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
+					var integer v_resourceIndex := -1;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 
 					// Test component configuration
@@ -10220,7 +10105,7 @@ module OneM2M_PermutationFunctions {
 					// Local variables
 					var integer v_announcedResourceIndex := -1;
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
+					var integer v_resourceIndex := -1;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 
 					// Test component configuration
@@ -10281,7 +10166,7 @@ module OneM2M_PermutationFunctions {
 					// Local variables
 					var integer v_announcedResourceIndex := -1;
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
+					var integer v_resourceIndex := -1;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 
 					// Test component configuration
@@ -10340,7 +10225,7 @@ module OneM2M_PermutationFunctions {
 					// Local variables
 					var integer v_announcedResourceIndex := -1;
 					var integer v_aeIndex := -1;
-					var integer v_resourceIndex;
+					var integer v_resourceIndex := -1;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 					
 					// Test component configuration
@@ -10401,7 +10286,6 @@ module OneM2M_PermutationFunctions {
 					var integer v_localRemoteCseIndex := -1;
 					var integer v_announcedResourceIndex := -1;
 					var integer v_resourceIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 
 					//Test control
@@ -10470,7 +10354,6 @@ module OneM2M_PermutationFunctions {
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
 					var integer v_localRemoteCseIndex := -1;
-					var ResponsePrimitive v_responsePrimitive;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 
 					//Test control
@@ -10536,8 +10419,7 @@ module OneM2M_PermutationFunctions {
 					//Local variables
 					var RequestPrimitive v_request;
 				  	var integer v_aeIndex := -1;
-				  	var integer v_resourceIndex;
-				  	var ResponsePrimitive v_responsePrimitive;
+				  	var integer v_resourceIndex := -1;
 				  	
 				  	//Test control
 
diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn
index 9be5480dc6dbeb6e23c1f5e7d0dea49487b35601..695f7da3e9536c959339d4e9b8b522daabcce161 100644
--- a/OneM2M_Testcases_CSE_Release_3.ttcn
+++ b/OneM2M_Testcases_CSE_Release_3.ttcn
@@ -9623,7 +9623,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
 						
 						
-						v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {"/CSE2_ID"};
+						v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE2.cseId};
   
 						v_cse1.start(f_CSE_ANNC_CRE_002(int1, v_createRequest, v_updateRequest, v_createRequestAnnc));//AccessControlPolicy
 						v_cse1.done;
@@ -9637,7 +9637,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc;
 						
 						
-						v_updateRequest.primitiveContent.container.announceTo := {f_getCompletePoA(PX_TS_CSE1.mccPortIn)};
+						v_updateRequest.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId};
   
 						v_cse1.start(f_CSE_ANNC_CRE_002(int3, v_createRequest, v_updateRequest, v_createRequestAnnc));//Container
 						v_cse1.done;
@@ -9651,7 +9651,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc;
 						
 						
-						v_updateRequest.primitiveContent.group_.announceTo := {"/CSE2_ID"};
+						v_updateRequest.primitiveContent.group_.announceTo := {PX_TS_CSE2.cseId};
   
 						v_cse1.start(f_CSE_ANNC_CRE_002(int9, v_createRequest, v_updateRequest, v_createRequestAnnc));//Group
 						v_cse1.done;
@@ -9665,26 +9665,26 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc;
   
 						
-						v_updateRequest.primitiveContent.timeSeries.announceTo := {"/CSE2_ID"};
+						v_updateRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE2.cseId};
   
 						v_cse1.start(f_CSE_ANNC_CRE_002(int29, v_createRequest, v_updateRequest, v_createRequestAnnc));//TimeSeries
 						v_cse1.done;
 					}
 				} //end group g_CSE_ANNC_CRE_002
 				
-					/**
-					 * @desc Host CSE of original resource removes an announcement target CSE from the announceTo attribute if it does not return successful CREATE response for the announced resource (for a CREATE initiating resource announcement)
-					 *  
-					 */
-					testcase TC_CSE_ANNC_CRE_003() runs on Tester system CseSystem {
-						//Local variables
-						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-							
-						
-					v_ae1.start(f_CSE_ANNC_CRE_003());//ContentInstance
-						v_ae1.done;
+				/**
+				 * @desc Host CSE of original resource removes an announcement target CSE from the announceTo attribute if it does not return successful CREATE response for the announced resource (for a CREATE initiating resource announcement)
+				 *  
+				 */
+				testcase TC_CSE_ANNC_CRE_003() runs on Tester system CseSystem {
+					//Local variables
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						
-					} //end TC_CSE_ANNC_CRE_003
+					
+				v_ae1.start(f_CSE_ANNC_CRE_003());//ContentInstance
+					v_ae1.done;
+					
+				} //end TC_CSE_ANNC_CRE_003
 					
 				function f_CSE_ANNC_CRE_003() runs on AeSimu system CseSystem {
 				
@@ -9771,7 +9771,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						
 						v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId};
   
-						v_cse1.start(f_CSE_ANNC_CRE_004_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
+						v_cse1.start(f_CSE_ANNC_CRE_004(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
 						v_cse1.done;
 					}
 					
@@ -9784,7 +9784,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						
 						v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId};
   
-						v_cse1.start(f_CSE_ANNC_CRE_004_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container
+						v_cse1.start(f_CSE_ANNC_CRE_004(int3, v_createRequestAnnc, v_createRequest));//Container
 						v_cse1.done;
 					}
 					
@@ -9797,7 +9797,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						
 						v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE1.cseId};
   
-						v_cse1.start(f_CSE_ANNC_CRE_004_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
+						v_cse1.start(f_CSE_ANNC_CRE_004(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
 						v_cse1.done;
 					}
 					
@@ -9810,7 +9810,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						
 						v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId};
   
-						v_cse1.start(f_CSE_ANNC_CRE_004_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group
+						v_cse1.start(f_CSE_ANNC_CRE_004(int9, v_createRequestAnnc, v_createRequest));//Group
 						v_cse1.done;
 					}
 					
@@ -9823,7 +9823,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						
 						v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
   
-						v_cse1.start(f_CSE_ANNC_CRE_004_CseSimu(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
+						v_cse1.start(f_CSE_ANNC_CRE_004(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
 						v_cse1.done;
 					}
 					
@@ -9842,9 +9842,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
 	  
 						 
-						 v_createRequest.primitiveContent.accessControlPolicy.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE2.cseId};
 	  
-						 v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
+						 v_cse1.start(f_CSE_ANNC_CRE_005(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
 						 v_cse1.done;
 					}
 					
@@ -9855,9 +9855,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc;
   
 						 
-						 v_createRequest.primitiveContent.container.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container
+						 v_cse1.start(f_CSE_ANNC_CRE_005(int3, v_createRequestAnnc, v_createRequest));//Container
 						 v_cse1.done;
 					}
 					
@@ -9868,9 +9868,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc;
   
 						 
-						 v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE1.cseId};
+						 v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE2.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
+						 v_cse1.start(f_CSE_ANNC_CRE_005(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
 						 v_cse1.done;
 						
 					}
@@ -9882,9 +9882,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc;
   
 						 
-						 v_createRequest.primitiveContent.group_.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE2.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group
+						 v_cse1.start(f_CSE_ANNC_CRE_005(int9, v_createRequestAnnc, v_createRequest));//Group
 						 v_cse1.done;
 					}
 					
@@ -9895,9 +9895,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc;
   
 						
-						 v_createRequest.primitiveContent.timeSeries.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE2.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
+						 v_cse1.start(f_CSE_ANNC_CRE_005(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
 						 v_cse1.done;
 					}
 					
@@ -9908,9 +9908,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnnc;
   
 						
-						 v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE2.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
+						 v_cse1.start(f_CSE_ANNC_CRE_005(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
 						 v_cse1.done;
 					}
 					
@@ -9931,7 +9931,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 
 						 v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
+						 v_cse1.start(f_CSE_ANNC_CRE_006(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
 						 v_cse1.done;
 					}
 	
@@ -9944,7 +9944,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 
 						 v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container
+						 v_cse1.start(f_CSE_ANNC_CRE_006(int3, v_createRequestAnnc, v_createRequest));//Container
 						 v_cse1.done;
 					}
 	
@@ -9957,7 +9957,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 
 						 v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE1.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
+						 v_cse1.start(f_CSE_ANNC_CRE_006(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
 						 v_cse1.done;
 		
 					}
@@ -9971,7 +9971,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 
 						 v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group
+						 v_cse1.start(f_CSE_ANNC_CRE_006(int9, v_createRequestAnnc, v_createRequest));//Group
 						 v_cse1.done;
 					}
 					
@@ -9984,7 +9984,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						
 						 v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
 	  
-						 v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
+						 v_cse1.start(f_CSE_ANNC_CRE_006(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
 						 v_cse1.done;
 					}
 					
@@ -9997,7 +9997,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						
 						 v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE1.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
+						 v_cse1.start(f_CSE_ANNC_CRE_006(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
 						 v_cse1.done;
 					}
 	
@@ -10016,9 +10016,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
 	  
 						 
-						 v_createRequest.primitiveContent.accessControlPolicy.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE2.cseId};
 	  
-						 v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
+						 v_cse1.start(f_CSE_ANNC_CRE_007(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
 						 v_cse1.done;
 					}
 	
@@ -10029,9 +10029,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc;
 	  
 						 
-						 v_createRequest.primitiveContent.container.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId};
 	  
-						 v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container
+						 v_cse1.start(f_CSE_ANNC_CRE_007(int3, v_createRequestAnnc, v_createRequest));//Container
 						 v_cse1.done;
 					}
 	
@@ -10042,9 +10042,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc;
 	  
 						 
-						 v_createRequest.primitiveContent.contentInstance.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE2.cseId};
 	  
-						 v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
+						 v_cse1.start(f_CSE_ANNC_CRE_007(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
 						 v_cse1.done;
 	
 					}
@@ -10056,9 +10056,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc;
 	  
 						 
-						 v_createRequest.primitiveContent.group_.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE2.cseId};
 	  
-						 v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group
+						 v_cse1.start(f_CSE_ANNC_CRE_007(int9, v_createRequestAnnc, v_createRequest));//Group
 						 v_cse1.done;
 					}
 					
@@ -10069,9 +10069,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc;
   
 						 
-						 v_createRequest.primitiveContent.accessControlPolicy.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE2.cseId};
 						 
-						 v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
+						 v_cse1.start(f_CSE_ANNC_CRE_007(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
 						 v_cse1.done;
 					}
 					
@@ -10082,9 +10082,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnnc;
 						 
 						 
-						 v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {"/CSE2_ID"};
+						 v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE2.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
+						 v_cse1.start(f_CSE_ANNC_CRE_007(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
 						 v_cse1.done;
 					}
 	
@@ -10107,7 +10107,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 v_createRequest.primitiveContent.container.announcedAttribute := {"mbs"};
 						 v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := ?;
 						 
-						 v_cse1.start(f_CSE_ANNC_CRE_008_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container
+						 v_cse1.start(f_CSE_ANNC_CRE_008(int3, v_createRequestAnnc, v_createRequest));//Container
 						 v_cse1.done;
 					}
 
@@ -10122,7 +10122,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 v_createRequest.primitiveContent.contentInstance.announcedAttribute := {"cnf"};
 						 v_createRequestAnnc.primitiveContent.contentInstanceAnnc.contentInfo:= ?;
 						 
-						 v_cse1.start(f_CSE_ANNC_CRE_008_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
+						 v_cse1.start(f_CSE_ANNC_CRE_008(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
 						 v_cse1.done;
 					}
 
@@ -10137,7 +10137,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 v_createRequest.primitiveContent.group_.announcedAttribute := {"mt"};
 						 v_createRequestAnnc.primitiveContent.groupAnnc.memberType:= ?;
 						 
-						 v_cse1.start(f_CSE_ANNC_CRE_008_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group
+						 v_cse1.start(f_CSE_ANNC_CRE_008(int9, v_createRequestAnnc, v_createRequest));//Group
 						 v_cse1.done;
 
 					}
@@ -10153,7 +10153,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 v_createRequest.primitiveContent.timeSeries.announcedAttribute := {"mbs"};
 						 v_createRequestAnnc.primitiveContent.timeSeriesAnnc.maxByteSize := ?;
 						 
-						 v_cse1.start(f_CSE_ANNC_CRE_008_CseSimu(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
+						 v_cse1.start(f_CSE_ANNC_CRE_008(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
 						 v_cse1.done;
 					}
 					
@@ -10168,7 +10168,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 v_createRequest.primitiveContent.timeSeriesInstance.announcedAttribute := {"cs"};
 						 v_createRequestAnnc.primitiveContent.timeSeriesInstanceAnnc.contentSize := ?;
 						 
-						 v_cse1.start(f_CSE_ANNC_CRE_008_CseSimu(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
+						 v_cse1.start(f_CSE_ANNC_CRE_008(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
 						 v_cse1.done;
 					}
 
@@ -10191,7 +10191,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 v_createRequest.primitiveContent.container.labels := {"MyLabel"};
 						 v_createRequestAnnc.primitiveContent.containerAnnc.labels := ?;
 	  
-						 v_cse1.start(f_CSE_ANNC_CRE_009_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container
+						 v_cse1.start(f_CSE_ANNC_CRE_009(int3, v_createRequestAnnc, v_createRequest));//Container
 						 v_cse1.done;
 					}
 				} //end group g_CSE_ANNC_CRE_009
@@ -10674,56 +10674,79 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
-						var template RequestPrimitive v_updateRequest := m_updateAcpBase;	
+						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+						var template PrimitiveContent v_updateResponse := { accessControlPolicy := mw_contentAcpBase};
+						const charstring v_cse1Id := PX_TS_CSE1.cseId;
+						template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*";
 
 						v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId};
 						v_updateRequest.primitiveContent.accessControlPolicy.announcedAttribute := {"pi"};
-
-						v_ae1.start(f_CSE_ANNC_UPD_004(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy
+						
+						v_updateResponse.accessControlPolicy.announceTo := {v_announcedResourceAddress};
+						v_updateResponse.accessControlPolicy.announcedAttribute := omit;
+						
+						v_ae1.start(f_CSE_ANNC_UPD_004(int1, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateResponse));//AccessControlPolicy
 						v_ae1.done;
+						
 					}
-
 					testcase TC_CSE_ANNC_UPD_004_CNT() runs on Tester system CseSystem {
 						// Local variables
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+						var template PrimitiveContent v_updateResponse := { container := mw_contentContainerBase};
+						const charstring v_cse1Id := PX_TS_CSE1.cseId;
+						template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*";
 
 						v_updateRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId};
 						v_updateRequest.primitiveContent.container.announcedAttribute := {"pi"};
   
-						v_ae1.start(f_CSE_ANNC_UPD_004(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container
+						v_updateResponse.container.announceTo := {v_announcedResourceAddress};
+						v_updateResponse.container.announcedAttribute := omit;
+
+						v_ae1.start(f_CSE_ANNC_UPD_004(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateResponse));//Container
 						v_ae1.done;
+					
 					}
-
 					testcase TC_CSE_ANNC_UPD_004_GRP() runs on Tester system CseSystem {
 						// Local variables
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;	
-
+						var template PrimitiveContent v_updateResponse := { group_ := mw_contentGroupBase};
+						const charstring v_cse1Id := PX_TS_CSE1.cseId;
+						template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*";
 						
 						v_updateRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId};
 						v_updateRequest.primitiveContent.group_.announcedAttribute := {"pi"};
   
-						v_ae1.start(f_CSE_ANNC_UPD_004(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group
+						v_updateResponse.group_.announceTo := {v_announcedResourceAddress};
+						v_updateResponse.group_.announcedAttribute := omit;
+
+						v_ae1.start(f_CSE_ANNC_UPD_004(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateResponse));//Group
 						v_ae1.done;
 					}
-					
 					testcase TC_CSE_ANNC_UPD_004_TS() runs on Tester system CseSystem {
 						// Local variables
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template RequestPrimitive v_createRequest := m_createTimeSeriesBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase;	
+						var template PrimitiveContent v_updateResponse := { timeSeries := mw_contentTimeSeriesBase};
+						const charstring v_cse1Id := PX_TS_CSE1.cseId;
+						template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*";
 						
-						v_updateRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
+						v_updateRequest.primitiveContent.timeSeries.announceTo := {v_announcedResourceAddress};
 						v_updateRequest.primitiveContent.timeSeries.announcedAttribute := {"pi"};
   
-						v_ae1.start(f_CSE_ANNC_UPD_004(int29, v_createRequest, v_createRequestAnnc, v_updateRequest));//TimeSeries
+						v_updateResponse.timeSeries.announceTo := {PX_TS_CSE1.cseId};
+						v_updateResponse.timeSeries.announcedAttribute := omit;
+
+						v_ae1.start(f_CSE_ANNC_UPD_004(int29, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateResponse));//TimeSeries
 						v_ae1.done;
+
 					}
 				} // end group g_CSE_ANNC_UPD_004
 	
@@ -10782,7 +10805,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						
-						v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId};
+						v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE2.cseId};
 						
 						v_cse1.start(f_CSE_ANNC_UPD_006(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy
 						v_cse1.done;
@@ -10795,8 +10818,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 	
-						
-						v_updateRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId};
+						v_updateRequest.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId};
 	
 						v_cse1.start(f_CSE_ANNC_UPD_006(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container
 						v_cse1.done;
@@ -10808,9 +10830,8 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-
 						
-						v_updateRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId};
+						v_updateRequest.primitiveContent.group_.announceTo := {PX_TS_CSE2.cseId};
 
 						v_cse1.start(f_CSE_ANNC_UPD_006(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group
 						v_cse1.done;
@@ -10823,9 +10844,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase;
 						
-						
-						
-						v_updateRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
+						v_updateRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE2.cseId};
 
 						v_cse1.start(f_CSE_ANNC_UPD_006(int29, v_createRequest, v_createRequestAnnc, v_updateRequest));//TimeSeries
 						v_cse1.done;
@@ -10944,7 +10963,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						}	
 					}
 					
-					testcase TC_CSE_ANNC_UPD_008_GRP_MT() runs on Tester system CseSystem {
+					testcase TC_CSE_ANNC_UPD_008_GRP_MNM() runs on Tester system CseSystem {
 						// Local variables
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
@@ -11060,7 +11079,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						v_cse1.done;
 					}
 
-					testcase TC_CSE_ANNC_UPD_009_GRP_MT() runs on Tester system CseSystem {
+					testcase TC_CSE_ANNC_UPD_009_GRP_MNM() runs on Tester system CseSystem {
 						// Local variables
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
@@ -11239,7 +11258,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						v_cse1.done;
 					}
 
-					testcase TC_CSE_ANNC_UPD_011_GRP_MT() runs on Tester system CseSystem {
+					testcase TC_CSE_ANNC_UPD_011_GRP_MNM() runs on Tester system CseSystem {
 						// Local variables
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
@@ -11472,7 +11491,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					
 					}
 	
-					testcase TC_CSE_ANNC_UPD_013_GRP_MT() runs on Tester system CseSystem {
+					testcase TC_CSE_ANNC_UPD_013_GRP_MNM() runs on Tester system CseSystem {
 						// Local variables
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template RequestPrimitive v_createRequest := m_createGroupBase;