diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index f6af89fbed4540266cc9852d897d9366c14f7e32..68b138ce26c4217731f791a1f838ff03d9f48c01 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -1121,7 +1121,6 @@ module OneM2M_Functions {
 				var MyResource v_resource;
 				var integer v_resourceIndex := -1;
 		
-
 				p_component.start(f_sendLatestLocalResource());
 				alt {
 					[]infoPort.receive(mw_resource) -> value v_resource {
@@ -1663,7 +1662,11 @@ module OneM2M_Functions {
 						}	
 						
 					}
-					
+					//If a reset of the IUT is required (for instance, to remove IUT internal variables such as CSEBaseAnnc registry)
+					if(vc_resetRequired) {
+						//Reset IUT required as CSEBaseAnnc is internally stored in IUT for further announcements
+						f_cse_sendUtPrimitive(m_utCommand_reset, __SCOPE__ & ": Please, reset IUT");
+					}
 				}
 				if((vc_config == e_cf02CseSimuMaster) or ((vc_config == e_cf01) and (vc_aeSimuDesc.appId == "NMyApp2Id"))){
 					if(infoPort.checkstate("Connected")) {
@@ -1850,6 +1853,11 @@ module OneM2M_Functions {
 								}
 							}
 						}
+					}
+					//If a reset of the IUT is required (for instance, to remove IUT internal variables such as CSEBaseAnnc registry)
+					if(vc_resetRequired) {
+						//Reset IUT required as CSEBaseAnnc is internally stored in IUT for further announcements
+						f_cse_sendUtPrimitive_cseSimu(m_utCommand_reset, __SCOPE__ & ": Please, reset IUT");
 					}					
 				}
 				
@@ -2841,13 +2849,18 @@ 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, template (omit) 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 := omit) runs on CseSimu return integer{
 					// Local variables
 					var integer v_announcedResourceIndex;
-				
+					var RequestPrimitive v_request;
+					var ResponsePrimitive v_response;
+					template XSD.AnyURI v_announcedResourceAddress := pattern "{vc_cseSimuDesc.cseId}*";
+					
+					
 					//Activate defaults when running on a PTC
 					f_cse_activateDefaults_cse1();		
 				
+					p_requestPrimitive.to_ := v_announcedResourceAddress;
 					tc_ac.start;
 					alt {
 						[] mccPortIn.receive(mw_request(p_requestPrimitive)) -> value vc_request {
@@ -2857,13 +2870,60 @@ module OneM2M_Functions {
 							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
 							if(getverdict == inconc) {
 								setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address");
-									}	
-									}
+							}	
+						}
 						[] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request {
 							tc_ac.stop;
-							setverdict(fail, __SCOPE__ & ":ERROR:  Request received with unexpected parameters");
-							v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
-							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));	
+							if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) ==  PX_TS_CSE2.cseId) {
+								setverdict(pass, __SCOPE__ & ":INFO: Announcement received targeting CSE2");
+								mccPortInternal.send(vc_request.primitive.requestPrimitive);
+								alt {
+									[]mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response {
+									}
+								}
+							
+								f_send(e_mccPortIn, m_response(v_response));
+								if(vc_request.primitive.requestPrimitive.resourceType == int10005){
+									tc_ac.start;
+									repeat;
+								} else {
+									break;
+								};
+							}
+							if((vc_request.primitive.requestPrimitive.resourceType == int10005) and (not(isvalue(p_expectedParentResourceIndex)))) {
+								setverdict(pass, __SCOPE__ & ":INFO:  Request received for CSEBaseAnnc");
+								p_expectedParentResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_cSEBaseIndex);
+								f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
+								tc_ac.start;
+								repeat;
+							} else {
+								setverdict(fail, __SCOPE__ & ":ERROR:  Request received with unexpected parameters");
+								v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
+								f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
+							}	
+						}
+						[vc_cseSimuDesc.cseName == "CSE2_NAME"] mccPortInternal.receive(p_requestPrimitive) -> value v_request {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ":INFO: Expected Announcement received");
+							v_announcedResourceIndex := f_processCreateRequestPrimitive(v_request, p_responseStatusCode, p_expectedParentResourceIndex);
+							mccPortInternal.send(vc_response.primitive.responsePrimitive);
+							if(getverdict == inconc) {
+								setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address");
+							}	
+						}
+						[vc_cseSimuDesc.cseName == "CSE2_NAME"] mccPortInternal.receive(mw_createAnnc) -> value v_request {
+							tc_ac.stop;
+							if(v_request.resourceType == int10005) {
+								setverdict(pass, __SCOPE__ & ":INFO:  Request received for CSEBaseAnnc");
+								p_expectedParentResourceIndex := f_processCreateRequestPrimitive(v_request, -, vc_cSEBaseIndex);
+								mccPortInternal.send(vc_response.primitive.responsePrimitive);
+								tc_ac.start;
+								repeat;
+							} else {
+								setverdict(fail, __SCOPE__ & ":ERROR:  Request received with unexpected parameters");
+								v_announcedResourceIndex := f_processCreateRequestPrimitive(v_request, int4000);
+								mccPortInternal.send(vc_response.primitive.responsePrimitive);
+							}	
 						}
 						[] tc_ac.timeout {
 							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
@@ -2965,7 +3025,7 @@ module OneM2M_Functions {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ":INFO: Expected UPDATE Announcement received");
 	
-							f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive);
+							f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, -, vc_request.nullFields);
 							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
 						}
 						[] mccPortIn.receive(mw_request(mw_update)) -> value vc_request {
@@ -3728,6 +3788,16 @@ module OneM2M_Functions {
 						v_myResource.contentInstanceAnnc.creationTime := fx_generateTimestamp();
 						v_myResource.contentInstanceAnnc.lastModifiedTime := v_myResource.contentInstanceAnnc.creationTime;
 					}
+				} else if (p_resourceType == int10005 and ispresent (p_resource)) { //CSEBaseAnnc
+					if(ischosen(p_resource.cSEBaseAnnc)) {
+						v_myResource.cSEBaseAnnc := valueof(p_resource.cSEBaseAnnc);
+						v_myResource.cSEBaseAnnc.resourceName := "cSEBaseAnnc" & int2str(v_resourceIndex);
+						v_myResource.cSEBaseAnnc.resourceType := p_resourceType;
+						v_myResource.cSEBaseAnnc.resourceID := "cbA" & int2str(v_resourceIndex);
+						v_myResource.cSEBaseAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
+						v_myResource.cSEBaseAnnc.creationTime := fx_generateTimestamp();
+						v_myResource.cSEBaseAnnc.lastModifiedTime := v_myResource.cSEBaseAnnc.creationTime;
+					}
 				} else if (p_resourceType == int10016 and ispresent (p_resource)) { //RemoteCSEAnnc
 					if(ischosen(p_resource.remoteCSEAnnc)) {
 						v_myResource.remoteCSEAnnc := valueof(p_resource.remoteCSEAnnc);
@@ -3967,7 +4037,7 @@ module OneM2M_Functions {
 			 * @param  p_localResourceIndex	Resource index of resource to be updated
 			 * @param  p_resource          	Resource update
 			 */
-			function f_updateLocalResource(in integer p_localResourceIndex, in PrimitiveContent p_resource) runs on CseSimu {
+			function f_updateLocalResource(in integer p_localResourceIndex, in PrimitiveContent p_resource, template (omit) AttributeList_1 p_nullFields := omit) runs on CseSimu {
 				var XSD.AnyURI v_remoteCSEAnncAddress;
 				var PrimitiveContent v_primitiveContent;
 				
@@ -4188,6 +4258,51 @@ module OneM2M_Functions {
 					if(ispresent(p_resource.containerAnnc.maxInstanceAge)) {
 						vc_localResourcesList[p_localResourceIndex].resource.containerAnnc.maxInstanceAge := p_resource.containerAnnc.maxInstanceAge;
 					}
+					if(isvalue(p_nullFields)) {
+						if (p_nullFields[0] == "maxByteSize") {
+							vc_localResourcesList[p_localResourceIndex].resource.containerAnnc.maxByteSize := omit;
+						}
+					}
+				} else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc) and (ischosen(p_resource.timeSeriesAnnc))) {//timeSeriesAnnc
+					if(ispresent(p_resource.containerAnnc.expirationTime)) {
+						vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.expirationTime := p_resource.timeSeriesAnnc.expirationTime;
+					}
+					if(ispresent(p_resource.containerAnnc.labels)) {
+						vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.labels := p_resource.timeSeriesAnnc.labels;
+					}
+					if(ispresent(p_resource.containerAnnc.dynamicAuthorizationConsultationIDs)) {
+						vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.dynamicAuthorizationConsultationIDs := p_resource.timeSeriesAnnc.dynamicAuthorizationConsultationIDs;
+					}
+					if(ispresent(p_resource.containerAnnc.maxNrOfInstances)) {
+						vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxNrOfInstances := p_resource.timeSeriesAnnc.maxNrOfInstances;
+					}
+					if(ispresent(p_resource.containerAnnc.maxByteSize)) {
+						vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxByteSize := p_resource.timeSeriesAnnc.maxByteSize;
+					}
+					if(ispresent(p_resource.containerAnnc.maxInstanceAge)) {
+						vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxInstanceAge := p_resource.timeSeriesAnnc.maxInstanceAge;
+					}
+					if(isvalue(p_nullFields)) {
+						if (p_nullFields[0] == "maxByteSize") {
+							vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxByteSize := omit;
+						}
+					}
+
+				} else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.groupAnnc) and (ischosen(p_resource.groupAnnc))) {//groupAnnc
+					if(ispresent(p_resource.containerAnnc.expirationTime)) {
+						vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.expirationTime := p_resource.groupAnnc.expirationTime;
+					}
+					if(ispresent(p_resource.containerAnnc.labels)) {
+						vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.labels := p_resource.groupAnnc.labels;
+					}
+					if(ispresent(p_resource.containerAnnc.dynamicAuthorizationConsultationIDs)) {
+						vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.dynamicAuthorizationConsultationIDs := p_resource.groupAnnc.dynamicAuthorizationConsultationIDs;
+					}
+					if(isvalue(p_nullFields)) {
+						if (p_nullFields[0] == "maxNrOfMembers") {
+							vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.maxNrOfMembers := omit;
+						}
+					}
 
 				}
 			  } //End of function	
@@ -4223,8 +4338,10 @@ module OneM2M_Functions {
 				} else if (p_resourceType == int10029) {
 					v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentTimeSeries(m_contentCreateTimeSeries), -, int29);
 				}
-				p_requestPrimitive.primitiveContent := f_setLink(valueof(p_requestPrimitive.primitiveContent), f_getLocalResourceAddress(v_originalResourceIndex, -, e_spRelative));
-				p_requestPrimitive.primitiveContent := f_setExpirationTime(valueof(p_requestPrimitive.primitiveContent), vc_localResourcesList[v_originalResourceIndex].resource);
+				if(v_originalResourceIndex != -1) {
+					p_requestPrimitive.primitiveContent := f_setLink(valueof(p_requestPrimitive.primitiveContent), f_getLocalResourceAddress(v_originalResourceIndex, -, e_spRelative));
+					p_requestPrimitive.primitiveContent := f_setExpirationTime(valueof(p_requestPrimitive.primitiveContent), vc_localResourcesList[v_originalResourceIndex].resource);
+				} 
 				//TODO Add other resource types		
 				
 					
