diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index c830f4b99081be51c645d1a7c963e2f0a866f549..3e9c6e9e7e3a8a33fa7bdd76c1a697af3cbb34e0 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -3442,7 +3442,9 @@ module OneM2M_Functions {
 					}
 				} else if(p_resourceType == int3 and ispresent(p_resource)) { //Container
 					if(ischosen(p_resource.container)){
-						v_myResource.container := valueof(p_resource.container);
+						if(isvalue(p_resource.container)) {
+							v_myResource.container := valueof(p_resource.container);
+						}
 						v_myResource.container.resourceType := p_resourceType;
       					
 						v_myResource.container.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
@@ -5468,10 +5470,8 @@ module OneM2M_Functions {
 			var integer i;
 			
 			for(i := 4; i <= 5; i := i+1){
-				if(p_timestamp[i] != "0") {
 					v_month := v_month & p_timestamp[i];
 				}
-			}
 			return str2int(v_month);
 			
 		} // end f_getYear
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 650ae807b347b6291065ea4aac71ffabcb07153c..ad279e90386d957dcafd04d86a5371de158da4ac 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -1030,7 +1030,7 @@ module OneM2M_Templates {
 			template (value) RequestPrimitive m_createContainerBaseInvalid modifies m_create := {
 				requestIdentifier := testcasename() & "-m_createContainer",
 				resourceType := int3,
-				primitiveContent := {container_update_invalid := m_contentCreateContainerInvalid}
+				primitiveContent := {container_invalid := m_contentCreateContainerInvalid}
 			};
 			
 			/**
@@ -3381,7 +3381,7 @@ module OneM2M_Templates {
 		 * @desc Base primitiveContent for invalid CREATE operation for Container resource (using Container_update_invalid)
 		 * @param p_name Resource name
 		 */
-		template (value) Container_update_invalid m_contentCreateContainerInvalid (in template (omit) XSD.String p_name := c_defaultContainerResourceName):= {
+		template (value) Container_invalid m_contentCreateContainerInvalid (in template (omit) XSD.String p_name := c_defaultContainerResourceName):= {
 			resourceName := p_name,//O
 			resourceType := omit,//NP
 			resourceID := omit,//NP
@@ -4005,7 +4005,7 @@ module OneM2M_Templates {
 		 * @desc Base primitiveContent for invalid CREATE operation for timeSeries resource (using Container_update_invalid)
 		 * @param p_name Resource name
 		 */
-		template (value) TimeSeries_update_invalid m_contentCreateTimeSeriesInvalid (in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName):= {
+		template (value) TimeSeries_invalid m_contentCreateTimeSeriesInvalid (in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName):= {
 			resourceName := p_name,//O
 			resourceType := omit,//NP
 			resourceID := omit,//NP
@@ -7305,7 +7305,7 @@ module OneM2M_Templates {
 			
 		};
 
-        template (value) AE_update_invalid m_contentUpdateAe_invalid := {
+		template (value) AE_invalid m_contentUpdateAe_invalid := {
 			resourceName := omit,//M
 			resourceType := omit,//M
 			resourceID := omit,//M
@@ -7331,7 +7331,7 @@ module OneM2M_Templates {
 			choice := omit//O
 		};
     	
-		template (value) ACP_update_invalid m_contentUpdateAcp_invalid := {
+		template (value) AccessControlPolicy_invalid m_contentUpdateAcp_invalid := {
 			resourceName := omit,//M
 			resourceType := omit,//M
 			resourceID := omit,//M
@@ -7348,7 +7348,7 @@ module OneM2M_Templates {
 			choice := omit//O
 		};
     	
-		template (value) Group_update_invalid m_contentUpdateGroup_invalid := {
+		template (value) Group_invalid m_contentUpdateGroup_invalid := {
 			resourceName := omit,//M
 			resourceType := omit,//M
 			resourceID := omit,//M
@@ -7375,7 +7375,7 @@ module OneM2M_Templates {
 			choice := omit//O
 		};
     	
-		template (value) PollingChannel_update_invalid m_contentUpdatePollingChannel_invalid := {
+		template (value) PollingChannel_invalid m_contentUpdatePollingChannel_invalid := {
 			resourceName := omit,//M
 			resourceType := omit,//M
 			resourceID := omit,//M
@@ -7387,7 +7387,7 @@ module OneM2M_Templates {
 			expirationTime := omit//M
 		};
     	
-		template (value) Schedule_update_invalid m_contentUpdateSchedule_invalid := {
+		template (value) Schedule_invalid m_contentUpdateSchedule_invalid := {
 			resourceName := omit,//M
 			resourceType := omit,//M
 			resourceID := omit,//M
@@ -7403,7 +7403,7 @@ module OneM2M_Templates {
 			choice := omit//O
 		};
     	
-		template (value) Subscription_update_invalid m_contentUpdateSubscription_invalid := {
+		template (value) Subscription_invalid m_contentUpdateSubscription_invalid := {
 			resourceName := omit,//M
 			resourceType := omit,//M
 			resourceID := omit,//M
@@ -7433,7 +7433,7 @@ module OneM2M_Templates {
 			choice := omit//O
 		};
 		
-		template (value) Container_update_invalid m_contentUpdateContainer_invalid := {
+		template (value) Container_invalid m_contentUpdateContainer_invalid := {
 			resourceName := omit,//M
 			resourceType := omit,//M
 			resourceID := omit,//M
@@ -7460,7 +7460,7 @@ module OneM2M_Templates {
 			choice := omit//O
 		};	
 		
-		template (value) TimeSeries_update_invalid m_contentUpdateTimeSeries_invalid := {
+		template (value) TimeSeries_invalid m_contentUpdateTimeSeries_invalid := {
 			resourceName := omit,//O
 			resourceType := omit,//NP
 			resourceID := omit,//NP
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index 20b5205b598a001be95c30513e64e097fd488ce9..d3acc84ff4d8024a2f216aa09622e59397a607dc 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -3502,7 +3502,7 @@ group OptionalResourceTypes {
 	
 group InvalidTypes {
 		
-	type record AE_update_invalid {
+	type record AE_invalid {
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
 		XSD.ID resourceID optional,
@@ -3556,7 +3556,7 @@ group InvalidTypes {
 	  variant (choice.choice_list[-].group_) "name as 'group'";
 	};
        
-	type record ACP_update_invalid {
+	type record AccessControlPolicy_invalid {
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
 		XSD.ID resourceID optional,
@@ -3590,7 +3590,7 @@ group InvalidTypes {
 	  variant (choice.choice_list[-]) "untagged";
 	};
     	
-	type record Container_update_invalid {
+	type record Container_invalid {
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
 		XSD.ID resourceID optional,
@@ -3683,7 +3683,7 @@ group InvalidTypes {
 	  variant (choice.choice_list[-]) "untagged";
 	};
 
-	type record Group_update_invalid {
+	type record Group_invalid {
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
 		XSD.ID resourceID optional,
@@ -3732,7 +3732,7 @@ group InvalidTypes {
 	};
 
        
-	type record PollingChannel_update_invalid {
+	type record PollingChannel_invalid {
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
 		XSD.ID resourceID optional,
@@ -3749,7 +3749,7 @@ group InvalidTypes {
 	  variant (resourceName) "attribute";
 	};
        
-	type record Schedule_update_invalid {
+	type record Schedule_invalid {
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
 		XSD.ID resourceID optional,
@@ -3781,7 +3781,7 @@ group InvalidTypes {
 	  variant (choice.choice_list[-]) "untagged";
 	};
        
-	type record Subscription_update_invalid {
+	type record Subscription_invalid {
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
 		XSD.ID resourceID optional,
@@ -3829,7 +3829,7 @@ group InvalidTypes {
 	  variant (choice.choice_list[-]) "untagged";
 	};
 	
-	type record TimeSeries_update_invalid
+	type record TimeSeries_invalid
 	{
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
@@ -3884,7 +3884,7 @@ group InvalidTypes {
 
 
        
-	 type record LocationPolicy_update_invalid {
+	 type record LocationPolicy_invalid {
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
 		XSD.ID resourceID optional,
@@ -4114,16 +4114,16 @@ group OtherTypes {
 	RequestPrimitive requestPrimitive,
 	DebugInfo debugInfo,
 	//Invalid types
-	AE_update_invalid aE_update_invalid,
-	ACP_update_invalid aCP_update_invalid,
-	Container_update_invalid container_update_invalid,
+	AE_invalid aE_invalid,
+	AccessControlPolicy_invalid accessControlPolicy_invalid,
+	Container_invalid container_invalid,
 	GenericInterworkingService_invalid genericInterworkingService_invalid,
-	Group_update_invalid group_update_invalid,
-	PollingChannel_update_invalid pollingChannel_update_invalid,
-	Schedule_update_invalid schedule_update_invalid,
-	Subscription_update_invalid subscription_update_invalid,
-	LocationPolicy_update_invalid locationPolicy_update_invalid,
-	TimeSeries_update_invalid timeSeries_update_invalid
+	Group_invalid group_invalid,
+	PollingChannel_invalid pollingChannel_invalid,
+	Schedule_invalid schedule_invalid,
+	Subscription_invalid subscription_invalid,
+	LocationPolicy_invalid locationPolicy_invalid,
+	TimeSeries_invalid timeSeries_invalid
 }
 	
 }
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index f64467559d076e88facb24b04fa39a483b5819cd..d5293a6f5f09ab9fbd7d629d049a077222a6a470 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -1179,10 +1179,11 @@ module OneM2M_PermutationFunctions {
     				
 						// Local variables
 						var RequestPrimitive v_request;
+						var RequestPrimitive v_groupRequest := m_createGroupBase;
 						var integer v_aeIndex := -1;
+						var integer v_groupIndex := -1;
 						var integer v_resourceIndex := -1;
 						var AddressingMethod v_addressingMethod;
-						var PrimitiveScope v_primitiveScope;
 											   
 						// Test control
 						if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) {
@@ -1200,19 +1201,23 @@ module OneM2M_PermutationFunctions {
 					
 						v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 					
+						v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[v_resourceIndex].resource)};
+						
+						v_groupIndex := f_cse_createResource(int9, v_groupRequest, v_aeIndex); 
+					
 						// Test Body
+						v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex);
 						//Force usage of Hybrid Hierarchical addressing method
-						v_addressingMethod := e_hybrid;
-						v_primitiveScope := p_primitiveScope;
-						v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_resourceIndex);
-						v_request.to_ := f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope);
+					  	v_addressingMethod := e_nonHierarchical;
+					  	v_request.to_ := f_getResourceAddress(v_groupIndex, v_addressingMethod, p_primitiveScope);
+						v_request.to_ := v_request.to_ & "/fopt"; 
 												
 						f_send(e_mcaPort, m_request(v_request));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response {
 								tc_ac.stop;
-								setverdict(pass, __SCOPE__ & ": Container resource created using hierarchical addressing method");
+								setverdict(pass, __SCOPE__ & ": Fanout operation performed successfully by using hybrid addressing");
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
 								tc_ac.stop;
@@ -1415,9 +1420,11 @@ module OneM2M_PermutationFunctions {
     				
 						// Local variables
 						var integer v_aeIndex := -1;
+						var integer v_groupIndex := -1;
 						var integer v_resourceIndex := -1;
 						var AddressingMethod v_addressingMethod;
-						var PrimitiveScope v_primitiveScope;
+						var RequestPrimitive v_request;
+						var RequestPrimitive v_groupRequest := m_createGroupBase;
 											   
 						// Test control
 						if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) {
@@ -1435,17 +1442,22 @@ module OneM2M_PermutationFunctions {
 					
 						v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 					
+						v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[v_resourceIndex].resource)};
+												
+						v_groupIndex := f_cse_createResource(int9, v_groupRequest, v_aeIndex); 
+
 						// Test Body
 						//Force usage of Hybrid Hierarchical addressing method
-						v_addressingMethod := e_hybrid;
-						v_primitiveScope := p_primitiveScope;
+					  	v_addressingMethod := e_nonHierarchical;
+						v_request := m_retrieve(f_getResourceAddress(v_groupIndex, v_addressingMethod, p_primitiveScope), f_getOriginator(v_groupIndex));
+						v_request.to_ := v_request.to_ & "/fopt"; 
 						
-						f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope), f_getOriginator(v_resourceIndex))));
+						f_send(e_mcaPort, m_request(v_request));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response {
 								tc_ac.stop;
-								setverdict(pass, __SCOPE__ & ": Container resource retrieved using hybrid addressing method");
+								setverdict(pass, __SCOPE__ & ": Fanout operation performed successfully by using hybrid addressing");
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
 								tc_ac.stop;
@@ -1453,10 +1465,10 @@ module OneM2M_PermutationFunctions {
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 								tc_ac.stop;
-								setverdict(fail, __SCOPE__ & ": Error while retrieving container resource using hybrid addressing method");
+								setverdict(fail, __SCOPE__ & ": Error while creating container resource using hierarchical addressing method");
 							}
 							[] tc_ac.timeout {
-								setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+								setverdict(fail, __SCOPE__ & ": No answer while creating resource");
 							}
 						}	
     								
@@ -1664,11 +1676,12 @@ module OneM2M_PermutationFunctions {
 					function f_CSE_GEN_UPD_004(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem {
     				
 						// Local variables
+						var RequestPrimitive v_groupRequest := m_createGroupBase;
 						var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase);
 						var integer v_aeIndex := -1;
+						var integer v_groupIndex := -1;
 						var integer v_resourceIndex := -1;
 						var AddressingMethod v_addressingMethod;
-						var PrimitiveScope v_primitiveScope;
 											   
 						// Test control
 						if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) {
@@ -1686,22 +1699,24 @@ module OneM2M_PermutationFunctions {
 					
 						v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 					
-						// Test Body
-						//Force usage of Hybrid Hierarchical addressing method
-						v_addressingMethod := e_hybrid;
-						v_primitiveScope := p_primitiveScope;
+						v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[v_resourceIndex].resource)};
 						
+						v_groupIndex := f_cse_createResource(int9, v_groupRequest, v_aeIndex); 
+					
+						// Test Body
+						v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest);
 						v_updateRequest.primitiveContent.container.labels := {"MyLabel"};
-						
-						v_updateRequest := f_getUpdateRequestPrimitive(int3, v_resourceIndex, v_updateRequest);
-						v_updateRequest.to_ := f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope);
+						//Force usage of Hybrid Hierarchical addressing method
+					  	v_addressingMethod := e_nonHierarchical;
+						v_updateRequest.to_ := f_getResourceAddress(v_groupIndex, v_addressingMethod, p_primitiveScope);
+						v_updateRequest.to_ := v_updateRequest.to_ & "/fopt"; 
 						
 						f_send(e_mcaPort, m_request(v_updateRequest));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response {
 								tc_ac.stop;
-								setverdict(pass, __SCOPE__ & ": Container resource updated using hierarchical addressing method");
+								setverdict(pass, __SCOPE__ & ": Fanout operation performed successfully by using hybrid addressing");
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
 								tc_ac.stop;
@@ -1709,10 +1724,10 @@ module OneM2M_PermutationFunctions {
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 								tc_ac.stop;
-								setverdict(fail, __SCOPE__ & ": Error while updating container resource using hierarchical addressing method");
+								setverdict(fail, __SCOPE__ & ": Error while creating container resource using hierarchical addressing method");
 							}
 							[] tc_ac.timeout {
-								setverdict(fail, __SCOPE__ & ": No answer while updating resource");
+								setverdict(fail, __SCOPE__ & ": No answer while creating resource");
 							}
 						}	
     								
@@ -1912,10 +1927,11 @@ module OneM2M_PermutationFunctions {
     				
 						// Local variables
 						var RequestPrimitive v_request;
+						var RequestPrimitive v_groupRequest := m_createGroupBase;
 						var integer v_aeIndex := -1;
+						var integer v_groupIndex := -1;
 						var integer v_resourceIndex := -1;
 						var AddressingMethod v_addressingMethod;
-						var PrimitiveScope v_primitiveScope;
 											   
 						// Test control
 						if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) {
@@ -1933,19 +1949,22 @@ module OneM2M_PermutationFunctions {
 					
 						v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 					
+						v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[v_resourceIndex].resource)};
+						
+						v_groupIndex := f_cse_createResource(int9, v_groupRequest, v_aeIndex); 
+					
 						// Test Body
 						//Force usage of Hybrid Hierarchical addressing method
-						v_addressingMethod := e_hybrid;
-						v_primitiveScope := p_primitiveScope;
-						
-						v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope), f_getOriginator(v_resourceIndex)));
+					  	v_addressingMethod := e_nonHierarchical;
+						v_request := valueof(m_delete(f_getResourceAddress(v_groupIndex, v_addressingMethod, p_primitiveScope), f_getOriginator(v_resourceIndex)));
+						v_request.to_ := v_request.to_ & "/fopt"; 
 						
 						f_send(e_mcaPort, m_request(v_request));
 						tc_ac.start;
 						alt {
-							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response {
 								tc_ac.stop;
-								setverdict(pass, __SCOPE__ & ": Container resource deleted using hierarchical addressing method");
+								setverdict(pass, __SCOPE__ & ": Fanout operation performed successfully by using hybrid addressing");
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
 								tc_ac.stop;
@@ -1953,10 +1972,10 @@ module OneM2M_PermutationFunctions {
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 								tc_ac.stop;
-								setverdict(fail, __SCOPE__ & ": Error while deleting container resource using hierarchical addressing method");
+								setverdict(fail, __SCOPE__ & ": Error while creating container resource using hierarchical addressing method");
 							}
 							[] tc_ac.timeout {
-								setverdict(fail, __SCOPE__ & ": No answer while deleting resource");
+								setverdict(fail, __SCOPE__ & ": No answer while creating resource");
 							}
 						}	
     								
@@ -6761,9 +6780,6 @@ module OneM2M_PermutationFunctions {
 						var integer v_aeIndex := -1;
 						var integer v_resourceIndex := -1;
 						var integer v_ae2Index := -1;
-						var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_AE_ID}, int63));
-						var AccessControlRule v_accessControlRule_2;
-						var SetOfAcrs v_setOfArcs;
                 							   
 						// Test control
 						if(not(PICS_ACP_SUPPORT)) {
@@ -6777,21 +6793,14 @@ module OneM2M_PermutationFunctions {
 						// Test adapter configuration
                 
 						// Preamble
-						v_acpAuxIndex := f_cse_preamble_createAcpAux(-,-);//c_CRDNDi);
-						v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRUNDi);
+						v_aeIndex := f_cse_preamble_registerAe(-, -);//c_CRUNDi);
+						v_acpAuxIndex := f_cse_createAccessControlPolicyAux(-, {f_getResourceId(vc_resourcesList[v_aeIndex].resource)},int55);//c_CRDNDi);
 						
 						f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType);
                 		
-						//Update ACP Aux to remove DELETE operation rights to AE, keeping rights of SUPER USER to run postamble
-						v_accessControlRule_2 := valueof(m_createAcr({f_getResourceId(vc_resourcesList[v_aeIndex].resource)}, int55));
-                		
-						v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2};
-						v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -));
-						f_cse_updateResource(int1, vc_acpAuxIndex, v_updateRequest);
-						
 						//Adjustments for ACP resource type
 						if(p_resourceType == int1) {
-							p_createRequestPrimitive.primitiveContent.accessControlPolicy.selfPrivileges.accessControlRule_list := {v_accessControlRule_2};//{v_accessControlRule_1,v_accessControlRule_2};
+							p_createRequestPrimitive.primitiveContent.accessControlPolicy.selfPrivileges.accessControlRule_list := {m_createAcr({f_getResourceId(vc_resourcesList[v_aeIndex].resource)}, int55)};
 						} else {
 							p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive, {f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});
 						}
@@ -6833,8 +6842,6 @@ module OneM2M_PermutationFunctions {
 						}
                 					
 						// Postamble
-						// We are forced to delete the Ae because the delete request in the postamble_deleteResources is sent by Ae itself, witch doesn't have privileges
-						f_cse_deleteResource(v_aeIndex, m_delete(f_getResourceAddress(v_aeIndex), f_getOriginator()));//Use of PX_SUPER_AE_ID to remove AE						
 						f_cse_postamble_deleteResources();
                 		
 						// Tear down
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index 3cb506c336edc1d207de55883cd344a855f39ea8..e6130dc7cb2ccff146b3cae7b50c3ecbabe95fbc 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -3576,7 +3576,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 		  	  	
 					//Preamble
 					vc_cse1.start(f_cse_registrationRemoteCse(mw_createRemoteCSE));
-					vc_cse1.done;
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
 					v_aeIndex := f_cse_createResource(int2, m_createAe(PX_TS_AE1.appId, omit, "S"));
 					
@@ -6040,8 +6040,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var Timestamp v_creationTime := "21001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
-						v_updateRequest.primitiveContent := {container_update_invalid := m_contentUpdateContainer_invalid};
-						v_updateRequest.primitiveContent.container_update_invalid.creationTime := v_creationTime;
+						v_updateRequest.primitiveContent := {container_invalid := m_contentUpdateContainer_invalid};
+						v_updateRequest.primitiveContent.container_invalid.creationTime := v_creationTime;
 						
 						v_ae1.start(f_CSE_DMR_UPD_007(int3, m_createContainerBase, v_updateRequest));//Container
 						v_ae1.done;
@@ -6049,8 +6049,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 						if(getverdict == pass){ 
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							//Check that the resource has NOT been udpated
-							  if(ischosen(v_primitiveContentRetrieveResource.container_update_invalid)) {
-							   if(v_primitiveContentRetrieveResource.container_update_invalid.creationTime == v_creationTime){
+							  if(ischosen(v_primitiveContentRetrieveResource.container_invalid)) {
+							   if(v_primitiveContentRetrieveResource.container_invalid.creationTime == v_creationTime){
 								 setverdict(fail, __SCOPE__ & ": Error: Creation Time attribute updated")
 								}
 							}
@@ -6063,8 +6063,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var Timestamp v_creationTime := "21001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
-						v_updateRequest.primitiveContent := {group_update_invalid := m_contentUpdateGroup_invalid};
-						v_updateRequest.primitiveContent.group_update_invalid.creationTime := v_creationTime;
+						v_updateRequest.primitiveContent := {group_invalid := m_contentUpdateGroup_invalid};
+						v_updateRequest.primitiveContent.group_invalid.creationTime := v_creationTime;
 						
 						v_ae1.start(f_CSE_DMR_UPD_007(int9, m_createGroupBase, v_updateRequest));//Group
 						v_ae1.done;
@@ -6072,8 +6072,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 						if(getverdict == pass){ 
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							//Check that the resource has NOT been udpated
-							  if(ischosen(v_primitiveContentRetrieveResource.group_update_invalid)) {
-							   if(v_primitiveContentRetrieveResource.group_update_invalid.creationTime == v_creationTime){
+							  if(ischosen(v_primitiveContentRetrieveResource.group_invalid)) {
+							   if(v_primitiveContentRetrieveResource.group_invalid.creationTime == v_creationTime){
 								 setverdict(fail, __SCOPE__ & ": Error: Creation Time attribute updated")
 								}
 							}
@@ -6086,8 +6086,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var Timestamp v_creationTime := "21001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
-						v_updateRequest.primitiveContent := {aCP_update_invalid := m_contentUpdateAcp_invalid};
-						v_updateRequest.primitiveContent.aCP_update_invalid.creationTime := v_creationTime;
+						v_updateRequest.primitiveContent := {accessControlPolicy_invalid := m_contentUpdateAcp_invalid};
+						v_updateRequest.primitiveContent.accessControlPolicy_invalid.creationTime := v_creationTime;
 								
 						v_ae1.start(f_CSE_DMR_UPD_007(int1, m_createAcpBase, v_updateRequest));//AccessControlPolicy
 						v_ae1.done;
@@ -6095,8 +6095,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 						if(getverdict == pass){ 
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							//Check that the resource has NOT been udpated
-							  if(ischosen(v_primitiveContentRetrieveResource.aCP_update_invalid)) {
-							   if(v_primitiveContentRetrieveResource.aCP_update_invalid.creationTime == v_creationTime){
+							  if(ischosen(v_primitiveContentRetrieveResource.accessControlPolicy_invalid)) {
+							   if(v_primitiveContentRetrieveResource.accessControlPolicy_invalid.creationTime == v_creationTime){
 								 setverdict(fail, __SCOPE__ & ": Error: Creation Time attribute updated")
 								}
 							}
@@ -6109,8 +6109,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var Timestamp v_creationTime := "21001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
-						v_updateRequest.primitiveContent := {subscription_update_invalid := m_contentUpdateSubscription_invalid};
-						v_updateRequest.primitiveContent.subscription_update_invalid.creationTime := v_creationTime;
+						v_updateRequest.primitiveContent := {subscription_invalid := m_contentUpdateSubscription_invalid};
+						v_updateRequest.primitiveContent.subscription_invalid.creationTime := v_creationTime;
 								
 						v_ae1.start(f_CSE_DMR_UPD_007(int23, m_createSubscriptionBase, v_updateRequest));//Subscription
 						v_ae1.done;
@@ -6118,8 +6118,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 						if(getverdict == pass){ 
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							//Check that the resource has NOT been udpated
-							  if(ischosen(v_primitiveContentRetrieveResource.subscription_update_invalid)) {
-							   if(v_primitiveContentRetrieveResource.subscription_update_invalid.creationTime == v_creationTime){
+							  if(ischosen(v_primitiveContentRetrieveResource.subscription_invalid)) {
+							   if(v_primitiveContentRetrieveResource.subscription_invalid.creationTime == v_creationTime){
 								 setverdict(fail, __SCOPE__ & ": Error: Creation Time attribute updated")
 								}
 							}
@@ -6222,9 +6222,9 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var XSD.PositiveInteger v_expirationCounter := 1;
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
-						v_updateRequest.primitiveContent := {container_update_invalid := m_contentUpdateContainer_invalid};
+						v_updateRequest.primitiveContent := {container_invalid := m_contentUpdateContainer_invalid};
 
-						v_updateRequest.primitiveContent.container_update_invalid.expirationCounter := v_expirationCounter;
+						v_updateRequest.primitiveContent.container_invalid.expirationCounter := v_expirationCounter;
 	
 						v_ae1.start(f_CSE_DMR_UPD_009(int3, v_createRequest, v_updateRequest));//Container
 						v_ae1.done;
@@ -6236,9 +6236,9 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var XSD.PositiveInteger v_expirationCounter := 1;
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-						v_updateRequest.primitiveContent := {group_update_invalid := m_contentUpdateGroup_invalid};
+						v_updateRequest.primitiveContent := {group_invalid := m_contentUpdateGroup_invalid};
 	
-						v_updateRequest.primitiveContent.group_update_invalid.expirationCounter := v_expirationCounter;
+						v_updateRequest.primitiveContent.group_invalid.expirationCounter := v_expirationCounter;
 	
 						v_ae1.start(f_CSE_DMR_UPD_009(int9, v_createRequest, v_updateRequest));//Group
 						v_ae1.done;
@@ -6250,9 +6250,9 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var XSD.PositiveInteger v_expirationCounter := 1;
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
-						v_updateRequest.primitiveContent := {aCP_update_invalid := m_contentUpdateAcp_invalid};
+						v_updateRequest.primitiveContent := {accessControlPolicy_invalid := m_contentUpdateAcp_invalid};
 	
-						v_updateRequest.primitiveContent.aCP_update_invalid.expirationCounter := v_expirationCounter;
+						v_updateRequest.primitiveContent.accessControlPolicy_invalid.expirationCounter := v_expirationCounter;
 			
 						v_ae1.start(f_CSE_DMR_UPD_009(int1, v_createRequest, v_updateRequest));//AccessControlPolicy
 						v_ae1.done;
@@ -6264,9 +6264,9 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var XSD.NonNegativeInteger v_maxNrOfInstances := 5;
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
-						v_updateRequest.primitiveContent := {subscription_update_invalid := m_contentUpdateSubscription_invalid};
+						v_updateRequest.primitiveContent := {subscription_invalid := m_contentUpdateSubscription_invalid};
 	
-						v_updateRequest.primitiveContent.subscription_update_invalid.maxNrOfInstances := v_maxNrOfInstances;
+						v_updateRequest.primitiveContent.subscription_invalid.maxNrOfInstances := v_maxNrOfInstances;
 			
 						v_ae1.start(f_CSE_DMR_UPD_009(int23, v_createRequest, v_updateRequest));//Subscription
 						v_ae1.done;
@@ -9985,7 +9985,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 				var integer v_aeIndex := -1;
 				var integer v_resourceIndex := -1;
 				var RequestPrimitive v_request;
-				var integer v_childResourceIndex := -1;
 				var integer v_acpAuxIndex := -1;
 				const ResourceType c_containerResourceType := int3; 
 				
@@ -10008,22 +10007,27 @@ module OneM2M_Testcases_CSE_Release_1 {
 				v_requestPrimitive := f_setAcpId(v_requestPrimitive, {f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});
 				
 				v_resourceIndex := f_cse_createResource(c_containerResourceType, v_requestPrimitive, v_aeIndex);
-				v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
 				v_request := valueof(m_retrieveFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
 				f_send(e_mcaPort, m_request(v_request));
 				tc_ac.start;
 				alt {
-					[] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) {
+					[] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value vc_response {
 						tc_ac.stop;
-						setverdict(pass, __SCOPE__ & ": Access denied to discovery operation for resource " & f_getResourceAddress(v_resourceIndex));
+						if(lengthof(vc_response.primitive.responsePrimitive.primitiveContent.uRIList) == 0){
+						  setverdict(pass, __SCOPE__ & ": Discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges and no content");	
+						}
+						else
+						{
+						  setverdict(fail, __SCOPE__ & ": Wrong content available in URIList element");
+						}
 					}
-					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { 
 						tc_ac.stop;
 						setverdict(fail, __SCOPE__ & ": Wrong response status code");
 					}
-					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
 						tc_ac.stop;
-						setverdict(fail, __SCOPE__ & ": Discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges");
+						setverdict(fail, __SCOPE__ & ": Error while discovering on resource when no discovery access privileges");
 					}
 					[] tc_ac.timeout {
 						setverdict(fail, __SCOPE__ & ": No answer while discovering resource");
diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn
index 0f7bf03c06f2ea8d9485804f9c18e7b186e0d8fb..d055efbefb0e440cfbf4f89cf8a79637c7389d83 100644
--- a/OneM2M_Testcases_CSE_Release_2.ttcn
+++ b/OneM2M_Testcases_CSE_Release_2.ttcn
@@ -1353,8 +1353,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var Timestamp v_creationTime := "21001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
-						v_updateRequest.primitiveContent := {pollingChannel_update_invalid := m_contentUpdatePollingChannel_invalid};
-						v_updateRequest.primitiveContent.pollingChannel_update_invalid.creationTime := v_creationTime;
+						v_updateRequest.primitiveContent := {pollingChannel_invalid := m_contentUpdatePollingChannel_invalid};
+						v_updateRequest.primitiveContent.pollingChannel_invalid.creationTime := v_creationTime;
 							
 						v_ae1.start(f_CSE_DMR_UPD_007(int15, m_createPollingChannelBase, v_updateRequest));//PollingChannel
 						v_ae1.done;
@@ -1362,8 +1362,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 						if(getverdict == pass){ 
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							//Check that the resource has NOT been udpated
-							  if(ischosen(v_primitiveContentRetrieveResource.pollingChannel_update_invalid)) {
-							   if(v_primitiveContentRetrieveResource.pollingChannel_update_invalid.creationTime == v_creationTime){
+							  if(ischosen(v_primitiveContentRetrieveResource.pollingChannel_invalid)) {
+							   if(v_primitiveContentRetrieveResource.pollingChannel_invalid.creationTime == v_creationTime){
 								 setverdict(fail, __SCOPE__ & ": Error: Creation Time attribute updated")
 								}
 							}
@@ -1384,9 +1384,9 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var XSD.PositiveInteger v_expirationCounter := 1;
 						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
-						v_updateRequest.primitiveContent := {pollingChannel_update_invalid := m_contentUpdatePollingChannel_invalid};
+						v_updateRequest.primitiveContent := {pollingChannel_invalid := m_contentUpdatePollingChannel_invalid};
 						
-						v_updateRequest.primitiveContent.pollingChannel_update_invalid.expirationCounter := v_expirationCounter;
+						v_updateRequest.primitiveContent.pollingChannel_invalid.expirationCounter := v_expirationCounter;
 							
 						v_ae1.start(f_CSE_DMR_UPD_009(int15, v_createRequest, v_updateRequest));//PollingChannel
 						v_ae1.done;
diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn
index 5159b188c5ae3e2df2200d9231370be4e8d16b16..20e9db21e87660b0563d188884936f2d39fe69c6 100644
--- a/OneM2M_Testcases_CSE_Release_3.ttcn
+++ b/OneM2M_Testcases_CSE_Release_3.ttcn
@@ -4221,8 +4221,8 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
-						v_updateRequest.primitiveContent := {schedule_update_invalid := m_contentUpdateSchedule_invalid};
-						v_updateRequest.primitiveContent.schedule_update_invalid.creationTime := v_creationTime;
+						v_updateRequest.primitiveContent := {schedule_invalid := m_contentUpdateSchedule_invalid};
+						v_updateRequest.primitiveContent.schedule_invalid.creationTime := v_creationTime;
 										
 						v_ae1.start(f_CSE_DMR_UPD_007(int18, m_createScheduleBase, v_updateRequest));//Schedule
 						v_ae1.done;
@@ -4230,8 +4230,8 @@ module OneM2M_Testcases_CSE_Release_3 {
 						if(getverdict == pass){ 
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							//Check that the resource has NOT been udpated
-							  if(ischosen(v_primitiveContentRetrieveResource.schedule_update_invalid)) {
-							   if(v_primitiveContentRetrieveResource.schedule_update_invalid.creationTime == v_creationTime){
+							  if(ischosen(v_primitiveContentRetrieveResource.schedule_invalid)) {
+							   if(v_primitiveContentRetrieveResource.schedule_invalid.creationTime == v_creationTime){
 								 setverdict(fail, __SCOPE__ & ": Error: Creation Time attribute updated")
 								}
 							}
@@ -4246,8 +4246,8 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 
 						
-						v_updateRequest.primitiveContent := {timeSeries_update_invalid := m_contentUpdateTimeSeries_invalid};
-						v_updateRequest.primitiveContent.timeSeries_update_invalid.creationTime := v_creationTime;
+						v_updateRequest.primitiveContent := {timeSeries_invalid := m_contentUpdateTimeSeries_invalid};
+						v_updateRequest.primitiveContent.timeSeries_invalid.creationTime := v_creationTime;
 		
 						v_ae1.start(f_CSE_DMR_UPD_007(int29, m_createTimeSeriesBase, v_updateRequest));//TimeSeries
 						v_ae1.done;
@@ -4255,8 +4255,8 @@ module OneM2M_Testcases_CSE_Release_3 {
 						if(getverdict == pass){ 
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							//Check that the resource has NOT been udpated
-							  if(ischosen(v_primitiveContentRetrieveResource.timeSeries_update_invalid)) {
-							   if(v_primitiveContentRetrieveResource.timeSeries_update_invalid.creationTime == v_creationTime){
+							  if(ischosen(v_primitiveContentRetrieveResource.timeSeries_invalid)) {
+							   if(v_primitiveContentRetrieveResource.timeSeries_invalid.creationTime == v_creationTime){
 								 setverdict(fail, __SCOPE__ & ": Error: Creation Time attribute updated")
 								}
 							}
@@ -4313,9 +4313,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequest := m_createScheduleBase;
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
 						
-						v_updateRequest.primitiveContent := {schedule_update_invalid := m_contentUpdateSchedule_invalid};
+						v_updateRequest.primitiveContent := {schedule_invalid := m_contentUpdateSchedule_invalid};
 
-						v_updateRequest.primitiveContent.schedule_update_invalid.expirationCounter := v_expirationCounter;
+						v_updateRequest.primitiveContent.schedule_invalid.expirationCounter := v_expirationCounter;
 										
 						v_ae1.start(f_CSE_DMR_UPD_009(int18, v_createRequest, v_updateRequest));//Schedule
 						v_ae1.done;
@@ -4329,9 +4329,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase;
 
 						
-						v_updateRequest.primitiveContent := {timeSeries_update_invalid := m_contentUpdateTimeSeries_invalid};
+						v_updateRequest.primitiveContent := {timeSeries_invalid := m_contentUpdateTimeSeries_invalid};
 	
-						v_updateRequest.primitiveContent.timeSeries_update_invalid.expirationCounter := v_expirationCounter;
+						v_updateRequest.primitiveContent.timeSeries_invalid.expirationCounter := v_expirationCounter;
 		
 						v_ae1.start(f_CSE_DMR_UPD_009(int29, v_createRequest, v_updateRequest));//TimeSeries
 						v_ae1.done;