@@ -4367,7 +4484,21 @@ module OneM2M_Functions {
 				var integer v_parentResourceIndex := -1;
 				var MsgIn v_request;
 				var ResponsePrimitive v_response;
+				var RequestPrimitive v_requestPrimitive;
+				var template XSD.AnyURI v_retargetingToCse2 := pattern "{PX_TS_CSE2.cseId}*";
 				
+				//Retargeting
+				[vc_auxiliaryCse2Up] mccPortIn.receive(mw_request(mw_requestPrimitive(-, v_retargetingToCse2))) -> value v_request {
+					log(__SCOPE__&": WARNING: Unexpected REQUEST message received targeting CSE2");
+					mccPortInternal.send(v_request.primitive.requestPrimitive);
+					alt {
+						[]mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response {
+						}
+					}
+							
+					f_send(e_mccPortIn, m_response(v_response));
+					repeat;
+				}
 				[] mccPortIn.receive(mw_request(mw_create())) -> value v_request {
 					log(__SCOPE__&": WARNING: Unexpected CREATE message received");
 					
@@ -4418,6 +4549,42 @@ module OneM2M_Functions {
 					log(__SCOPE__&": WARNING: Unexpected message received");
 					repeat;
 				}
+				[] mccPortInternal.receive(mw_retrieve(?)) -> value v_requestPrimitive {
+					log(__SCOPE__&": WARNING: Unexpected RETRIEVE message received");
+					
+					f_processRetrieveRequestPrimitive(v_requestPrimitive);
+					mccPortInternal.send(vc_response.primitive.responsePrimitive);
+					repeat;
+				}
+				[] mccPortInternal.receive(mw_delete()) -> value v_requestPrimitive {
+					log(__SCOPE__&": WARNING: Unexpected DELETE message received");
+
+					f_processDeleteRequestPrimitive(v_requestPrimitive);
+					mccPortInternal.send(vc_response.primitive.responsePrimitive);
+					repeat;
+				}
+				[vc_auxiliaryCse2Up] infoPort.receive(SyncPoints:e_error) from vc_cse2 {
+					log(__SCOPE__&": ERROR: Component CSE2 failed");
+					f_cse_postamble_deleteResourcesCSE();
+					// Tear down
+					if(vc_config == e_cf02CseSimuMaster) {
+						f_cf02DownCseSimuMaster();
+						kill;
+					} else if (vc_config == e_cf03) {
+						f_cf03Down();
+						kill;
+					} else if (vc_config == e_cf04) {
+						f_cf04Down();
+						kill;
+					} 
+				}
+				[vc_config == e_cf02CseSimuMaster] infoPort.receive(SyncPoints:e_error) from vc_ae1 {
+					log(__SCOPE__&": ERROR: Component AE1 failed");
+					f_cse_postamble_deleteResourcesCSE();
+					// Tear down
+					f_cf02DownCseSimuMaster();
+					kill;
+				}
 			 }
 			 
 			/**
@@ -4453,6 +4620,20 @@ module OneM2M_Functions {
 					log(__SCOPE__&": WARNING: Unexpected message received");
 					repeat;
 				}
+				[vc_config == e_cf02] infoPort.receive(SyncPoints:e_error) from vc_cse1 {
+					log(__SCOPE__&": ERROR: Component CSE1 failed");
+					f_cse_postamble_deleteResources();
+					// Tear down
+					f_cf02Down();
+					kill;
+				}
+				[vc_auxiliaryAe2Up] infoPort.receive(SyncPoints:e_error) from vc_ae2 {
+					log(__SCOPE__&": ERROR: Component AE2 failed");
+					f_cse_postamble_deleteResources();
+					// Tear down
+					f_cf01Down();
+					kill;
+				}
 			 }
 			
 			/**
@@ -4503,24 +4684,27 @@ module OneM2M_Functions {
 			 * @param p_action Description of the given action to be performed by the IUT
 			 * @verdict 
 			 */
-			function f_cse_sendUtPrimitive(template UtTriggerPrimitive p_utRequest, in universal charstring p_action) runs on AeSimu {
+			function f_cse_sendUtPrimitive(template UtTriggerPrimitive p_utRequest, in universal charstring p_action, in boolean fromPostamble := true) runs on AeSimu {
 				
 				if (PX_UT_IMPLEMENTED){
 					
-					p_utRequest.requestPrimitive.requestIdentifier := "m_uttriggerPrimitive" & f_rnd(1, 1000000);
-	
+					if(not(ispresent(p_utRequest.utCommand))) {
+						p_utRequest.requestPrimitive.requestIdentifier := "m_uttriggerPrimitive" & f_rnd(1, 1000000);
+					}
 					deactivate;
 					
 					f_sendUtPrimitive(p_utRequest);
 									
-					f_checkAeSimuStatus();
-					
-					activate(a_default());
-					if(vc_config == e_cf01) {
-						vc_aeSimu := activate(a_cse_cf01());
-					} else if ((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) {
-						if(vc_testSystemRole == e_ae) {
-							vc_aeSimu := activate(a_cse_cf02_ae1());
+					if(not(fromPostamble)) {
+						f_checkAeSimuStatus();
+						
+						activate(a_default());
+						if(vc_config == e_cf01) {
+							vc_aeSimu := activate(a_cse_cf01());
+						} else if ((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) {
+							if(vc_testSystemRole == e_ae) {
+								vc_aeSimu := activate(a_cse_cf02_ae1());
+							}
 						}
 					}
 				} else {
@@ -4534,22 +4718,25 @@ module OneM2M_Functions {
 			 * @param p_action Description of the given action to be performed by the IUT
 			 * @verdict 
 			 */
-			function f_cse_sendUtPrimitive_cseSimu(template UtTriggerPrimitive p_utRequest, in universal charstring p_action) runs on CseSimu {
+			function f_cse_sendUtPrimitive_cseSimu(template UtTriggerPrimitive p_utRequest, in universal charstring p_action, in boolean fromPostamble := true) runs on CseSimu {
 				
 				if (PX_UT_IMPLEMENTED){
 					
-					p_utRequest.requestPrimitive.requestIdentifier := "m_uttriggerPrimitive" & f_rnd(1, 1000000);
-	
+					if(not(ispresent(p_utRequest.utCommand))) {
+						p_utRequest.requestPrimitive.requestIdentifier := "m_uttriggerPrimitive" & f_rnd(1, 1000000);
+					}
 					deactivate;
 					
 					f_sendUtPrimitive(p_utRequest);
-									
-					f_checkCseSimuStatus();
 					
-					activate(a_default());
-					if ((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) {
-						if (vc_testSystemRole == e_cse) {
-							vc_cseSimu := activate(a_cse_cf02_cse1());
+					if(not(fromPostamble)) {				
+						f_checkCseSimuStatus();
+						
+						activate(a_default());
+						if ((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) {
+							if (vc_testSystemRole == e_cse) {
+								vc_cseSimu := activate(a_cse_cf02_cse1());
+							}
 						}
 					}
 				} else {
@@ -5183,7 +5370,7 @@ module OneM2M_Functions {
 
 			p_request.requestIdentifier := valueof(p_request.requestIdentifier) & f_rnd(1, 1000000);
 			
-			if((p_resourceType != int2) and (p_resourceType != int16)) {
+			if((p_resourceType != int2) and (p_resourceType != int16) and (p_resourceType != int10005)) {
 					p_request.from_ := f_getOriginator(p_parentIndex, vc_testSystemRole);
 				}
 			//Only set To parameter if it has not been set yet 
@@ -5458,6 +5645,9 @@ module OneM2M_Functions {
 			if(ischosen(p_contentResource.contentInstanceAnnc)) {
 				return f_resourceIdCleaner(p_contentResource.contentInstanceAnnc.resourceID);
 			}
+			if(ischosen(p_contentResource.cSEBaseAnnc)) {
+				return f_resourceIdCleaner(p_contentResource.cSEBaseAnnc.resourceID);
+			}
 			if(ischosen(p_contentResource.groupAnnc)) {
 				return f_resourceIdCleaner(p_contentResource.groupAnnc.resourceID);
 			}
@@ -5573,6 +5763,9 @@ module OneM2M_Functions {
 			if(ischosen(p_contentResource.contentInstanceAnnc)) {
 				return p_contentResource.contentInstanceAnnc.resourceName;
 			}
+			if(ischosen(p_contentResource.cSEBaseAnnc)) {
+				return p_contentResource.cSEBaseAnnc.resourceName;
+			}
 			if(ischosen(p_contentResource.groupAnnc)) {
 				return p_contentResource.groupAnnc.resourceName;
 			}
@@ -5618,6 +5811,8 @@ module OneM2M_Functions {
  					}	
 				} else if (ischosen(vc_resourcesList[p_targetResourceIndex].resource.remoteCSE)) {
 					return vc_resourcesList[p_targetResourceIndex].resource.remoteCSE.cSE_ID; 
+				} else if (ischosen(vc_resourcesList[p_targetResourceIndex].resource.cSEBaseAnnc)) {
+					return PX_TS_CSE1.cseId; 
 				} else {
 					return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex, p_testSystemRole);
 				}
@@ -6001,6 +6196,9 @@ module OneM2M_Functions {
 			else if(p_resourceType == int4) {
 				return int10004;
 			}
+			else if(p_resourceType == int5) {
+				return int10005;
+			}
 			else if(p_resourceType == int9) {
 				return int10009;
 			}
@@ -6087,6 +6285,31 @@ module OneM2M_Functions {
 			return v_ipv4Address;
 			
 		} // end f_getIpv4Address
+		
+		/**
+		  * @desc	Get the CSE-ID of the target CSE 
+		  * @return	CSE-ID
+		  */
+		function f_getTargetCseId(in XSD.ID p_resourceID) runs on Tester return XSD.ID {
+			var integer v_length := lengthof(p_resourceID);
+			var integer i;
+			var XSD.ID result := "";
+			
+			if(f_isScopeSpRelative(p_resourceID)) {
+				//log("p_resourceID: " & p_resourceID);
+				for (i := 0; i < v_length; i := i + 1 ){
+					if ((p_resourceID[i]=="/") and (i != 0)){
+						//log("result: " & result);
+						return result;
+					}
+					else{
+						result := result & p_resourceID[i];
+					}	
+				}
+			} //TODO Extend to absolute scope
+			//log("result: " & result);
+			return result;
+		}
 
 		/**
 		 * @desc Saving of a resource and its parent index in the internal resource list
@@ -6335,6 +6558,9 @@ module OneM2M_Functions {
 			else if (ischosen(p_resource.contentInstanceAnnc)){
 				p_resource.contentInstanceAnnc.link := p_link;
 			}
+			else if (ischosen(p_resource.cSEBaseAnnc)){
+				p_resource.cSEBaseAnnc.link := p_link;
+			}
 			else if (ischosen(p_resource.groupAnnc)){
 				p_resource.groupAnnc.link := p_link;
 			}
@@ -7101,7 +7327,7 @@ module OneM2M_Functions {
 		 * @desc   Proccessing of the UPDATE request primitive
 		 * @param  p_request          Request primitive to be processed
 		 */
-		function f_processUpdateRequestPrimitive(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2004, template(omit) integer p_expectedTargetResourceIndex := omit) runs on CseSimu return integer {			
+		function f_processUpdateRequestPrimitive(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2004, template(omit) integer p_expectedTargetResourceIndex := omit, template (omit) AttributeList_1 p_nullFields := omit) runs on CseSimu return integer {			
 			var integer v_targetLocalResourceIndex := -1;
 				
 			v_targetLocalResourceIndex := f_getLocalResourceIndex(p_request.to_);
@@ -7121,7 +7347,7 @@ module OneM2M_Functions {
 				}
 				if(p_responseStatusCode == int2004) {
 					setverdict(pass, __SCOPE__&":INFO: Resource updated successfuly");
-					f_updateLocalResource(v_targetLocalResourceIndex, p_request.primitiveContent);
+					f_updateLocalResource(v_targetLocalResourceIndex, p_request.primitiveContent, p_nullFields);
 					vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_targetLocalResourceIndex].resource;
 				} else {
 					setverdict(pass, __SCOPE__&":INFO: Resource update rejected");
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index e4ae75bb890105efc5dd04545ee391dbd6d45633..bd6f671795f4a341c145b443718ae2bbd9949bc6 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -881,7 +881,7 @@ module OneM2M_Templates {
 			 * @desc Base Reception template for create operation for announced resources
 			 */
 			template RequestPrimitive mw_createAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?) modifies mw_create := {
-				resourceType := (int10001,int10002,int10003,int10004,int10009,int10010,int10013,int10014,int10016,int10018,int10024,int10028,int10029,int10030,int10034,int10038,int10039,int10040,int10041,int10042)
+				resourceType := (int10001,int10002,int10003,int10004,int10005, int10009,int10010,int10013,int10014,int10016,int10018,int10024,int10028,int10029,int10030,int10034,int10038,int10039,int10040,int10041,int10042)
 			}
 			
 			/**
@@ -916,14 +916,15 @@ module OneM2M_Templates {
 			/**
 			 * @desc Reception template for CREATE AEAnnc for registration when AE-ID-Stem starts with S
 			 */
-			template RequestPrimitive mw_createAEAnnc_s_ae_id(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) modifies mw_create := {				
+			template RequestPrimitive mw_createAEAnnc_s_ae_id(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) modifies mw_createAnnc := {				
 				primitiveContent := {aEAnnc := mw_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)}
 			};
 
 			/**
 			 * @desc Reception template for CREATE AEAnnc as announced resource
 			 */
-			template RequestPrimitive mw_createAEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) modifies mw_create := {				
+			template RequestPrimitive mw_createAEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := *, template XSD.AnyURI p_link := ?) modifies mw_create := {				
+				resourceType := int10002,
 				primitiveContent := {aEAnnc := mw_contentCreateAEAnnc(-, p_accessControlPolicyIds)}
 			};
 			
@@ -969,7 +970,7 @@ module OneM2M_Templates {
 			/**
 			 * @desc Reception template for CREATE AcpAnnc
 			 */
-			template RequestPrimitive mw_createAccessControlPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+			template RequestPrimitive mw_createAccessControlPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := {
 				to_ := p_to,
 				from_ := p_from,
 				resourceType := int10001,
@@ -979,7 +980,7 @@ module OneM2M_Templates {
 			/**
 			  * @desc Reception template for CREATE AcpAnnc
 			  */
-			template RequestPrimitive mw_createRemoteCSEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?) modifies mw_create := {
+			template RequestPrimitive mw_createRemoteCSEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?) modifies mw_createAnnc := {
 				resourceType := int10016,
 				primitiveContent := {remoteCSEAnnc := mw_contentCreateRemoteCSEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)}
 			};
@@ -992,6 +993,23 @@ module OneM2M_Templates {
 				resourceType := int5,
 				primitiveContent := {cSEBase := m_contentCreateCSEBase}
 			};
+			
+			/**
+			  * @desc Base CREATE request primitive for CSEBaseAnnc resource
+			  */
+			template RequestPrimitive m_createCSEBaseAnncBase(template (value) XSD.ID p_from := PX_TS_CSE1.cseId, template (omit) AcpType p_accessControlPolicyIds := omit, XSD.AnyURI p_link := "NotInitialized") modifies m_create := {
+				from_ := p_from,
+				resourceType := int10005,
+				primitiveContent := {cSEBaseAnnc := m_contentCreateCSEBaseAnnc(-, p_accessControlPolicyIds, p_link)}
+			}
+        	
+        	/**
+			  * @desc Reception template for CREATE CSEBaseAnnc
+			  */
+			template RequestPrimitive mw_createCSEBaseAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?) modifies mw_createAnnc := {
+				resourceType := int10005,
+				primitiveContent := {cSEBaseAnnc := mw_contentCreateCSEBaseAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)}
+			};
         	
        	
 			/**
@@ -1090,7 +1108,7 @@ module OneM2M_Templates {
 			/**
 			 * @desc Base Reception template for CREATE ContainerAnnc
 			 */
-			template RequestPrimitive mw_createContainerAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+			template RequestPrimitive mw_createContainerAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := {
 				resourceType := int10003,
 				primitiveContent := {containerAnnc := mw_contentCreateContainerAnncBase}
 			};
@@ -1156,7 +1174,7 @@ module OneM2M_Templates {
 			/**
 			 * @desc Reception template for CREATE ContentInstanceAnnc
 			 */
-			template RequestPrimitive mw_createContentInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+			template RequestPrimitive mw_createContentInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := {
 				resourceType := int10004,
 				primitiveContent := {contentInstanceAnnc := mw_contentCreateContentInstanceAnncBase}
 			};  
@@ -1220,7 +1238,7 @@ module OneM2M_Templates {
 			/**
 			 * @desc Reception template for CREATE GroupAnnc
 			 */
-			template RequestPrimitive mw_createGroupAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+			template RequestPrimitive mw_createGroupAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := {
 				resourceType := int10009,
 				primitiveContent := {groupAnnc := mw_contentCreateGroupAnncBase}
 			};  
@@ -1255,7 +1273,7 @@ module OneM2M_Templates {
 			/**
 			 * @desc Reception template for CREATE MgmtObjAnnc
 			 */
-			template RequestPrimitive mw_createMgmtObjAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+			template RequestPrimitive mw_createMgmtObjAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := {
 				resourceType := int10013,
 				primitiveContent := {announcedMgmtResource := mw_contentCreateMgmtObjAnncBase}
 			};  
@@ -1281,7 +1299,7 @@ module OneM2M_Templates {
 			/**
 			 * @desc Reception template for CREATE NodeAnnc
 			 */
-			template RequestPrimitive mw_createNodeAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+			template RequestPrimitive mw_createNodeAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := {
 				resourceType := int10014,
 				primitiveContent := {nodeAnnc := mw_contentCreateNodeAnncBase}
 			};  
@@ -1337,7 +1355,7 @@ module OneM2M_Templates {
 			/**
 			 * @desc Reception template for CREATE ScheduleAnnc
 			 */
-			template RequestPrimitive mw_createScheduleAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+			template RequestPrimitive mw_createScheduleAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := {
 				resourceType := int10018,
 				primitiveContent := {scheduleAnnc := mw_contentCreateScheduleAnncBase}
 			};  
@@ -1484,7 +1502,7 @@ module OneM2M_Templates {
 			/**
 			 * @desc Reception template for CREATE LocationPolicyAnnc
 			 */
-			template RequestPrimitive mw_createLocationPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+			template RequestPrimitive mw_createLocationPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := {
 				resourceType := int10010,
 				primitiveContent := {locationPolicyAnnc := mw_contentCreateLocationPolicyAnncBase}
 			}; 
@@ -1633,7 +1651,7 @@ module OneM2M_Templates {
 						/**
 			 * @desc Base Reception template for CREATE TimeSeriesInstanceAnnc
 			 */
-			template RequestPrimitive mw_createTimeSeriesInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
+			template RequestPrimitive mw_createTimeSeriesInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := {
 				resourceType := int10030,
 				primitiveContent := {timeSeriesInstanceAnnc := mw_contentCreateTimeSeriesInstanceAnncBase}
 			};  
@@ -2704,6 +2722,60 @@ module OneM2M_Templates {
 			choice := omit
 		};
 		
+		/**
+		 * @desc Base primitiveContent for CREATE operation for CSEBaseAnnc resource
+		 * @param p_name Resource name
+		 */
+		template (value) CSEBaseAnnc_optional m_contentCreateCSEBaseAnnc (template (omit)  Labels p_labels := (omit), template (omit)AcpType p_accessControlPolicyIds := omit, template (value) XSD.AnyURI p_link) := {
+			resourceName := omit,//NA M
+			resourceType := omit,//NA M
+			resourceID := omit,//NA M
+			parentID := omit,//NA M
+			creationTime := omit,//NA M
+			lastModifiedTime := omit,//NA M
+			labels := p_labels,//MA O
+			accessControlPolicyIDs := p_accessControlPolicyIds,//MA O
+			expirationTime := "29991231T235959",//MA M
+			link := p_link,//M
+			cseType := omit,//OA O
+			cSE_ID := omit,//OA M
+			supportedResourceType := omit,//OA M
+			pointOfAccess := omit,//OA O
+			nodeLink := omit,//OA O
+			dynamicAuthorizationConsultationIDs := omit,//OA O
+			contentSerialization := omit,//OA O
+			e2eSecInfo := omit,//OA O
+			supportedReleaseVersions := {"1", "2", "2a", "3"}, //MA M Mandatory for RemoteCSE from Release 2
+			choice := omit//NA
+		};
+		
+		/**
+		 * @desc Base primitiveContent for CREATE operation for CSEBaseAnnc resource
+		 * @param p_name Resource name
+		 */
+		template CSEBaseAnnc_optional mw_contentCreateCSEBaseAnnc (in template  Labels p_labels := *, in template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) := {
+			resourceName := omit,//NA M
+			resourceType := omit,//NA M
+			resourceID := omit,//NA M
+			parentID := omit,//NA M
+			creationTime := omit,//NA M
+			lastModifiedTime := omit,//NA M
+			labels := p_labels,//MA O
+			accessControlPolicyIDs := p_accessControlPolicyIds,//MA O
+			expirationTime := ?,//MA M
+			link := p_link,//M
+			cseType := *,//OA O
+			cSE_ID := *,//OA M
+			supportedResourceType := ?,//OA M
+			pointOfAccess := *,//OA O
+			nodeLink := *,//OA O
+			dynamicAuthorizationConsultationIDs := *,//OA O
+			contentSerialization := *,//OA O
+			e2eSecInfo := ?,//OA O
+			supportedReleaseVersions := ?, //MA M Mandatory for RemoteCSE from Release 2
+			choice := omit//NA
+		};
+		
 		/**
 		 * @desc Base primitiveContent for CREATE operation for PollingChannel resource
 		 * @param p_accessControlPolicyIds ACP IDs for the PollingChannel
@@ -2897,7 +2969,7 @@ module OneM2M_Templates {
 			  creationTime := omit,//NA M
 			  lastModifiedTime := omit,//NA M
 			  labels := *,//MA O
-			  accessControlPolicyIDs := ?,//MA O
+			  accessControlPolicyIDs := *,//MA O //TODO Fix if acpi is mandatory for announced resources (SDS discussion)
 			  expirationTime := ?,//MA M
 			  link := ?,//M
 			  dynamicAuthorizationConsultationIDs := *, //OA O
@@ -3971,7 +4043,7 @@ module OneM2M_Templates {
 			creationTime := omit,//NA M
 			lastModifiedTime := omit,//NA M
 			labels := *,//MA O
-			accessControlPolicyIDs := ?,//MA O
+			accessControlPolicyIDs := *,//MA O
 			expirationTime := ?,//MA M
 			link := ?, //M
 			dynamicAuthorizationConsultationIDs := *,//OA O
@@ -4330,7 +4402,7 @@ module OneM2M_Templates {
 			creationTime := omit,//NA M
 			lastModifiedTime := omit,//NA M
 			labels := *,//MA
-			accessControlPolicyIDs := ?,//MA
+			accessControlPolicyIDs := *,//MA
 			expirationTime := ?,//MA M
 			link := ?, //M NA
 			dynamicAuthorizationConsultationIDs := *, //OA			
@@ -6193,6 +6265,24 @@ module OneM2M_Templates {
 		template AccessControlPolicy_optional mw_contentAcp_rc8 modifies mw_contentAcp_allOmit := {
 			choice := {choice_list := ?}	//O
 		}
+		
+	   template AccessControlPolicyAnnc_optional mw_contentAcpAnncBase := {
+			resourceName := ?,//M
+			resourceType := ?,//M
+			resourceID := ?,//M
+			parentID := ?,//M
+			creationTime := ?,//M
+			lastModifiedTime := ?,//M
+			labels := *,//O
+			expirationTime := ?,//M
+			link := ?,//M
+			privileges := ?,//M
+			selfPrivileges := ?,//M
+			authorizationDecisionResourceIDs := *,//O
+			authorizationPolicyResourceIDs := *,//O
+			authorizationInformationResourceIDs := *,//O
+			choice := *//O
+		};
     	
 		template Group_optional mw_contentGroupBase := {
 			resourceName := ?,//M
@@ -6309,6 +6399,32 @@ module OneM2M_Templates {
 			choice := {choice_list := ?}	//O
 		}
 		
+		template GroupAnnc_optional mw_contentGroupAnncBase := {
+			resourceName := ?,//M
+			resourceType := ?,//M
+			resourceID := ?,//M
+			parentID := ?,//M
+			creationTime := ?,//M
+			lastModifiedTime := ?,//M
+			labels := *,//O
+			accessControlPolicyIDs := *,//O
+			expirationTime := ?,//M
+			link := ?,//M
+			dynamicAuthorizationConsultationIDs := *, //O
+			memberType := *,//O
+			specializationType := *,//O
+			currentNrOfMembers := *,//O
+			maxNrOfMembers := *,//O
+			memberIDs := *,//O
+			membersAccessControlPolicyIDs := *,//O
+			memberTypeValidated := *,//O
+			consistencyStrategy := *,//O
+			groupName := *,//O
+			semanticSupportIndicator := *,//O
+			notifyAggregation := *,//O
+			choice := *//O
+		};
+		
 		template (value) MgmtCmd_optional m_contentMgmtCmd_allOmit := {
 			resourceName := omit,//M
 			resourceType := omit,//M
@@ -6838,6 +6954,25 @@ module OneM2M_Templates {
 			choice := omit
 		};
 		
+		template ContentInstanceAnnc_optional mw_contentContentInstanceAnncBase := {
+			resourceName := ?,//M
+			resourceType := ?,//M
+			resourceID := ?,//M
+			parentID := ?,//M
+			creationTime := ?,//M
+			lastModifiedTime := ?,//M
+			labels := *,//O
+			expirationTime := ?,//M
+			link := ?,//M
+			stateTag := *,//O
+			contentInfo := *,//O
+			contentSize := *,//O
+			ontologyRef := *,//O
+			content := *,//O
+			choice := * //O
+			
+		};
+		
 		template Container_optional mw_contentContainerBase := {
 			resourceName := ?,//M
 			resourceType := ?,//M
@@ -6969,6 +7104,30 @@ module OneM2M_Templates {
 			choice := {choice_list := ?}	//O
 		}
 		
+		template ContainerAnnc_optional mw_contentContainerAnncBase := {
+			resourceName := ?,//M
+			resourceType := ?,//M
+			resourceID := ?,//M
+			parentID := ?,//M
+			creationTime := ?,//M
+			lastModifiedTime := ?,//M
+			labels := *,//O
+			accessControlPolicyIDs := *,//O
+			expirationTime := ?,//M
+			link := ?,//M
+			dynamicAuthorizationConsultationIDs := *, //O
+			stateTag := *,//O
+			maxNrOfInstances := *,//O
+			maxByteSize := *,//O
+			maxInstanceAge := *,//O
+			currentNrOfInstances := *,//O
+			currentByteSize := *,//O
+			locationID := *,//O
+			ontologyRef := *,//O
+			disableRetrieval := *, //O
+			choice := *//O
+		};
+		
 		template (value) Notification m_contentNotification_allOmit := {
 			notificationEvent:= omit,
 			verificationRequest := omit,
@@ -7190,6 +7349,33 @@ module OneM2M_Templates {
 			choice := {choice_list := ?}	//O
 		}
 
+		template TimeSeriesAnnc_optional mw_contentTimeSeriesAnncBase := {
+			resourceName := ?,//M
+			resourceType := ?,//M
+			resourceID := ?,//M
+			parentID := ?,//M
+			creationTime := ?,//M
+			lastModifiedTime := ?,//M
+			labels := *,//O
+			accessControlPolicyIDs := *,//O
+			expirationTime := ?,//M
+			link := ?,//M
+			dynamicAuthorizationConsultationIDs := *,//O
+			maxNrOfInstances := *,//O
+			maxByteSize := *,//O
+			maxInstanceAge := *,//O
+			currentNrOfInstances := *,//O
+			currentByteSize := *,//O
+			periodicInterval := *,//O
+			missingDataMaxNr := *,//O
+			missingDataList := *,//O
+			missingDataCurrentNr := *,//O
+			missingDataDetectTimer := *,//O
+			ontologyRef := *,//O
+			contentInfo := *,//O
+			choice := *//O
+		};
+		
 		template TimeSeriesInstance_optional mw_contentTimeSeriesInstanceBase := {
 			resourceName := ?,//M
 			resourceType := ?,//M
@@ -7207,6 +7393,23 @@ module OneM2M_Templates {
 			contentSize  := ?,//M
 			choice := *//O
 		};
+		
+		template TimeSeriesInstanceAnnc_optional mw_contentTimeSeriesInstanceAnncBase := {
+			resourceName := ?,//M
+			resourceType := ?,//M
+			resourceID := ?,//M
+			parentID := ?,//M
+			creationTime := ?,//M
+			lastModifiedTime := ?,//M
+			labels := *,//O
+			expirationTime := ?,//M
+			link := ?,//M
+			dataGenerationTime := *,//O
+			content := *,//O
+			sequenceNr := *,//O
+			contentSize  := *,//O
+			choice := *//O
+		};
 
 		template (value) Role_optional mw_contentRole_allOmit := {
 			resourceName := omit,//O
@@ -7867,6 +8070,42 @@ module OneM2M_Templates {
 			
     	};
     	
+		/**
+		 * @desc Base Reception template for request primitive
+		 */
+		template RequestPrimitive mw_requestPrimitive(template XSD.ID p_from := *, template XSD.ID p_to := ?) := {
+			operation := ?,
+			to_ := p_to,
+			from_ := p_from,
+			requestIdentifier := ?,
+			resourceType := *,
+			primitiveContent := *,
+			roleIDs := *,
+			originatingTimestamp := *,
+			requestExpirationTimestamp := *,
+			resultExpirationTimestamp := *,
+			operationExecutionTime := *,
+			responseType := *,
+			resultPersistence := *,
+			resultContent := *,
+			eventCategory := *,
+			deliveryAggregation := *,
+			groupRequestIdentifier := *,
+			filterCriteria := *,
+			desiredIdentifierResultType := *,
+			tokens := *,
+			tokenIDs := *,
+			localTokenIDs := *,
+			tokenRequestIndicator := *,
+			groupRequestTargetMembers := *,
+			authorSignIndicator := *,
+			authorSigns := *,
+			authorRelIndicator := *,
+			semanticQueryIndicator := *,
+			releaseVersionIndicator := ?,
+			vendorInformation := *
+		}
+    	
 		template ResponsePrimitive mw_responsePrimitiveInverse(ResponseStatusCode p_statusCode) := {
 			responseStatusCode := complement(p_statusCode),
 			requestIdentifier := ?,
@@ -8098,6 +8337,7 @@ module OneM2M_Templates {
 	
 	group UpperTester {
 		template (value) UtTriggerPrimitive m_utCreate := {
+			utCommand := omit,
 			requestPrimitive := {
 				operation := int1,
 				to_ := "NotInitialized",
@@ -8182,6 +8422,7 @@ module OneM2M_Templates {
 		}
  		
 		template (value) UtTriggerPrimitive m_utRetrieve(XSD.ID p_targetResourceAddress) := {
+			utCommand := omit,
 			requestPrimitive := {
 				operation := int2,
 				to_ := p_targetResourceAddress,
@@ -8234,6 +8475,7 @@ module OneM2M_Templates {
 		}
 
 		template (value) UtTriggerPrimitive m_utUpdate := {
+			utCommand := omit,
 			requestPrimitive := {
 				operation := int3,
 				to_ := "NotInitialized",
@@ -8286,6 +8528,7 @@ module OneM2M_Templates {
 		}
 		
 		template (value) UtTriggerPrimitive m_utDelete := {
+			utCommand := omit,
 			requestPrimitive := {
 				operation := int4,
 				to_ := "NotInitialized",
@@ -8515,6 +8758,7 @@ module OneM2M_Templates {
 		}
 
 		template (value) UtTriggerPrimitive m_utNotify := {
+			utCommand := omit,
 			requestPrimitive := {
 				operation := int5,
 				to_ := "NotInitialized",
@@ -8549,6 +8793,12 @@ module OneM2M_Templates {
 			}, 
 			forcedFields := omit
 		};
+		
+		template (value) UtTriggerPrimitive m_utCommand_reset := {
+			utCommand := "Reset",
+			requestPrimitive := omit, 
+			forcedFields := omit
+		}
 	 }
 	 
 		group t8_primitives {
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index b78c80dd7be33d46acd8f561428e31cd247ed86a..66b9933e5f4bf0a660b921ee6069df3ec97caf6a 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -52,6 +52,7 @@ module OneM2M_TestSystem {
 		var Configurations vc_config;
 		var TestSystemRole vc_testSystemRole;
 		var boolean vc_componentRegistered := false;
+		var boolean vc_resetRequired := false;
 		//Default behaviour
 		var default vc_aeSimu := null;
 		var default vc_cseSimu := null;
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index e38c7f43c0130183f3ada473ed43476e2acb7919..0f6925e5ba76e5eca9a1f1791da3006ab4aa4910 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -187,7 +187,8 @@ module OneM2M_TypesAndValues {
 	}
 	
 	type record UtTriggerPrimitive {
-		RequestPrimitive requestPrimitive, 
+		UtCommands utCommand optional, 
+		RequestPrimitive requestPrimitive optional, 
 		AttributeAux_list forcedFields optional
 	}
 	with {
@@ -204,6 +205,8 @@ module OneM2M_TypesAndValues {
 		charstring value_ optional
 	};
 	
+	type charstring UtCommands (pattern "(Reset|Shutdown)");
+	
 	type record of AttributeAux AttributeAux_list;
 	
 	group ESPrimConfiguration {
@@ -251,7 +254,7 @@ group OptionalResourceTypes {
 		Labels labels optional,
 		Timestamp expirationTime optional,
 		ListOfURIs announceTo optional,
-		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
+		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,//TODO A list that can be empty
 		SetOfAcrs privileges optional,
 		SetOfAcrs selfPrivileges optional,
 		ListOfURIs authorizationDecisionResourceIDs optional,
@@ -604,7 +607,7 @@ group OptionalResourceTypes {
 		Timestamp expirationTime optional,
 		ListOfURIs dynamicAuthorizationConsultationIDs optional,
 		ListOfURIs announceTo optional,
-		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
+		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,//TODO A list that can be empty
 		XSD.NonNegativeInteger stateTag optional,
 		XSD.ID creator optional,
 		XSD.NonNegativeInteger maxNrOfInstances optional,
@@ -840,6 +843,79 @@ group OptionalResourceTypes {
 	  variant (choice.choice_list[-].group_) "name as 'group'";
 	};
 
+	type record CSEBaseAnnc_optional
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		Timestamp expirationTime optional,
+		XSD.AnyURI link optional,
+		AcpType accessControlPolicyIDs optional,
+		CseTypeID cseType optional,
+		XSD.ID cSE_ID optional,
+		ResourceTypeList_1 supportedResourceType optional,//TODO Remove inline type
+		PoaList pointOfAccess optional,
+		XSD.AnyURI nodeLink optional,
+		ListOfURIs dynamicAuthorizationConsultationIDs optional,
+		Serializations contentSerialization optional,
+		E2eSecInfo e2eSecInfo optional,
+		SupportedReleaseVersions supportedReleaseVersions optional,
+		union {
+			record length(1 .. infinity) of ChildResourceRef childResource_list,
+			record length(1 .. infinity) of union {
+				RemoteCSE remoteCSE,
+				RemoteCSEAnnc remoteCSEAnnc,
+				Node node,
+				AE aE,
+				Container container,
+				Group group_,
+				AccessControlPolicy accessControlPolicy,
+				Subscription subscription,
+				MgmtCmd mgmtCmd,
+				LocationPolicy locationPolicy,
+				StatsConfig statsConfig,
+				StatsCollect statsCollect,
+				Request request,
+				Delivery delivery,
+				Schedule schedule,
+				M2mServiceSubscriptionProfile m2mServiceSubscriptionProfile,
+				ServiceSubscribedAppRule serviceSubscribedAppRule,
+				Role role,
+				XSD.Token token,
+				Sg_flexContainerResource_group sg_flexContainerResource,
+				AuthorizationDecision_1 authorizationDecision,
+				AuthorizationPolicy authorizationPolicy,
+				AuthorizationInformation authorizationInformation,
+				OntologyRepository ontologyRepository,
+				SemanticMashupJobProfile semanticMashupJobProfile,
+				SemanticMashupInstance semanticMashupInstance,
+				AEContactList aEContactList,
+				LocalMulticastGroup localMulticastGroup,
+				CrossResourceSubscription crossResourceSubscription,
+				BackgroundDataTransfer backgroundDataTransfer,
+				TransactionMgmt transactionMgmt,
+				Transaction transaction
+			} choice_list
+		} choice optional
+	}
+	with {
+	  variant "element";
+	  variant (resourceName) "attribute";
+	  variant (cSE_ID) "name as 'CSE-ID'";
+	  variant (supportedResourceType) "list";
+	  variant (choice) "untagged";
+	  variant (choice.childResource_list) "untagged";
+	  variant (choice.childResource_list[-]) "name as 'childResource'";
+	  variant (choice.choice_list) "untagged";
+	  variant (choice.choice_list[-]) "untagged";
+	  variant (choice.choice_list[-].aE) "name as capitalized";
+	  variant (choice.choice_list[-].group_) "name as 'group'";
+	};
+
 	type record Delivery_optional
 	{
 		ResourceName resourceName optional,
@@ -976,7 +1052,7 @@ group OptionalResourceTypes {
 		Timestamp expirationTime optional,
 		ListOfURIs dynamicAuthorizationConsultationIDs optional,
 		ListOfURIs announceTo optional,
-		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
+		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,//TODO A list that can be empty
 		XSD.ID creator optional,
 		MemberType memberType optional,
 		SpecializationType specializationType optional,
@@ -2016,7 +2092,7 @@ group OptionalResourceTypes {
 		Timestamp expirationTime optional,
 		ListOfURIs dynamicAuthorizationConsultationIDs optional,
 		ListOfURIs announceTo optional,
-		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
+		record length(1 .. infinity) of XSD.NCName announcedAttribute optional,//TODO A list that can be empty
 		XSD.ID creator optional,
 		XSD.NonNegativeInteger maxNrOfInstances optional,
 		XSD.NonNegativeInteger maxByteSize optional,
@@ -4195,6 +4271,7 @@ group OtherTypes {
 	Delivery_optional delivery,
 	FlexContainerResource_optional flexContainer,
 	CSEBase_optional cSEBase,
+	CSEBaseAnnc_optional cSEBaseAnnc,
 	Group_optional group_,
 	GroupAnnc_optional groupAnnc,
 	LocationPolicy_optional locationPolicy,
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index ed4d85753066849822a7842513cb608d3740bcc0..3738f7b198b9410bef77b6388634e43f9a9a8701 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -10111,7 +10111,7 @@ module OneM2M_PermutationFunctions {
 
 					// Local variables
 					var RequestPrimitive v_request;
-					var integer v_parentIndex := -1;
+					var integer v_announcedParentIndex := -1;
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex;
 					var ResponsePrimitive v_responsePrimitive;
@@ -10123,6 +10123,7 @@ module OneM2M_PermutationFunctions {
 
 					// Test component configuration
 					f_cf02Up();
+					vc_resetRequired := true;
 
 					// Test adapter configuration
 			
@@ -10130,15 +10131,14 @@ module OneM2M_PermutationFunctions {
 					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()})));
 					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);
 					
+					//Announced parent resource is by default the parent for an announced resource
+					v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1);
+					
 					// Test Body
 					if (ispresent (p_requestUpdatePrimitive)) {
 						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex);
@@ -10148,21 +10148,21 @@ 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));
+							vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, v_announcedParentIndex));
 							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);
 							//Retrieve the parent resource index
-							v_parentIndex := f_getLatestLocalResourceIndex(vc_cse1);
+							v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1);
 						} 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));
+							vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, v_announcedParentIndex));
 							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);
 							//Retrieve the parent resource index
-							v_parentIndex := f_getLatestLocalResourceIndex(vc_cse1);
+							v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1);
 						} else {
 					  		v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_aeIndex);
 						}
@@ -10170,7 +10170,7 @@ module OneM2M_PermutationFunctions {
 					  	v_responsePrimitive.responseStatusCode := int2001;
 					}
 					
-					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_parentIndex));	
+					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_announcedParentIndex));	
 					f_send(e_mcaPort, m_request(v_request));
 
 					tc_ac.start;
@@ -10192,7 +10192,7 @@ module OneM2M_PermutationFunctions {
 										
 					// Postamble
 					f_cse_postamble_deleteResources();
-
+					
 					// Tear down
 					f_cf02Down();
 
@@ -10205,12 +10205,14 @@ 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 integer v_aeIndex := -1;
+				  var integer v_announcedParentIndex := -1;
 				  var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 				  v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
 				  //Test control
 
 				  //Test component configuration
 				  f_cf02Up();
+				  vc_resetRequired := true;
 
 				  //Register the CSE
 				  vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()})));
@@ -10223,9 +10225,13 @@ module OneM2M_PermutationFunctions {
 				  
 				  f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 				  
-				  vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc));	
+				  //Retrieve the announced parent resource index
+				  v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1);
+				  
+				  //Test body
+				  vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_announcedParentIndex));	
 				  f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex);
-				  vc_cse1.done;
+				  f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 
 				  //Postamble
 				  f_cse_postamble_deleteResources();
@@ -10238,15 +10244,17 @@ module OneM2M_PermutationFunctions {
 					// Local variables
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					var XSD.AnyURI v_remoteCSEAnncAddress;
+					var integer v_announcedResourceIndex := -1;
 					var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()});
 					var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE;
-					//v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
+					var ResponsePrimitive v_response;
+					v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
 					
 					// Test control
 
 					// Test component configuration
 					f_cf02UpCseSimuMaster(-, true);
+				    vc_resetRequired := true;
 
 					// Test adapter configuration
 
@@ -10268,16 +10276,57 @@ module OneM2M_PermutationFunctions {
 					//Update of the resource so that it gets announced
 					vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_updateRequest, -));
 					
-					//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, -, omit);
 					
+					//IUT should first create CSEBaseAnnc at the announcement target, and then, IUT announces the resource on the remoteCSEAnnc resource
+					//p_createRequestAnnc.to_ := PX_TS_CSE1.cseId;
+					vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc));
+							
+					tc_ac.start;
+					alt {
+						[] mccPortIn.receive(mw_request(mw_createAnnc(-, PX_TS_CSE2.cseId))) -> value vc_request {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ":INFO: Expected Announcement received");
+							
+							mccPortInternal.send(vc_request.primitive.requestPrimitive);
+							alt {
+								[]mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response {
+								}
+							}
+							f_send(e_mccPortIn, m_response(v_response));
+							
+							 //Retrieve the CSEBaseAnnc resource index
+							if(v_response.responseStatusCode == int2001) {
+								tc_ac.start;
+								repeat;
+							} else {
+								setverdict(fail, __SCOPE__ & ":ERROR: CSEBaseAnnc not created");
+							}
+						}
+						[] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ":INFO: Announcement received");
+							if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) ==  PX_TS_CSE2.cseId) {
+								mccPortInternal.send(vc_request.primitive.requestPrimitive);
+								alt {
+									[]mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response {
+									}
+								}
+							
+								f_send(e_mccPortIn, m_response(v_response));
+							} else {
+								setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target");
+								v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
+								f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
+							}
+							if(getverdict == inconc) {
+								setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address");
+							}	
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
+						}
+					}
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2);
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					// Postamble
@@ -10302,6 +10351,7 @@ module OneM2M_PermutationFunctions {
 
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
@@ -10311,7 +10361,7 @@ module OneM2M_PermutationFunctions {
 					
 					//Preamble
 					vc_ae1.start(f_cse_createResource(int2,v_create));
-					f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -));
+					v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -));
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
@@ -10352,18 +10402,23 @@ module OneM2M_PermutationFunctions {
 				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 integer v_aeIndex := -1;
-					var XSD.AnyURI v_remoteCSEAnncAddress;
+					var integer v_cSEBaseAnncIndex := -1;
+					var integer v_containerAnncIndex := -1;
+					var integer v_announcedResourceIndex := -1;
 					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(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()});
-					var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE;
-					//v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
+					var ResponsePrimitive v_response;
+					
+					v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
+					v_createContainer.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId};
 					
 					// Test control
 
 					// Test component configuration
 					f_cf02UpCseSimuMaster(-, true);
+					vc_resetRequired := true;
 
 					// Test adapter configuration
 					// Register the CSE
@@ -10375,32 +10430,52 @@ module OneM2M_PermutationFunctions {
 					
 					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
 					
-					v_createContainer.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId};
-					v_createContainer.primitiveContent.container.resourceName := "TriggerAnnounceIUT";
+					//Trigger creation of CSEBaseAnnc
+					vc_cse2.start(f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -));
+					v_createContainer.primitiveContent.container.resourceName := "TriggerCreationCSEBaseAnnc";
 					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)
-					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);
-					v_createContainerAnnc.to_ := 	v_remoteCSEAnncAddress;	
-					
-					f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, omit);
-					
+					f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -);
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2);
+					
+					//Then, IUT announces the resource on the CSEBaseAnnc
+					v_containerAnncIndex := f_getLatestLocalResourceIndex(vc_cse2);
+					v_cSEBaseAnncIndex := v_containerAnncIndex -1;	
 					
 					// Test Body
+					vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_cSEBaseAnncIndex));
 					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_ := v_remoteCSEAnncAddress;
-					
-					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit);
-										
+					tc_ac.start;
+					alt {
+						[] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ":INFO: Announcement received");
+							if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) ==  PX_TS_CSE2.cseId) {
+								mccPortInternal.send(vc_request.primitive.requestPrimitive);
+								alt {
+									[]mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response {
+										setverdict(pass, __SCOPE__ & ":INFO: Announcement retargeted");
+									}
+								}
+							
+								f_send(e_mccPortIn, m_response(v_response));
+							} else {
+								setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target");
+								v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
+								f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
+							}
+							if(getverdict == inconc) {
+								setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address");
+							}	
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
+						}
+					}
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2);
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
-
+					
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
 
@@ -10409,75 +10484,92 @@ module OneM2M_PermutationFunctions {
 
 				}//end f_CSE_ANNC_CRE_005
 				
-				function f_CSE_ANNC_CRE_006(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 AeSimu system CseSystem {
 					// Local variables
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					var integer v_parentIndex := -1;
-					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
+					var RequestPrimitive v_create;
 					
 					// Test control
 
 					// Test component configuration
-					f_cf02UpCseSimuMaster();
+					f_cf02Up();
+					vc_resetRequired := true;
 
 					// Test adapter configuration
 					// Register the CSE
-					vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()}));
-					v_parentIndex := vc_localRemoteCseIndex;
+					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()})));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
 					//Preamble
-					vc_ae1.start(f_cse_createResource(int2,v_create));
-					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					v_aeIndex := f_cse_preamble_registerAe();
 					
-					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
-
 					v_resourceIndex := v_aeIndex;
 					
 					// Test Body
 					if (p_resourceType == int4) {
 						v_create := m_createContainerBase;
-						v_create.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId};
-						vc_ae1.start(f_cse_createResource(int3,v_create, v_aeIndex));
-						v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, -);
-						f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
-						v_resourceIndex := f_getLatestResourceIndex(vc_ae1);
+						v_resourceIndex := f_cse_createResource(int3,v_create, v_aeIndex);
 					} else if (p_resourceType == int30) {
 						v_create := m_createTimeSeriesBase;
-						v_create.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
-						vc_ae1.start(f_cse_createResource(int29,v_create, v_aeIndex));
-						v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, -);
-						f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
-						v_resourceIndex := f_getLatestResourceIndex(vc_ae1);
+						v_resourceIndex := f_cse_createResource(int29,v_create, v_aeIndex);
 					}
 
-					vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_resourceIndex));
-
-					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_parentIndex);
-										
-					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
-
+					f_send(e_mcaPort, m_request(f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_resourceIndex)));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__, ": Resource created successfully");
+							if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.contentInstance)) {
+								if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.contentInstance.announceTo)) {
+									if(lengthof(vc_response.primitive.responsePrimitive.primitiveContent.contentInstance.announceTo) != 0) {
+										setverdict(fail, __SCOPE__, ": Resource contains the attribute announceTo");
+									}
+								}
+							} else if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.timeSeriesInstance)) {
+								if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.timeSeriesInstance.announceTo)) {
+									if(lengthof(vc_response.primitive.responsePrimitive.primitiveContent.timeSeriesInstance.announceTo) != 0) {
+										setverdict(fail, __SCOPE__, ": Resource contains the attribute announceTo");
+									}
+								}
+							}
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__, ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__, ": Error while creating resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__, ": No answer while creating resource ContentInstance");
+						}
+					}	
 					// Postamble
-					f_cse_postamble_deleteResourcesCSE();
+					f_cse_postamble_deleteResources();
 
 					// Tear down
-					f_cf02DownCseSimuMaster();
+					f_cf02Down();
 
 				}//end f_CSE_ANNC_CRE_006
 				
 				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 integer v_aeIndex := -1;
-					var XSD.AnyURI v_remoteCSEAnncAddress;
+					var integer v_announcedResourceIndex := -1;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 					var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()});
 					var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE;
-					//v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
+					var ResponsePrimitive v_response;
+					v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
 					
 					// Test control
 					// Test component configuration
 					f_cf02UpCseSimuMaster(-, true);
-
+					vc_resetRequired := true;
+					
 					// Test adapter configuration
 					// Register the CSE
 					f_cse_registerRemoteCse(v_createRemoteCse);
@@ -10488,19 +10580,56 @@ module OneM2M_PermutationFunctions {
 					
 					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
 					
-					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)
-					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);
+					vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -));
+					vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex));
 					
+					tc_ac.start;
+					alt {
+						[] mccPortIn.receive(mw_request(mw_createAnnc(-, PX_TS_CSE2.cseId))) -> value vc_request {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ":INFO: Expected Announcement received");
+							
+							mccPortInternal.send(vc_request.primitive.requestPrimitive);
+							alt {
+								[]mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response {
+								}
+							}
+							f_send(e_mccPortIn, m_response(v_response));
+							
+							 //Retrieve the CSEBaseAnnc resource index
+							if(v_response.responseStatusCode == int2001) {
+								tc_ac.start;
+								repeat;
+							} else {
+								setverdict(fail, __SCOPE__ & ":ERROR: CSEBaseAnnc not created");
+							}
+						}
+						[] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ":INFO: Announcement received");
+							if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) ==  PX_TS_CSE2.cseId) {
+								mccPortInternal.send(vc_request.primitive.requestPrimitive);
+								alt {
+									[]mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response {
+										setverdict(pass, __SCOPE__ & ":INFO: Announcement retargeted");
+									}
+								}
+							
+								f_send(e_mccPortIn, m_response(v_response));
+							} else {
+								setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target");
+								v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
+								f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
+							}
+							if(getverdict == inconc) {
+								setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address");
+							}	
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
+						}
+					}
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2);
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					// Postamble
@@ -10524,6 +10653,7 @@ module OneM2M_PermutationFunctions {
 
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					//Test adapter configuration
 					// Register the CSE
@@ -10531,7 +10661,7 @@ module OneM2M_PermutationFunctions {
 					v_parentIndex := vc_localRemoteCseIndex;
 					
 					vc_ae1.start(f_cse_createResource(int2,v_create));
-					f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -));
+					v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -));
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
@@ -10579,12 +10709,12 @@ module OneM2M_PermutationFunctions {
 
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
-	
+					vc_resetRequired := true;
+					
 					//Test adapter configuration
 					// Register the CSE
 					vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()}));
 					
-					f_checkCseSimuStatus();
 					vc_ae1.start(f_cse_createResource(int2,v_create));
 					v_aEAnncIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -));
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
@@ -10593,7 +10723,7 @@ module OneM2M_PermutationFunctions {
 
 					// Test Body
 					vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex));
-					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -);
+					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_aEAnncIndex);
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 
 					// Postamble
@@ -10608,14 +10738,15 @@ module OneM2M_PermutationFunctions {
 			
 			group Retrieve {
 			
-				function f_CSE_ANNC_RET_001(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc) runs on AeSimu system CseSystem {
+				function f_CSE_ANNC_RET_001(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc, template PrimitiveContent p_primitiveContent) runs on AeSimu system CseSystem {
 
 					// Local variables
 					var integer v_cseBaseIndex := -1;
 					var integer v_aeIndex := -1;
 					var integer v_remoteCSEIndex := -1;
 					var integer v_originalResourceIndex := -1;
-					var XSD.ID v_originalResourceAddress;
+					var integer v_cseBaseAnncIndex := -1;
+					var XSD.ID v_originalResourceAddress, v_cseBaseResourceAddress;
 					var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit);
 					var template RequestPrimitive v_createAcp := m_createAcpBase;
 					var XSD.ID v_resourceAnncAddress;
@@ -10625,6 +10756,7 @@ module OneM2M_PermutationFunctions {
 
 					// Test component configuration
 					f_cf02Up();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 		
@@ -10635,27 +10767,21 @@ module OneM2M_PermutationFunctions {
 					
 					v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1);
 					
+					v_cseBaseResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, e_spRelative);
+					
 					//Register the CSE
 					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -, -, -, {f_getLocalPoA()})));
 				    f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 
-					v_remoteCSEIndex := f_getLatestResourceIndex(vc_cse1);
-					
-					//Creating resource in Hosting CSE
-					vc_cse1.start(f_generateAndSetLocalResource(valueof(p_originalResource), v_cseBaseIndex, p_resourceType));
-					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
-					
-					v_originalResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, -);
-					
-					v_originalResourceIndex := f_getLatestLocalResource(vc_cse1);
-					
 					if((p_resourceType == int3) or (p_resourceType == int9) or (p_resourceType == int29)) {
 						p_createRequestAnnc := f_setAcpId(p_createRequestAnnc, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)});
 					}
-					p_createRequestAnnc.primitiveContent := f_setLink(valueof(p_createRequestAnnc.primitiveContent), v_originalResourceAddress);
-					p_createRequestAnnc.primitiveContent := f_setExpirationTime(valueof(p_createRequestAnnc.primitiveContent), vc_resourcesList[v_originalResourceIndex].resource);
 					
-					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_remoteCSEIndex));
+					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int5), m_createCSEBaseAnncBase(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, v_cseBaseResourceAddress), -));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
+					v_cseBaseAnncIndex := f_getLatestResourceIndex(vc_cse1);
+					//Creating announced resource (original resource in CSE1) in Hosting CSE
+					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_cseBaseAnncIndex));
 				    f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
 					v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -);
@@ -10664,10 +10790,14 @@ module OneM2M_PermutationFunctions {
 					f_send(e_mcaPort, m_request(m_retrieve(v_resourceAnncAddress, f_getOriginator(v_aeIndex))));
 					tc_ac.start;
 					alt {
-						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_primitiveContent))) -> value vc_response {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully");
 						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__, ": Wrong content");
+						}
 						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
 							tc_ac.stop;
 							setverdict(fail, __SCOPE__, ": Wrong response status code");
@@ -10685,27 +10815,26 @@ module OneM2M_PermutationFunctions {
 
 				}//end f_CSE_ANNC_RET_001
 				
-				function f_CSE_ANNC_RET_002(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc) runs on AeSimu system CseSystem {
+				function f_CSE_ANNC_RET_002(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc, template PrimitiveContent p_primitiveContent) runs on AeSimu system CseSystem {
 					
-					//Local variables
-					var template RequestPrimitive v_request;
+					// Local variables
 					var integer v_cseBaseIndex := -1;
 					var integer v_aeIndex := -1;
 					var integer v_remoteCSEIndex := -1;
-					var integer v_originalResourceIndex,  v_originalLocalResourceIndex := -1;
-					var XSD.ID v_originalResourceAddress;
-					var XSD.ID v_resourceAnncAddress;
+					var integer v_originalResourceIndex := -1;
+					var integer v_cseBaseAnncIndex := -1;
+					var XSD.ID v_originalResourceAddress, v_cseBaseResourceAddress;
 					var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit);
 					var template RequestPrimitive v_createAcp := m_createAcpBase;
-					var integer v_aeAnncIndex;
-					var integer v_resourceAnncIndex;
+					var XSD.ID v_resourceAnncAddress;
 					var integer v_acpIndex;
-					var XSD.ID v_membersAcpId;
+					var RequestPrimitive v_request;
 					
-					//Test control
+					// Test control
 
 					// Test component configuration
 					f_cf02Up();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 		
@@ -10716,36 +10845,43 @@ module OneM2M_PermutationFunctions {
 					
 					v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1);
 					
+					v_cseBaseResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, e_spRelative);
+					
 					//Register the CSE
 					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -, -, -, {f_getLocalPoA()})));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 
-					v_remoteCSEIndex := f_getLatestResourceIndex(vc_cse1);
-					
 					if((p_resourceType == int3) or (p_resourceType == int9) or (p_resourceType == int29)) {
 						p_createRequestAnnc := f_setAcpId(p_createRequestAnnc, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)});
 					}
 					
-					//Creation of original resource locally and then announcement of it to IUT
-					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_remoteCSEIndex));
+					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int5), m_createCSEBaseAnncBase(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, v_cseBaseResourceAddress), -));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
+					v_cseBaseAnncIndex := f_getLatestResourceIndex(vc_cse1);
+					//Creating announced resource (original resource in CSE1) in Hosting CSE
+					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_cseBaseAnncIndex));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
 					v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -);
-					v_resourceAnncIndex := f_getLatestResourceIndex(vc_cse1);
-					v_originalLocalResourceIndex := f_getLatestLocalResourceIndex(vc_cse1);
 					v_originalResourceIndex := f_getLatestLocalResource(vc_cse1);
 					
+					// Test Body
+					vc_cse1.start(f_cse_retrieveResourceHandler(v_originalResourceIndex, -, -));
+					
 					v_request := m_retrieve(v_resourceAnncAddress, f_getOriginator(v_aeIndex));
 					v_request.resultContent := int7;
-					// Test Body
-					vc_cse1.start(f_cse_retrieveResourceHandler(v_originalLocalResourceIndex, -, -));
-					f_send(e_mcaPort, m_request(valueof(v_request)));
+					
+					f_send(e_mcaPort, m_request(v_request));
 					tc_ac.start;
 					alt {
-						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, vc_resourcesList[v_originalResourceIndex].resource))) -> value vc_response {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_primitiveContent))) -> value vc_response {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully");
 						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__, ": Wrong content");
+						}
 						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
 							tc_ac.stop;
 							setverdict(fail, __SCOPE__, ": Wrong response status code");
@@ -10762,8 +10898,7 @@ module OneM2M_PermutationFunctions {
 					f_cse_postamble_deleteResources();
 
 					// Tear down
-					f_cf02Down();
-
+					f_cf02Down();					
 					
 				} //end f_CSE_ANNC_RET_002
 			 
@@ -10784,6 +10919,7 @@ module OneM2M_PermutationFunctions {
 	
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
@@ -10811,14 +10947,14 @@ module OneM2M_PermutationFunctions {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ":INFO: Announcement creation received");
 			
-							f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex);
+							f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_aEAnncIndex);
 							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
 						}
 						[] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request {
 							tc_ac.stop;
-							setverdict(pass, __SCOPE__ & ":INFO: Unexpected creation received");
+							setverdict(fail, __SCOPE__ & ":ERROR: Unexpected creation received");
 			
-							f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex);
+							f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, -);
 							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
 						}
 						[] tc_ac.timeout {
@@ -10840,16 +10976,14 @@ module OneM2M_PermutationFunctions {
 					// Local variables
 					var integer v_aeIndex := -1;
 					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);
 		
-					v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
-	   
 					//Test control
 	
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
@@ -10857,13 +10991,12 @@ module OneM2M_PermutationFunctions {
 					
 					//Preamble
 					vc_ae1.start(f_cse_createResource(int2,v_create));
-					v_aEAnncIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -));
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
 					
 					vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex));
-					v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, vc_localRemoteCseIndex);					
+					v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -);					
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					v_resourceIndex := f_getLatestResourceIndex(vc_ae1);
@@ -10902,31 +11035,23 @@ module OneM2M_PermutationFunctions {
 					var integer v_aEAnncIndex := -1;
 					var integer v_resourceIndex := -1;
 					var integer v_announcedResourceIndex := -1;
-					var integer v_localRemoteCseIndex := -1;
-					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
-		
-					v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
-	   
+				
 					//Test control
 	
 					//Test component configuration
 					f_cf02Up();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
 					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()})));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
-					v_localRemoteCseIndex := 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);
-					
-					v_aEAnncIndex := f_getLatestLocalResourceIndex(vc_cse1);
+					v_aeIndex := f_cse_preamble_registerAe();
 					
 					// Test Body
-					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex));
+					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -));
 					v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex);					
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
@@ -10977,7 +11102,6 @@ module OneM2M_PermutationFunctions {
 					var integer v_announcedResourceIndex := -1;
 					var integer v_aEAnncIndex := -1;
 					var integer v_resourceIndex := -1;
-					var integer v_localRemoteCseIndex := -1;
 					var RequestPrimitive v_updateRequest;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 
@@ -10987,12 +11111,12 @@ module OneM2M_PermutationFunctions {
 	
 					// Test component configuration
 					f_cf02Up();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
 					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()})));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
-					v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1);
 					
 					//Preamble
 					vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)));
@@ -11005,7 +11129,7 @@ module OneM2M_PermutationFunctions {
 					v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex);
 					
 					// Test Body
-					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex));
+					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_aEAnncIndex));
 
 					v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive);
 					f_send(e_mcaPort, m_request(v_updateRequest));
@@ -11043,17 +11167,15 @@ 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 integer v_aeIndex := -1;
-					var integer v_aEAnncIndex := -1;
 					var integer v_resourceIndex := -1;
 					var integer v_announcedResourceIndex := -1;
 					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
 		
-					v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId};
-	   
 					//Test control
 	
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
@@ -11061,14 +11183,13 @@ module OneM2M_PermutationFunctions {
 					
 					//Preamble
 					vc_ae1.start(f_cse_createResource(int2,v_create));
-					v_aEAnncIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -));
 					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));
-					v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, vc_localRemoteCseIndex);					
+					v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -);					
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 					
 					v_resourceIndex := f_getLatestResourceIndex(vc_ae1);
@@ -11116,20 +11237,22 @@ module OneM2M_PermutationFunctions {
 				
 				function f_CSE_ANNC_UPD_006(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_resourceIndex := -1;
+					var integer v_resourceIndex, v_containerAnncIndex, v_cSEBaseAnncIndex := -1;
 					var integer v_aeIndex := -1;
-					var XSD.AnyURI v_remoteCSEAnncAddress;
-					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
+					var ResponsePrimitive v_response;
 					var template RequestPrimitive v_createRequestRemoteCseAnnc := m_createRemoteCSEAnncBase;
 					var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()});
-					var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE;
-					//v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
-
+					var template RequestPrimitive v_createContainer := m_createContainerBase;
+					var template RequestPrimitive v_createContainerAnnc := mw_createContainerAnnc;
+					v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId};
+					v_createContainer.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId};
+					
 					// Test control
 
 					// Test component configuration
 					f_cf02UpCseSimuMaster(-, true);
-
+					vc_resetRequired := true;
+					
 					// Test adapter configuration
 
 					//Register the CSE
@@ -11141,26 +11264,57 @@ module OneM2M_PermutationFunctions {
 					
 					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
 					
+					//Trigger creation of CSEBaseAnnc
+					vc_cse2.start(f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -));
+					v_createContainer.primitiveContent.container.resourceName := "TriggerCreationCSEBaseAnnc";
+					vc_ae1.start(f_cse_createResource(int3,v_createContainer, v_aeIndex));
+					f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -);
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2);
+					
+					//Then, IUT announces the resource on the CSEBaseAnnc
+					v_containerAnncIndex := f_getLatestLocalResourceIndex(vc_cse2);
+					v_cSEBaseAnncIndex := v_containerAnncIndex -1;
+					
 					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_requestCreatePrimitive, -));
-					
-					//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;	
+					vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_cSEBaseAnncIndex));
+					vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -));
 					
-					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit);
-
+					tc_ac.start;
+					alt {
+						[] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ":INFO: Announcement received");
+							if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) ==  PX_TS_CSE2.cseId) {
+								mccPortInternal.send(vc_request.primitive.requestPrimitive);
+								alt {
+									[]mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response {
+										setverdict(pass, __SCOPE__ & ":INFO: Announcement retargeted");
+									}
+								}
+							
+								f_send(e_mccPortIn, m_response(v_response));
+							} else {
+								setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target");
+								f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000);
+								f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
+							}
+							if(getverdict == inconc) {
+								setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address");
+							}	
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ":ERROR:  No announcement received");
+						}
+					}
+					f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2);
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
-
+					
 					// Postamble
 					f_cse_postamble_deleteResourcesCSE();
 
@@ -11173,19 +11327,19 @@ module OneM2M_PermutationFunctions {
 					// Local variables
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
-
+					
 					//Test control
 	
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
 					f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()}));
 					
 					//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);
@@ -11199,26 +11353,7 @@ module OneM2M_PermutationFunctions {
 					// Test Body
 					vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -));
 					
-					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, -, vc_localRemoteCseIndex);
-							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");
-						}
-					}
+					f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -);					
 					
 					f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
 
@@ -11243,18 +11378,17 @@ module OneM2M_PermutationFunctions {
 	
 					//Test component configuration
 					f_cf02Up();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
 					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()})));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
-					v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1);
 					
 					//Preamble
-					v_aeIndex := f_cse_createResource(int2,v_create);
-					
+					v_aeIndex := f_cse_preamble_registerAe();
 					// Test Body
-					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex));
+					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -));
 					v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex);					
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
@@ -11303,17 +11437,17 @@ module OneM2M_PermutationFunctions {
 					var integer v_announcedResourceIndex := -1;
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
-
+					
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
 					f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()}));
 					
 					//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);
@@ -11364,17 +11498,17 @@ module OneM2M_PermutationFunctions {
 					var integer v_announcedResourceIndex := -1;
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
-
+					
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
 					f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()}));
 					
 					//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);
@@ -11425,17 +11559,17 @@ module OneM2M_PermutationFunctions {
 					var integer v_announcedResourceIndex := -1;
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit);
-
+					
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
 					f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()}));
 					
 					//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);
@@ -11488,13 +11622,14 @@ module OneM2M_PermutationFunctions {
 					
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
 					f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()}));
 					
 					//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);
@@ -11515,7 +11650,7 @@ module OneM2M_PermutationFunctions {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ":INFO: Announcement received");
 			
-							f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex);
+							f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex, vc_request.nullFields);
 							f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
 						}
 						[] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request {
@@ -11557,6 +11692,7 @@ module OneM2M_PermutationFunctions {
 	
 					//Test component configuration
 					f_cf02Up();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
@@ -11565,10 +11701,10 @@ module OneM2M_PermutationFunctions {
 					v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1);
 					
 					//Preamble
-					v_aeIndex := f_cse_createResource(int2,v_create);
+					v_aeIndex := f_cse_preamble_registerAe();
 					
 					// Test Body
-					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex));
+					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -));
 					v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex);					
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
@@ -11625,6 +11761,7 @@ module OneM2M_PermutationFunctions {
 	
 					//Test component configuration
 					f_cf02Up();
+					vc_resetRequired := true;
 					
 					// Test adapter configuration
 					// Register the CSE
@@ -11633,13 +11770,13 @@ module OneM2M_PermutationFunctions {
 					v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1);
 					
 					//Preamble
-					v_aeIndex := f_cse_createResource(int2,v_create);
+					v_aeIndex := f_cse_preamble_registerAe();
 					
 					// Test Body
 					v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex);					
 					
 					// Test Body
-					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, int4000, v_localRemoteCseIndex));
+					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, int4000, -));
 
 					v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive);
 					f_send(e_mcaPort, m_request(v_updateRequest));
@@ -11690,7 +11827,8 @@ module OneM2M_PermutationFunctions {
 
 				  	//Test component configuration
 				  	f_cf02Up();
-
+					vc_resetRequired := true;
+					
 				  	//Register the CSE
 				  	vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()})));	
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
@@ -11752,7 +11890,8 @@ module OneM2M_PermutationFunctions {
 
 					// Test component configuration
 					f_cf02UpCseSimuMaster();
-
+					vc_resetRequired := true;
+					
 					// Test adapter configuration
 					// Register the CSE
 					f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()}));	
@@ -12547,6 +12686,10 @@ module OneM2M_PermutationFunctions {
 						}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)));
diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn
index 8df824bae459bd2cc871e59fd3af4126be04b09b..7ca339d3d2a9367d0d5c296dea29b2f60f4dd5fe 100644
--- a/OneM2M_Testcases_CSE_Release_3.ttcn
+++ b/OneM2M_Testcases_CSE_Release_3.ttcn
@@ -11195,6 +11195,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 
 					// Test component configuration
 					f_cf02Up();
+					vc_resetRequired := true;
 
 					// Test adapter configuration
 
@@ -11353,20 +11354,6 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 v_cse1.done;
 					}
 					
-					testcase TC_CSE_ANNC_CRE_005_CIN() runs on Tester system CseSystem {
-						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
-						 var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
-						 var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc;
-  
-						 
-						 v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE2.cseId};
-  
-						 v_cse1.start(f_CSE_ANNC_CRE_005(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
-						 v_cse1.done;
-						
-					}
-					
 					testcase TC_CSE_ANNC_CRE_005_GRP() runs on Tester system CseSystem {
 						//Local variables
 						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
@@ -11392,20 +11379,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 v_cse1.start(f_CSE_ANNC_CRE_005(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
 						 v_cse1.done;
 					}
-					
-					testcase TC_CSE_ANNC_CRE_005_TSI() runs on Tester system CseSystem {
-						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
-						 var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase;
-						 var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnnc;
-  
-						
-						 v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE2.cseId};
-  
-						 v_cse1.start(f_CSE_ANNC_CRE_005(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
-						 v_cse1.done;
-					}
-					
+										
 				} //end group g_CSE_ANNC_CRE_005
 				
 				group g_CSE_ANNC_CRE_006 {
@@ -11414,83 +11388,31 @@ module OneM2M_Testcases_CSE_Release_3 {
 					 * @desc Check that the IUT announces successfully the RESOURCE_TYPE resource during its creation when announceTo optional attribute is provided and IUT has registered and created a <remoteCSE> resource to the announcement target CSE
 					 *  
 					 */
-					testcase TC_CSE_ANNC_CRE_006_ACP() runs on Tester system CseSystem {
-						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
-						 var template RequestPrimitive v_createRequest := m_createAcpBase;
-						 var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
-  
-						 
-						 v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId};
-  
-						 v_cse1.start(f_CSE_ANNC_CRE_006(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy
-						 v_cse1.done;
-					}
-	
-					testcase TC_CSE_ANNC_CRE_006_CNT() runs on Tester system CseSystem {
-						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
-						 var template RequestPrimitive v_createRequest := m_createContainerBase;
-						 var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc;
-  
-						 
-						 v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId};
-  
-						 v_cse1.start(f_CSE_ANNC_CRE_006(int3, v_createRequestAnnc, v_createRequest));//Container
-						 v_cse1.done;
-					}
-	
 					testcase TC_CSE_ANNC_CRE_006_CIN() runs on Tester system CseSystem {
 						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						 var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
 						 var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc;
   
 						 
 						 v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE1.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_006(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
-						 v_cse1.done;
+						 v_ae1.start(f_CSE_ANNC_CRE_006(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
+						 v_ae1.done;
 		
 					}
 	
-					testcase TC_CSE_ANNC_CRE_006_GRP() runs on Tester system CseSystem {
-						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
-						 var template RequestPrimitive v_createRequest := m_createGroupBase;
-						 var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc;
-  
-						 
-						 v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId};
-  
-						 v_cse1.start(f_CSE_ANNC_CRE_006(int9, v_createRequestAnnc, v_createRequest));//Group
-						 v_cse1.done;
-					}
-					
-					testcase TC_CSE_ANNC_CRE_006_TS() runs on Tester system CseSystem {
-						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
-						 var template RequestPrimitive v_createRequest := m_createTimeSeriesBase;
-						 var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc;
-	  
-						
-						 v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
-	  
-						 v_cse1.start(f_CSE_ANNC_CRE_006(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
-						 v_cse1.done;
-					}
-					
 					testcase TC_CSE_ANNC_CRE_006_TSI() runs on Tester system CseSystem {
 						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						 var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase;
 						 var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnnc;
   
 						
 						 v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE1.cseId};
   
-						 v_cse1.start(f_CSE_ANNC_CRE_006(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
-						 v_cse1.done;
+						 v_ae1.start(f_CSE_ANNC_CRE_006(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
+						 v_ae1.done;
 					}
 	
 				} //end group g_CSE_ANNC_CRE_006
@@ -11527,20 +11449,6 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 v_cse1.done;
 					}
 	
-					testcase TC_CSE_ANNC_CRE_007_CIN() runs on Tester system CseSystem {
-						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
-						 var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
-						 var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc;
-	  
-						 
-						 v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE2.cseId};
-	  
-						 v_cse1.start(f_CSE_ANNC_CRE_007(int4, v_createRequestAnnc, v_createRequest));//ContentInstance
-						 v_cse1.done;
-	
-					}
-	
 					testcase TC_CSE_ANNC_CRE_007_GRP() runs on Tester system CseSystem {
 						//Local variables
 						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
@@ -11561,25 +11469,12 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc;
   
 						 
-						 v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE2.cseId};
+						 v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE2.cseId};
 						 
 						 v_cse1.start(f_CSE_ANNC_CRE_007(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
 						 v_cse1.done;
 					}
 					
-					testcase TC_CSE_ANNC_CRE_007_TSI() runs on Tester system CseSystem {
-						//Local variables
-						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
-						 var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase;
-						 var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnnc;
-						 
-						 
-						 v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE2.cseId};
-  
-						 v_cse1.start(f_CSE_ANNC_CRE_007(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
-						 v_cse1.done;
-					}
-	
 				} //end group g_CSE_ANNC_CRE_007
 				
 				group g_CSE_ANNC_CRE_008 {
@@ -11597,6 +11492,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 
 						 v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId};
 						 v_createRequest.primitiveContent.container.announcedAttribute := {"mbs"};
+						 v_createRequest.primitiveContent.container.maxByteSize := 10;
 						 v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := ?;
 						 
 						 v_cse1.start(f_CSE_ANNC_CRE_008(int3, v_createRequestAnnc, v_createRequest));//Container
@@ -11643,13 +11539,14 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 
 						 v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
 						 v_createRequest.primitiveContent.timeSeries.announcedAttribute := {"mbs"};
+						 v_createRequest.primitiveContent.timeSeries.maxByteSize := 10;
 						 v_createRequestAnnc.primitiveContent.timeSeriesAnnc.maxByteSize := ?;
 						 
 						 v_cse1.start(f_CSE_ANNC_CRE_008(int29, v_createRequestAnnc, v_createRequest));//TimeSeries
 						 v_cse1.done;
 					}
 					
-					testcase TC_CSE_ANNC_CRE_008_TSI_CS() runs on Tester system CseSystem {
+					testcase TC_CSE_ANNC_CRE_008_TSI_DGT() runs on Tester system CseSystem {
 						//Local variables
 						 var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 						 var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase;
@@ -11657,8 +11554,8 @@ module OneM2M_Testcases_CSE_Release_3 {
 	  
 						 
 						 v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE1.cseId};
-						 v_createRequest.primitiveContent.timeSeriesInstance.announcedAttribute := {"cs"};
-						 v_createRequestAnnc.primitiveContent.timeSeriesInstanceAnnc.contentSize := ?;
+						 v_createRequest.primitiveContent.timeSeriesInstance.announcedAttribute := {"dgt"};
+						 v_createRequestAnnc.primitiveContent.timeSeriesInstanceAnnc.dataGenerationTime := ?;
 						 
 						 v_cse1.start(f_CSE_ANNC_CRE_008(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance
 						 v_cse1.done;
@@ -11699,62 +11596,80 @@ module OneM2M_Testcases_CSE_Release_3 {
 					 */
 					testcase TC_CSE_ANNC_RET_001_ACP() runs on Tester system CseSystem {
 						//Local variables
-						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentAccessControlPolicy(m_contentCreateAcp);
 						var template RequestPrimitive v_createRequestAnnc := m_createAcpAnncBase;
-  
-						v_ae1.start(f_CSE_ANNC_RET_001(int1, v_originalResource, v_createRequestAnnc));//AccessControlPolicy
-						 v_ae1.done;
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.accessControlPolicyAnnc := mw_contentAcpAnncBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_001(int1, v_originalResource, v_createRequestAnnc, v_responseContent));//AccessControlPolicy
+						v_ae1.done;
 					}
 					
 					testcase TC_CSE_ANNC_RET_001_CNT() runs on Tester system CseSystem {
-						 //Local variables
-						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						//Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentContainer(m_contentCreateContainer);
 						var template RequestPrimitive v_createRequestAnnc := m_createContainerAnncBase;
-	  
-						v_ae1.start(f_CSE_ANNC_RET_001(int3, v_originalResource, v_createRequestAnnc));//Container
-						 v_ae1.done;
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.containerAnnc := mw_contentContainerAnncBase;
+  						
+	  					v_ae1.start(f_CSE_ANNC_RET_001(int3, v_originalResource, v_createRequestAnnc, v_responseContent));//Container
+						v_ae1.done;
 					}
 					
 					testcase TC_CSE_ANNC_RET_001_CIN() runs on Tester system CseSystem {
-						 //Local variables
-						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						//Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentContentInstance(m_contentCreateContentInstance);
 						var template RequestPrimitive v_createRequestAnnc := m_createContentInstanceAnncBase;
-  
-						v_ae1.start(f_CSE_ANNC_RET_001(int4, v_originalResource, v_createRequestAnnc));//ContentInstance
-						 v_ae1.done;
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.contentInstanceAnnc := mw_contentContentInstanceAnncBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_001(int4, v_originalResource, v_createRequestAnnc, v_responseContent));//ContentInstance
+						v_ae1.done;
 					}
 					
 					testcase TC_CSE_ANNC_RET_001_GRP() runs on Tester system CseSystem {
-						 //Local variables
-						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						//Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentGroup(m_contentCreateGroup(1, {"NotInitialized"}, omit, -, -, -, -));
 						var template RequestPrimitive v_createRequestAnnc := m_createGroupAnncBase;
-  
-						v_ae1.start(f_CSE_ANNC_RET_001(int9, v_originalResource, v_createRequestAnnc));//Group
-						 v_ae1.done;
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.groupAnnc := mw_contentGroupAnncBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_001(int9, v_originalResource, v_createRequestAnnc, v_responseContent));//Group
+						v_ae1.done;
 					}
 					
 					testcase TC_CSE_ANNC_RET_001_TS() runs on Tester system CseSystem {
-						 //Local variables
-						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						//Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeries(m_contentCreateTimeSeries);
 						var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesAnncBase;
-  
-						v_ae1.start(f_CSE_ANNC_RET_001(int29, v_originalResource, v_createRequestAnnc));//TimeSeries
-						 v_ae1.done;
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.timeSeriesAnnc := mw_contentTimeSeriesAnncBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_001(int29, v_originalResource, v_createRequestAnnc, v_responseContent));//TimeSeries
+						v_ae1.done;
 					}
 					
 					testcase TC_CSE_ANNC_RET_001_TSI() runs on Tester system CseSystem {
-						 //Local variables
-						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						//Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeriesInstance(m_contentCreateTimeSeriesInstance);
 						var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesInstanceAnnc;
-  
-						v_ae1.start(f_CSE_ANNC_RET_001(int30, v_originalResource, v_createRequestAnnc));//TimeSeriesInstance
-						 v_ae1.done;
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.timeSeriesInstanceAnnc := mw_contentTimeSeriesInstanceAnncBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_001(int30, v_originalResource, v_createRequestAnnc, v_responseContent));//TimeSeriesInstance
+						v_ae1.done;
 					}
 					
 				} //end group g_CSE_ANNC_RET_001
@@ -11770,8 +11685,11 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentAccessControlPolicy(m_contentCreateAcp);
 						var template RequestPrimitive v_createRequestAnnc := m_createAcpAnncBase;
-  
-						v_ae1.start(f_CSE_ANNC_RET_002(int1, v_originalResource, v_createRequestAnnc));//AccessControlPolicy
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.accessControlPolicy := mw_contentAcpBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_002(int1, v_originalResource, v_createRequestAnnc, v_responseContent));//AccessControlPolicy
 						 v_ae1.done;
 					}
 					
@@ -11780,8 +11698,11 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentContainer(m_contentCreateContainer);
 						var template RequestPrimitive v_createRequestAnnc := m_createContainerAnncBase;
-	  
-						v_ae1.start(f_CSE_ANNC_RET_002(int3, v_originalResource, v_createRequestAnnc));//Container
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.container := mw_contentContainerBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_002(int3, v_originalResource, v_createRequestAnnc, v_responseContent));//Container
 						 v_ae1.done;
 					}
 					
@@ -11790,8 +11711,11 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentContentInstance(m_contentCreateContentInstance);
 						var template RequestPrimitive v_createRequestAnnc := m_createContentInstanceAnncBase;
-  
-						v_ae1.start(f_CSE_ANNC_RET_002(int4, v_originalResource, v_createRequestAnnc));//ContentInstance
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.contentInstance := mw_contentContentInstanceBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_002(int4, v_originalResource, v_createRequestAnnc, v_responseContent));//ContentInstance
 						 v_ae1.done;
 					}
 					
@@ -11800,8 +11724,11 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentGroup(m_contentCreateGroup(1, {"NotInitialized"}, omit, -, -, -, -));
 						var template RequestPrimitive v_createRequestAnnc := m_createGroupAnncBase;
-  
-						v_ae1.start(f_CSE_ANNC_RET_002(int9, v_originalResource, v_createRequestAnnc));//Group
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.group_ := mw_contentGroupBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_002(int9, v_originalResource, v_createRequestAnnc, v_responseContent));//Group
 						 v_ae1.done;
 					}
 					
@@ -11810,8 +11737,11 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeries(m_contentCreateTimeSeries);
 						var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesAnncBase;
-	  
-						v_ae1.start(f_CSE_ANNC_RET_002(int29, v_originalResource, v_createRequestAnnc));//TimeSeries
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.timeSeries := mw_contentTimeSeriesBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_002(int29, v_originalResource, v_createRequestAnnc, v_responseContent));//TimeSeries
 						 v_ae1.done;
 					}
 					
@@ -11820,8 +11750,11 @@ module OneM2M_Testcases_CSE_Release_3 {
 						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeriesInstance(m_contentCreateTimeSeriesInstance);
 						var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesInstanceAnnc;
-  
-						v_ae1.start(f_CSE_ANNC_RET_002(int30, v_originalResource, v_createRequestAnnc));//TimeSeriesInstance
+						var template PrimitiveContent v_responseContent;
+						 
+						v_responseContent.timeSeriesInstance := mw_contentTimeSeriesInstanceBase;
+  						
+						v_ae1.start(f_CSE_ANNC_RET_002(int30, v_originalResource, v_createRequestAnnc, v_responseContent));//TimeSeriesInstance
 						 v_ae1.done;
 					}
 					
@@ -12234,10 +12167,10 @@ module OneM2M_Testcases_CSE_Release_3 {
 						const charstring v_cse1Id := PX_TS_CSE1.cseId;
 						template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*";
 						
-						v_updateRequest.primitiveContent.timeSeries.announceTo := {v_announcedResourceAddress};
+						v_updateRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
 						v_updateRequest.primitiveContent.timeSeries.announcedAttribute := {"pi"};
   
-						v_updateResponse.timeSeries.announceTo := {PX_TS_CSE1.cseId};
+						v_updateResponse.timeSeries.announceTo := {v_announcedResourceAddress};
 						v_updateResponse.timeSeries.announcedAttribute := omit;
 
 						v_ae1.start(f_CSE_ANNC_UPD_004(int29, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateResponse));//TimeSeries