diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 599eed6a577dcb8758962fe017c284ef78bc6e54..6899c5016205e0796bacbd33a8c1adf87b5f3cc0 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 170 2016-11-21 15:53:54Z reinaortega $
+ *              $Id: OneM2M_Functions.ttcn 174 2016-11-22 11:36:56Z carres $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -714,7 +714,7 @@ module OneM2M_Functions {
 		 */
 		function f_getCreateRequestPrimitive(in ResourceType p_resourceType, template RequestPrimitive p_request := m_create, integer p_parentIndex) runs on CseTester return RequestPrimitive {
     		var integer p_locresourceIndex := p_parentIndex;
-            var template ListOfURIs v_notificationURI := {"Not Initialized"};
+            var template ListOfURIs v_defaultListOfURIs := {"Not Initialized"};
             
 			p_request.from_ := f_getOriginator(p_parentIndex);
 			p_request.to_ := f_getResourceAddress(p_parentIndex);
@@ -723,7 +723,9 @@ module OneM2M_Functions {
 			} 
 			
 			if (p_resourceType == int9) {//group
-				p_request.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceAddress(p_parentIndex)};
+				if(match(valueof(p_request.primitiveContent.any_1[0].Group_optional.memberIDs), v_defaultListOfURIs )){
+					p_request.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceAddress(p_parentIndex)};
+				}
 			}
 			
 			if(p_resourceType == int3){//container
@@ -743,7 +745,7 @@ module OneM2M_Functions {
 			} 
     			
 			if (p_resourceType == int23) {//subscription
-				if(match(valueof(p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI), v_notificationURI )){
+				if(match(valueof(p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI), v_defaultListOfURIs )){
 					p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {f_getResourceAddress(p_parentIndex)};
 				}
                 /*if(PX_FROM_IS_AE_ID) {
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 03ad1d015a7faf6607e095328c7c9901eddbf44d..c224e340587142af034a6a108e8aa4352f1ddd67 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
- *              $Id: OneM2M_Templates.ttcn 170 2016-11-21 15:53:54Z reinaortega $
+ *              $Id: OneM2M_Templates.ttcn 179 2016-11-24 10:39:02Z carres $
  *  @desc       Module containing templates for oneM2M
  *
  */
@@ -470,13 +470,13 @@ module OneM2M_Templates {
 				}
 			};
 	
-    		template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName) modifies m_create := {
+    		template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName := c_defaultResourceName) modifies m_create := {
     			to_ := p_parentResourceAddress,
     			from_ := PX_AE_ID_STEM,
     			requestIdentifier := "m_createContainer" & f_rnd(1, 1000000),
     			resourceType := int3,
     			primitiveContent := {
-    				any_1 := {{Container_optional := m_contentCreateContainer}}
+    				any_1 := {{Container_optional := m_contentCreateContainer(p_resourceName)}}
     			}
     		};
         	
@@ -498,17 +498,21 @@ module OneM2M_Templates {
 				requestIdentifier := "m_createGroup" & f_rnd(1, 1000000),
 				resourceType := int9,
 				primitiveContent := {
-					any_1 := {{Group_optional := m_contentCreateGroup (1, {"/" & PX_CSE_NAME & "/" & "NotInitialized"}, omit)}}	//TODO: p_resourceId
+					any_1 := {{Group_optional := m_contentCreateGroup (1, {"Not Initialized"}, omit, omit)}}	//TODO: p_resourceId
 				}
 			};
         	
-        	template (value) RequestPrimitive m_createGroup(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name, in template (omit) AcpType p_accessControlPolicyIDs, in template (value) XSD.AnyURI p_memberId ) modifies m_create := {
-        		to_ := p_parentResourceAddress,
-        		from_ := PX_AE_ID_STEM,
+        	template (value) RequestPrimitive m_createGroup(in template (value) XSD.NonNegativeInteger p_maxNrOfMembers,
+															in template (value) ListOfURIs p_memberIds := {"Not Initialized"},
+															in template (omit) AcpType p_accessControlPolicyIDs,
+															in template (omit) MemberType p_memberType := omit,
+															in template (omit) ConsistencyStrategy p_consistencyStrategy := omit,
+															in template (omit) ListOfURIs p_membersAccessControlPolicyIDs := omit,
+															in template (omit) XSD.String p_name := "MyGroup") modifies m_create := {
         		requestIdentifier := "m_createGroup" & f_rnd(1, 1000000),
         		resourceType := int9,
         		primitiveContent := {
-        			any_1 := {{Group_optional := m_contentCreateGroup (1, {"/" & PX_CSE_NAME & "/" & valueof(p_memberId)}, p_accessControlPolicyIDs)}}	//TODO: p_resourceId
+        			any_1 := {{Group_optional := m_contentCreateGroup (p_maxNrOfMembers, p_memberIds, p_accessControlPolicyIDs, p_memberType, p_consistencyStrategy, p_membersAccessControlPolicyIDs, p_name)}}	//TODO: p_resourceId
         		}
         	};
         	
@@ -882,6 +886,9 @@ module OneM2M_Templates {
     	template (value) Group_optional m_contentCreateGroup (	in template (value) XSD.NonNegativeInteger p_maxNrOfMembers,
     															in template (value) ListOfURIs p_memberIds,
     															in template (omit) AcpType p_accessControlPolicyIDs,
+    															in template (omit) MemberType p_memberType := omit,
+    															in template (omit) ConsistencyStrategy p_consistencyStrategy := omit,
+    															in template (omit) ListOfURIs p_membersAccessControlPolicyIDs := omit,
 																in template (omit) XSD.String p_name := c_defaultResourceName) := {
 			resourceName := p_name,//O
 			resourceType := omit,//NP
@@ -896,13 +903,13 @@ module OneM2M_Templates {
 			announceTo := omit,//O
 			announcedAttribute := omit,//O
 			creator := omit,//O
-			memberType := omit,//O
+			memberType := p_memberType,//O
 			currentNrOfMembers := omit,//NP
 			maxNrOfMembers := p_maxNrOfMembers,//M
 			memberIDs := p_memberIds,//M
-			membersAccessControlPolicyIDs := omit,//O
+			membersAccessControlPolicyIDs := p_membersAccessControlPolicyIDs,//O
 			memberTypeValidated := omit,//NP
-			consistencyStrategy := omit,//O
+			consistencyStrategy := p_consistencyStrategy,//O
 			groupName := omit,//O
 			choice := omit//NP
     	};    	
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index 90fec81a155b535032745b991168db9cffbf78c3..bfbfb85801c453c04e3a5e9541ed9fe9eb4c112c 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
- *              $Id: OneM2M_Testcases.ttcn 170 2016-11-21 15:53:54Z reinaortega $
+ *              $Id: OneM2M_Testcases.ttcn 182 2016-11-25 10:27:11Z reinaortega $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -5407,29 +5407,26 @@ module OneM2M_Testcases {
             group g_CSE_GMG_BV_001 {
                 
                 testcase TC_CSE_GMG_BV_001() runs on CseTester system CseSystem {
-                    
-                    // Local variables
-                    var MsgIn v_response;
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                                                                
-                    
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    var ResponsePrimitive v_responsePrimitive;
-
-                    //v_createRequest.primitiveContent.any_1[0].Group_optional.currentNrOfMembers := 6;
+					// Local constants
 					const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESOURCE_ADDRESS_1";
 					const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESOURCE_ADDRESS_2";
 					const XSD.AnyURI c_memberResourceAddress3 := "MEMBER_RESOURCE_ADDRESS_3";
 					const XSD.AnyURI c_memberResourceAddress4 := "MEMBER_RESOURCE_ADDRESS_4";
 					const XSD.AnyURI c_memberResourceAddress5 := "MEMBER_RESOURCE_ADDRESS_5";
 					const XSD.AnyURI c_memberResourceAddress6 := "MEMBER_RESOURCE_ADDRESS_6";
+					const XSD.NonNegativeInteger c_maxNrOfMembers := 5;
+					const ListOfURIs c_memberIDs := {c_memberResourceAddress1, c_memberResourceAddress2, c_memberResourceAddress3, c_memberResourceAddress4, c_memberResourceAddress5, c_memberResourceAddress6};
 					
-					v_createRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {c_memberResourceAddress1, c_memberResourceAddress2, c_memberResourceAddress3, c_memberResourceAddress4, c_memberResourceAddress5, c_memberResourceAddress6};			
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.maxNrOfMembers := 5;
+                    // Local variables
+                    var MsgIn v_response;
+                    var integer v_aeIndex := -1;
+                    var integer v_resourceIndex := -1;
+					var RequestPrimitive v_request;                
+                    var template RequestPrimitive v_createRequest;
+                    var ResponsePrimitive v_responsePrimitive;
+                    
+					v_createRequest := valueof(m_createGroup(c_maxNrOfMembers, c_memberIDs, omit));
 
-                                        
                     //  Test control
                     
                     // Test component configuration
@@ -5441,7 +5438,7 @@ module OneM2M_Testcases {
                     v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
                                 
                     // Test Body
-                    v_request := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);
+					v_request := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);
                 
                                                                          
                     mcaPort.send(m_request(v_request));
@@ -5453,10 +5450,14 @@ module OneM2M_Testcases {
                         }
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                             tc_ac.stop;
-                            setverdict(fail, testcasename() & ": Error while retrieving resource");
+                            setverdict(fail, testcasename() & ": Error while creating resource");
                         }
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error resource created while member ID exceed max number of member");
+						}
                         [] tc_ac.timeout {
-                            setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+                            setverdict(inconc, testcasename() & ": No answer while creating resource");
                         }
                     }
                                     
@@ -5469,36 +5470,29 @@ module OneM2M_Testcases {
                 }
             
             } // end group g_CSE_GMG_BV_001
-        
-                
-            
+
                 
             // Test objective:
             // Check that the IUT rejects the creation of the group resource when the memberType cannot
             // be retrieved due to lack of privilege.
             group g_CSE_GMG_BV_002 {
                 
-				testcase TC_CSE_GMG_BV_002() runs on CseTester system CseSystem
-                {
-                	// Local constants
-					const ResourceType c_ResourceTypeGroup := int9;  // <group> ?
-					const ResourceType c_ResourceTypeAcp := int1;		// <ACP>
-                	const XSD.String c_acpName := "ACP_NAME";
-                	const ListOfURIs c_acor := {"NA"};
-                	const AccessControlOperations c_allowedOperations := int63;
-                	
+				testcase TC_CSE_GMG_BV_002() runs on CseTester system CseSystem {
                 	// Local variables
                 	var MsgIn v_response;
-                	var RequestPrimitive v_request;
                 	var integer v_aeIndex := -1;
+					var integer v_containerIndex := -1;
                 	var integer v_acpIndex := -1;
-                												
-                
-                	var template RequestPrimitive v_createRequest := m_createGroupBase;
-                	var template RequestPrimitive v_createAcp := m_createAcp(c_acpName, c_acpName, c_acor, c_allowedOperations);
-                
+					var RequestPrimitive v_request;
+					var template RequestPrimitive v_containerCreateRequest := m_createContainerBase;
+                	var template RequestPrimitive v_createRequest;
+                	var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, int61); //c_CUDNDi
                 	
                 	// Test control
+					if(not(PICS_ACP_SUPPORT)) {
+						setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case");
+						stop;
+					}
                 	
                 	// Test component configuration
                 	f_cf01Up();
@@ -5506,15 +5500,17 @@ module OneM2M_Testcases {
                 	// Test adapter configuration
                 						
                 	// Preamble
-                	v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-                	v_request := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex);	// creating group
-                	
-                	v_acpIndex := f_cse_createResource(c_ResourceTypeAcp, v_createAcp, v_aeIndex);
-                	v_request.primitiveContent.any_1[0].Group_optional.accessControlPolicyIDs := {f_getResourceAddress(v_acpIndex)};
-                		   
+					
+                	v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
+					v_containerCreateRequest.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
+					v_containerIndex := f_cse_createResource(int3, v_containerCreateRequest, v_aeIndex); // AE child resource
+					
+					v_createRequest := m_createGroup(1, {f_getResourceAddress(v_containerIndex)}, omit, int3);
+					v_request := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);	// creating group
+                	                		   
                 	// Test Body
                 	
-                
                 	mcaPort.send(m_request(v_request));
                 	tc_ac.start;
                 	alt {
@@ -5524,8 +5520,12 @@ module OneM2M_Testcases {
                 		}
                 		[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                 			tc_ac.stop;
-                			setverdict(fail, testcasename() & ": Error while retrieving resource");
+                			setverdict(fail, testcasename() & ": Error while creating resource");
                 		}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error creation successful while doesn't have privileges for retrieving resource");
+						}
                 		[] tc_ac.timeout {
                 			setverdict(inconc, testcasename() & ": No answer while retrieving resource");
                 		}
@@ -5539,76 +5539,75 @@ module OneM2M_Testcases {
                 }
                 
             } // end group g_CSE_GMG_BV_002
-            
-            
+
             
             // Test objective:
             // Check that the IUT rejects the update of the group resource when the
             // memberType cannot be retrieved due to lack of privilege.
             group g_CSE_GMG_BV_003 {
                 
-                testcase TC_CSE_GMG_BV_003() runs on CseTester system CseSystem
-				{
-                	// Local constants
-                	const ResourceType c_ResourceTypeGroup := int9;  // <group> ?
-                	const ResourceType c_ResourceTypeAcp := int1;		// <ACP>
-                	const XSD.String c_acpName := "ACP_NAME";
-                	const ListOfURIs c_acor := {"NA"};
-                	const AccessControlOperations c_allowedOperations := int63;
-                                	
-                	// Local variables
-                	var MsgIn v_response;
-                	var RequestPrimitive v_request;
-                	var integer v_aeIndex := -1;
-                	var integer v_acpIndex := -1;
-                	var integer v_groupResourceIndex := -1;
-                                												
-                                
-                	var template RequestPrimitive v_createRequest := m_createGroupBase;
-                	var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-                	var template RequestPrimitive v_createAcp := m_createAcp(c_acpName, c_acpName, c_acor, c_allowedOperations);
-                                
-                                	
-                	// Test control
-                                	
-                	// Test component configuration
-                	f_cf01Up();
-                                	
-                	// Test adapter configuration
-                                						
-                	// Preamble
-                	v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-					v_groupResourceIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex); // create group resource
-                                	
-                	v_acpIndex := f_cse_createResource(c_ResourceTypeAcp, v_createAcp, v_groupResourceIndex);
+                testcase TC_CSE_GMG_BV_003() runs on CseTester system CseSystem {
+					// Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_acpIndex := -1;
+					var integer v_groupIndex := -1;
+					var RequestPrimitive v_request;
+					var template RequestPrimitive v_containerCreateRequest := m_createContainer("NotInitialized", "MyContainer2");
+					var template RequestPrimitive v_updateRequest := m_updateGroupBase;
+					var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, int61); //c_CUDNDi
+                
+					// Test control
+					if(not(PICS_ACP_SUPPORT)) {
+						setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case");
+						stop;
+					}
                 	
-                                		   
-                	// Test Body
-					v_request := f_getUpdateRequestPrimitive(int9, v_groupResourceIndex, v_updateRequest);
-					v_request.primitiveContent.any_1[0].Group_optional.accessControlPolicyIDs := {f_getResourceAddress(v_acpIndex)};
-                                	
-                                
-                	mcaPort.send(m_request(v_request));
-                	tc_ac.start;
-                	alt {
-                		[] mcaPort.receive(mw_response(mw_responsePrimitive(int5105))) -> value v_response {
-                			tc_ac.stop;
-                			setverdict(pass, testcasename() & ": creation failed due to lack of privilege");                            
-                		}
-                		[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
-                			tc_ac.stop;
-                			setverdict(fail, testcasename() & ": Error while retrieving resource");
-                		}
-                		[] tc_ac.timeout {
-                			setverdict(inconc, testcasename() & ": No answer while retrieving resource");
-                		}
-                	}
-                                					
-                	// Postamble
-                	f_cse_postamble_deleteResources();
-                                	
-                	// Tear down
-                	f_cf01Down();        
+					// Test component configuration
+					f_cf01Up();
+                	
+					// Test adapter configuration
+                			
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
+					v_containerCreateRequest.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, v_containerCreateRequest, v_aeIndex); // AE child resource
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {f_getResourceAddress(v_containerIndex1)}, omit, int3), v_aeIndex);
+					
+					v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceAddress(v_containerIndex2)};
+					v_request := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest);	// creating group
+                	    
+					// Test Body
+                	
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int5105))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": Update failed due to lack of privilege");                            
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while updating resource");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error update successful while doesn't have privileges for retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while updating resource");
+						}
+					}
+                					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                	
+					// Tear down
+					f_cf01Down();             
                 }
             
             } // end group g_CSE_GMG_BV_003
@@ -5618,18 +5617,8 @@ module OneM2M_Testcases {
             // resource when member ID exceed max number of members.
             group g_CSE_GMG_BV_004 {
                 
-                testcase TC_CSE_GMG_BV_004() runs on CseTester system CseSystem
-                {
-
-                    var MsgIn v_response;
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                    
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-                            
-                    //v_updateRequest.primitiveContent.any_1[0].Group_optional.currentNrOfMembers := 6;
+                testcase TC_CSE_GMG_BV_004() runs on CseTester system CseSystem {
+					// Local constants
 					const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESOURCE_ADDRESS_1";
 					const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESOURCE_ADDRESS_2";
 					const XSD.AnyURI c_memberResourceAddress3 := "MEMBER_RESOURCE_ADDRESS_3";
@@ -5637,10 +5626,16 @@ module OneM2M_Testcases {
 					const XSD.AnyURI c_memberResourceAddress5 := "MEMBER_RESOURCE_ADDRESS_5";
 					const XSD.AnyURI c_memberResourceAddress6 := "MEMBER_RESOURCE_ADDRESS_6";
 					
+					// Local variables
+                    var MsgIn v_response;
+                    var integer v_aeIndex := -1;
+                    var integer v_resourceIndex := -1;
+					var RequestPrimitive v_request;
+                    var template RequestPrimitive v_createRequest := m_createGroup(5, -, omit);
+                    var template RequestPrimitive v_updateRequest := m_updateGroupBase;
+                            
 					v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {c_memberResourceAddress1, c_memberResourceAddress2, c_memberResourceAddress3, c_memberResourceAddress4, c_memberResourceAddress5, c_memberResourceAddress6};
-                    v_updateRequest.primitiveContent.any_1[0].Group_optional.maxNrOfMembers := 5;
-                
-                                    
+                    
                     // Test control
                     
                     // Test component configuration
@@ -5659,7 +5654,7 @@ module OneM2M_Testcases {
                     mcaPort.send(m_request(v_request));
                     tc_ac.start;
                     alt {
-                        [] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) -> value v_response {
+                        [] mcaPort.receive(mw_response(mw_responsePrimitive(int6010))) -> value v_response {
                             tc_ac.stop;
                             setverdict(pass, testcasename() & ": Update failed because member ID exceed max number of member");
                         }
@@ -5667,6 +5662,10 @@ module OneM2M_Testcases {
                             tc_ac.stop;
                             setverdict(fail, testcasename() & ": Error while retrieving resource");
                         }
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error resource updated while member ID exceed max number of member");
+						}
                         [] tc_ac.timeout {
                             setverdict(inconc, testcasename() & ": No answer while retrieving resource");
                         }
@@ -5687,27 +5686,17 @@ module OneM2M_Testcases {
             // fanOutPoint in group resource.
             group g_CSE_GMG_BV_005 {
             
-                testcase TC_CSE_GMG_BV_005() runs on CseTester system CseSystem
-                {
-                    
-                    // TODO: use right values for c_fanoutPointAddress and c_RessourceType1
-                    var XSD.AnyURI c_fanoutPointAddress := "FANOUTPOINT_ADDRESS";
-                    var ResourceType c_RessourceType1 := int1;
-                
+                testcase TC_CSE_GMG_BV_005() runs on CseTester system CseSystem {
                     // Local variables
                     var MsgIn v_response;
-                    var RequestPrimitive v_request;
+					var RequestPrimitive v_createRequest := valueof(m_createContainerBase);
                     var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                                               
-                    
-                    var RequestPrimitive v_createRequest := valueof(m_createGroupBase);
-                
-                        
-                    //v_createRequest.primitiveContent.any_1[0].Group_optional.fanOutPoint := c_fanoutPointAddress; TODO <---------------------------------------
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.resourceType := c_RessourceType1;
-                            
-                    
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+                    var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
+					var integer i;
+					
                     // Test control
                     
                     // Test component configuration
@@ -5716,11 +5705,15 @@ module OneM2M_Testcases {
                     // Test adapter configuration
                                         
                     // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-                    //v_resourceIndex := f_cse_createResource(int9, v_createRequest, v_aeIndex);	// not used anymore -> Issue #4
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_memberIDs := {f_getResourceAddress(v_containerIndex1), f_getResourceAddress(v_containerIndex2)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3), v_aeIndex); // AE child resource
        
-					v_request := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);
-                    
+					v_createRequest.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; // short name of fanOutPoint
+					v_createRequest.from_ := f_getOriginator(v_groupIndex);
+					
                     // Test Body
 
                     mcaPort.send(m_request(v_createRequest));
@@ -5732,14 +5725,21 @@ module OneM2M_Testcases {
                             
 							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){
 								setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided");
-							}                            
+							}
+							else {
+								for(i:=0; i<lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list); i := i+1){
+									if(not match(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list[i], mw_responsePrimitiveOK)){
+										setverdict(fail, testcasename(), ": Error, one responsePrimitve of aggregatedResponse_list is not successful");
+									}
+								}
+							}                             
                         }
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                             tc_ac.stop;
-                            setverdict(fail, testcasename() & ": Error while retrieving resource");
+                            setverdict(fail, testcasename() & ": Error while creating resource");
                         }
                         [] tc_ac.timeout {
-                            setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+                            setverdict(inconc, testcasename() & ": No answer while creating resource");
                         }
                     }
                                     
@@ -5758,27 +5758,16 @@ module OneM2M_Testcases {
             // fanOutPoint in group resource.
             group g_CSE_GMG_BV_006 {
             
-                testcase TC_CSE_GMG_BV_006() runs on CseTester system CseSystem
-                {
-                
-                    
-                
-                    // TODO: use right values for c_fanoutPointAddress and c_RessourceType1
-                    var XSD.AnyURI c_fanoutPointAddress := "FANOUTPOINT_ADDRESS";
-                    var ResourceType c_RessourceType1 := int1;
-                
-                    // Local variables
-                    var XSD.ID v_resourceId := "NonExisting";
-                    var RequestPrimitive v_request := valueof(m_createGroupBase);
-                    var MsgIn v_response;
-                    var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                    
-                                
-                    
-                    //v_request.primitiveContent.any_1[0].Group_optional.fanOutPoint := c_fanoutPointAddress; TODO <---------------------------------------
-                                                    
-                    
+                testcase TC_CSE_GMG_BV_006() runs on CseTester system CseSystem {
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var XSD.AnyURI v_fanoutPointAddress;
+					var ListOfURIs v_memberIDs;
+					var integer i;
+					
                     // Test control
                     
                     // Test component configuration
@@ -5787,12 +5776,16 @@ module OneM2M_Testcases {
                     // Test adapter configuration
                                         
                     // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-                    v_resourceIndex := f_cse_createResource(int9, v_request, v_aeIndex);
-                    
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_memberIDs := {f_getResourceAddress(v_containerIndex1), f_getResourceAddress(v_containerIndex2)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3), v_aeIndex); // AE child resource
+       
+					v_fanoutPointAddress := f_getResourceAddress(v_groupIndex) & "/fopt"; // short name of fanOutPoint
+       
                     // Test Body
-					v_request := valueof(m_retrieveResource(f_getResourceAddress(v_resourceIndex) & "/" & v_resourceId, f_getOriginator(v_resourceIndex)));
-                    mcaPort.send(m_request(valueof(v_request)));
+                    mcaPort.send(m_request(m_retrieveResource(v_fanoutPointAddress, f_getOriginator(v_groupIndex))));
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response {
@@ -5802,7 +5795,14 @@ module OneM2M_Testcases {
 							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){
 								setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided");
 							}
-							                        }
+							else {
+								for(i:=0; i<lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list); i := i+1){
+									if(not match(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list[i], mw_responsePrimitiveOK)){
+										setverdict(fail, testcasename(), ": Error, one responsePrimitve of aggregatedResponse_list is not successful");
+									}
+								}
+							} 
+						}
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                             tc_ac.stop;
                             setverdict(fail, testcasename() & ": Error while retrieving resource");
@@ -5827,27 +5827,20 @@ module OneM2M_Testcases {
             // fanOutPoint in group resource.
             group g_CSE_GMG_BV_007 {
             
-                testcase TC_CSE_GMG_BV_007() runs on CseTester system CseSystem
-                {
-                                                            
-                    const ResourceType c_RessourceType1 := int9;  // <group> ?
-    
+                testcase TC_CSE_GMG_BV_007() runs on CseTester system CseSystem {
                     // Local variables
-                    var MsgIn v_response;
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                                                                
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-                    
-					const XSD.AnyURI c_memberRessourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1";
-					const XSD.AnyURI c_memberRessourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2";
-					const XSD.AnyURI c_memberRessourceAddress3 := "MEMBER_RESSOURCE_ADDRESS_3";
-					const XSD.AnyURI c_memberRessourceAddress4 := "MEMBER_RESSOURCE_ADDRESS_4";
-					const XSD.AnyURI c_memberRessourceAddress5 := "MEMBER_RESSOURCE_ADDRESS_5";
-					const XSD.AnyURI c_memberRessourceAddress6 := "MEMBER_RESSOURCE_ADDRESS_6";        
-					                    
+					var MsgIn v_response;
+					var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase);
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
+					var Labels v_labels_1:= {"VALUE_1"};
+					var integer i;
+					
+					v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1;
+					
                     // Test control
                     
                     // Test component configuration
@@ -5856,27 +5849,33 @@ module OneM2M_Testcases {
                     // Test adapter configuration
                                         
                     // Preamble
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_memberIDs := {f_getResourceAddress(v_containerIndex1), f_getResourceAddress(v_containerIndex2)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3), v_aeIndex); // AE child resource
+       
+					v_updateRequest.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; // short name of fanOutPoint
+					v_updateRequest.from_ :=  f_getOriginator(v_groupIndex);
                     
-					//var XSD.AnyURI c_memberRessourceAddress6 := "MEMBER_RESSOURCE_ADDRESS_6";				
-					v_createRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {c_memberRessourceAddress1, c_memberRessourceAddress2, c_memberRessourceAddress3, c_memberRessourceAddress4, c_memberRessourceAddress5, c_memberRessourceAddress6};
-                    
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-                    v_resourceIndex := f_cse_createResource(int9, v_createRequest, v_aeIndex);
-                    
-                    // Test Body
-                    v_request := f_getUpdateRequestPrimitive(int9, v_resourceIndex, v_updateRequest);
-                                     
-                                     
-                    mcaPort.send(m_request(v_request));
+                    // Test Body           
+                    mcaPort.send(m_request(v_updateRequest));
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response {
                             tc_ac.stop;
-                            setverdict(pass, testcasename() & ": update successfull by using fanOutPoint in group resource");
+                            setverdict(pass, testcasename() & ": update successful by using fanOutPoint in group resource");
                             
 							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){
 								setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided");
-							}                            
+							}
+							else {
+								for(i:=0; i<lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list); i := i+1){
+									if(not match(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list[i], mw_responsePrimitiveOK)){
+										setverdict(fail, testcasename(), ": Error, one responsePrimitve of aggregatedResponse_list is not successful");
+									}
+								}
+							}                  
                         }
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                             tc_ac.stop;
@@ -5902,26 +5901,17 @@ module OneM2M_Testcases {
             // fanOutPoint in group resource.
             group g_CSE_GMG_BV_008 {
                 
-                testcase TC_CSE_GMG_BV_008() runs on CseTester system CseSystem
-                {
-                    // TODO: use right values for c_fanoutPointAddress and c_deleteAddress
-                    var XSD.AnyURI c_fanoutPointAddress := "FANOUTPOINT_ADDRESS";
-                    var XSD.ID c_deleteAddress := "DELETE";
-                
+                testcase TC_CSE_GMG_BV_008() runs on CseTester system CseSystem {
                     //Local variables
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                    var MsgIn v_response;
-                    
-                    
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    var template RequestPrimitive v_deleteRequest := m_deleteRequest(c_deleteAddress);
-                            
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var XSD.AnyURI v_fanoutPointAddress;
+					var ListOfURIs v_memberIDs;
+					var integer i;                         
 
-                    //v_deleteRequest.primitiveContent.any_1[0].Group_optional.fanOutPoint := c_fanoutPointAddress; TODO <---------------------------------------
-                                    
-                    
                     // Test control
                     
                     // Test component configuration
@@ -5930,30 +5920,39 @@ module OneM2M_Testcases {
                     // Test adapter configuration
                                         
                     // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-                    v_resourceIndex := f_cse_createResource(int9, v_createRequest, v_aeIndex);
-                    
-                    // Test Body
-                    v_request := f_getUpdateRequestPrimitive(int9, v_resourceIndex, v_deleteRequest);
-                                     
-                                     
-                    mcaPort.send(m_request(v_request));
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_memberIDs := {f_getResourceAddress(v_containerIndex1), f_getResourceAddress(v_containerIndex2)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3), v_aeIndex); // AE child resource
+       
+					v_fanoutPointAddress := f_getResourceAddress(v_groupIndex) & "/fopt"; // short name of fanOutPoint
+       
+                    // Test Body                                     
+                    mcaPort.send(m_request(m_deleteRequest(v_fanoutPointAddress))); //TODO  see if we set AE_ID or PX_SUPER_USER to from_ attribute
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response {
                             tc_ac.stop;
-                            setverdict(pass, testcasename() & ": delete successfull by using fanOutPoint in group resource");
+                            setverdict(pass, testcasename() & ": delete successful by using fanOutPoint in group resource");
 
 							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){
 								setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided");
 							}
+							else {
+								for(i:=0; i<lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list); i := i+1){
+									if(not match(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list[i], mw_responsePrimitiveOK)){
+										setverdict(fail, testcasename(), ": Error, one responsePrimitve of aggregatedResponse_list is not successful");
+									}
+								}
+							} 
                         }
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                             tc_ac.stop;
-                            setverdict(fail, testcasename() & ": Error while retrieving resource");
+                            setverdict(fail, testcasename() & ": Error while deleting resource");
                         }
                         [] tc_ac.timeout {
-                            setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+                            setverdict(inconc, testcasename() & ": No answer while deleting resource");
                         }
                     }
                                     
@@ -5972,17 +5971,13 @@ module OneM2M_Testcases {
             // group resource and removes the duplicate member IDs prior to creation of the group resource.
             group g_CSE_GMG_BV_009 {
                 
-                testcase TC_CSE_GMG_BV_009() runs on CseTester system CseSystem
-                {
-                    
-                    // TODO: use right values for c_memberRessourceAddress
-                    var XSD.AnyURI c_memberRessourceAddress := "MEMBER_RESSOURCE_ADDRESS";
-
+                testcase TC_CSE_GMG_BV_009() runs on CseTester system CseSystem {                    
                     // Local variables
                     var MsgIn v_response;
                     var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
+					var integer v_containerIndex := -1;
+                    var RequestPrimitive v_createRequest;
+                    var XSD.AnyURI v_memberID;
                     
                     // Test control
                     
@@ -5992,28 +5987,26 @@ module OneM2M_Testcases {
                     // Test adapter configuration
                                         
                     // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-            
+                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi.
+					v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource
+					v_memberID :=  f_getResourceAddress(v_containerIndex);
+					v_createRequest := valueof(m_createGroup(2, {v_memberID, v_memberID}, omit, int3));
 					v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);
-            
-                    v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup (1, {c_memberRessourceAddress, c_memberRessourceAddress}, omit);
-                                                            
-                    mcaPort.send(m_request(valueof(v_createRequest)));
+            		
+					// Test Body                                              
+                    mcaPort.send(m_request(v_createRequest));
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response {
                             tc_ac.stop;
                             setverdict(pass, testcasename() & ": Resource created successfuly");
-                                    
-                            if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs)){
-                                setverdict(fail, testcasename(), ": Error, memberID attribute not provided");
-                            } else {
-                                if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != c_memberRessourceAddress){
-                                    setverdict(fail, testcasename(), ": Error, memberIDs attribute not correct");
-                                }
+						
+                            if(not match({v_memberID}, v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs)){
+								setverdict(fail, testcasename(), ": Error, presence of duplicate member IDs ");
                             }
-                            
-                        
+							if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs) != 1) {
+							   setverdict(fail, testcasename() & ": Error, wrong number of memberIDs attribute");      
+							} 
                         }
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
                             tc_ac.stop;
@@ -6039,24 +6032,13 @@ module OneM2M_Testcases {
             // group resource when memberType attribute is not ‘mixed’.
             group g_CSE_GMG_BV_010 {
             
-                testcase TC_CSE_GMG_BV_010() runs on CseTester system CseSystem
-                {
-//                  Local variables
+                testcase TC_CSE_GMG_BV_010() runs on CseTester system CseSystem {
+					// Local variables
                     var MsgIn v_response;
-                    var RequestPrimitive v_request;
+					var RequestPrimitive v_createRequest;
                     var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                                               
-
-                    // TODO: use right values for c_RessourceType1
-                    var ResourceType c_RessourceType1 := int1;
-                    
-                    var ResponsePrimitive.primitiveContent v_responsePrimitive;
-                    
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
+					var integer v_containerIndex := -1;
                 
-                    
-                    
                     // Test control
                     
                     // Test component configuration
@@ -6066,29 +6048,25 @@ module OneM2M_Testcases {
                                         
                     // Preamble
                     v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-                
-            
-                    v_request := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);
-                
-                    v_request.primitiveContent.any_1[0].Group_optional.resourceType := c_RessourceType1;
-                                                            
-            
-                
-                    mcaPort.send(m_request(v_request));
+					v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource
+					v_createRequest := valueof(m_createGroup(2, {f_getResourceAddress(v_containerIndex)}, omit, int3)); //Member type is set to Container
+					v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);
+                	
+                	// Test Body       
+                    mcaPort.send(m_request(v_createRequest));
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response {
                             tc_ac.stop;
                             setverdict(pass, testcasename() & ": Resource created successfuly");
-                        
-                            if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)){
+							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)){
                                 setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided");
-                            } else {
+                            }
+                            else {
                                 if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated == false){
                                     setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not correct");
                                 }
-                            }
-                                            
+                            }     
                         }
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
                             tc_ac.stop;
@@ -6114,52 +6092,39 @@ module OneM2M_Testcases {
             // group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is SET_MIXED.
             group g_CSE_GMG_BV_011 {
             
-                testcase TC_CSE_GMG_BV_011() runs on CseTester system CseSystem
-                {
-
-                    // TODO: use right values for c_RessourceType1 and c_RessourceType2
-                    var MemberType c_RessourceType1 := int1;
-                    var MemberType c_RessourceType2 := int2;
-
-                    // Local variables
-                    var ResponsePrimitive.primitiveContent v_responsePrimitive;
-                    var MsgIn v_response;
-                    var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                    var RequestPrimitive v_request;
-                    
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                                                    
-                    // Test control
+                testcase TC_CSE_GMG_BV_011() runs on CseTester system CseSystem {
+					//Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_createRequest;
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex := -1;
+                
+					// Test control
                     
-                    // Test component configuration
-                    f_cf01Up();
+					// Test component configuration
+					f_cf01Up();
                     
-                    // Test adapter configuration
+					// Test adapter configuration
                                         
-                    // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-                
-                            
-                
-                    v_request := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);
-                
-                    v_request.primitiveContent.any_1[0].Group_optional.memberType := c_RessourceType2;
-                    v_request.primitiveContent.any_1[0].Group_optional.consistencyStrategy := int3; // MIXED
-                                                            
-                        
-                    mcaPort.send(m_request(v_request));
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
+					v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource
+					v_createRequest := valueof(m_createGroup(2, {f_getResourceAddress(v_containerIndex)}, omit, int2, int3)); //Member type is set to AE and consistencyStrategy is set to MIXED
+					v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);                                                            
+                    
+                    // Test Body
+                    mcaPort.send(m_request(v_createRequest));
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response {
                             tc_ac.stop;
                             setverdict(pass, testcasename() & ": Resource created successfuly");
-                        
-                        
+							
                             // check for memberTypeValidated
                             if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)){
                                 setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided");
-                            } else {
+                            }
+                            else {
                                 if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated != false){
                                     setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not correct");
                                 }
@@ -6167,12 +6132,12 @@ module OneM2M_Testcases {
                             // check for memberType (MIXED)
                             if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType)){
                                 setverdict(fail, testcasename(), ": Error, memberType attribute not provided");
-                            } else {
-                                if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType != int3){
+                            } 
+                            else {
+                                if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType != int0){  //Mixed is int0 in release 2 and int24 in release 1
                                     setverdict(fail, testcasename(), ": Error, memberType attribute not correct");
                                 }
                             }
-                        
                         }
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
                             tc_ac.stop;
@@ -6198,44 +6163,39 @@ module OneM2M_Testcases {
             // ABANDON_MEMBER,.
             group g_CSE_GMG_BV_012 {
             
-                testcase TC_CSE_GMG_BV_012() runs on CseTester system CseSystem
-                {
-
-                    // TODO: use right values for c_RessourceType1 and c_RessourceType2 and c_memberRessourceAddress1 and c_memberRessourceAddress2
-                    var MemberType c_RessourceType1 := int1;
-                    var MemberType c_RessourceType2 := int2;
-                    var XSD.AnyURI c_memberRessourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1";
-                    var XSD.AnyURI c_memberRessourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2";
+                testcase TC_CSE_GMG_BV_012() runs on CseTester system CseSystem {
+					//Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_createRequest;
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex := -1;
+					var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
                 
-//                  Local variables
-                    var MsgIn v_response;
-                    var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    //var ResponsePrimitive.primitiveContent v_responsePrimitive; // not used anymore -> issue #5
-                                    
-                    // Test control
+					// Test control
                     
-                    // Test component configuration
-                    f_cf01Up();
+					// Test component configuration
+					f_cf01Up();
                     
-                    // Test adapter configuration
+					// Test adapter configuration
                                         
-                    // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-                
-                    v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.memberType := c_RessourceType1;
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.consistencyStrategy := int1; // ABANDON_MEMBER
-                                                            
-                    mcaPort.send(m_request(valueof(v_createRequest)));
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
+					v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex);
+					v_groupIndex :=  f_cse_createResource(int9, m_createGroupBase, v_aeIndex);
+					v_memberIDs := {f_getResourceAddress(v_groupIndex), f_getResourceAddress(v_containerIndex)};
+					v_createRequest := valueof(m_createGroup(2, v_memberIDs, omit, int3, omit)); //Member type is set to container and consistencyStrategy is set to ABANDON MEMBER (default value)
+					v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);                                                       
+                    
+					// Test Body               
+                    mcaPort.send(m_request(v_createRequest));
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response {
                             tc_ac.stop;
                             setverdict(pass, testcasename() & ": Resource created successfuly");
-                        
-//                          check for memberTypeValidated
+							
+							// check for memberTypeValidated
                             if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)){
                                 setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided");
                             } else {
@@ -6246,9 +6206,10 @@ module OneM2M_Testcases {
                             // check for membersId
                             if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs)){
                                 setverdict(fail, testcasename(), ": Error, memberIDs attribute not provided");
-                            } else {
-                                if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != c_memberRessourceAddress1){
-                                    setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not correct");
+                            } 
+                            else {
+                                if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != f_getResourceAddress(v_containerIndex)){
+                                    setverdict(fail, testcasename(), ": Error, memberIDs attribute not correct");
                                 }
                             }
                         }
@@ -6277,53 +6238,48 @@ module OneM2M_Testcases {
             // ABANDON_GROUP.
             group g_CSE_GMG_BV_013 {
                 
-                testcase TC_CSE_GMG_BV_013() runs on CseTester system CseSystem
-                {
-
+                testcase TC_CSE_GMG_BV_013() runs on CseTester system CseSystem {
+					//Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_createRequest;
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex := -1;
+					var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
 
-                    // TODO: use right values for c_RessourceType1 and c_RessourceType2 and c_memberRessourceAddress1 and c_memberRessourceAddress2
-                    var MemberType c_RessourceType1 := int1;
-                    var MemberType c_RessourceType2 := int2;
-                    var XSD.AnyURI c_memberRessourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1";
-                    var XSD.AnyURI c_memberRessourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2";
-                
-//                  Local variables
-                    var MsgIn v_response;
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_resourceIndex := -1;
-                    
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                                            
-                    
-                    // Test control
-                    
-                    // Test component configuration
-                    f_cf01Up();
+					// Test control
+    
+					// Test component configuration
+					f_cf01Up();
+    
+					// Test adapter configuration
+                        
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
+					v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex);
+					v_groupIndex :=  f_cse_createResource(int9, m_createGroupBase, v_aeIndex);
+					v_memberIDs := {f_getResourceAddress(v_groupIndex), f_getResourceAddress(v_containerIndex)};
+					v_createRequest := valueof(m_createGroup(2, v_memberIDs, omit, int3, int2)); //Member type is set to container and consistencyStrategy is set to ABANDON GROUP
+					v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);                                                       
                     
-                    // Test adapter configuration
-                                        
-                    // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-                                
-					v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup (1, {c_memberRessourceAddress1, c_memberRessourceAddress2}, omit);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.memberType := c_RessourceType1;
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.consistencyStrategy := int2; // ABANDON_GROUP
-                
-                    mcaPort.send(m_request(valueof(v_createRequest)));
+                	// Test Body
+                    mcaPort.send(m_request(v_createRequest));
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int4110))) -> value v_response {//TODO Double check ResponseStatusCode
                             tc_ac.stop;
                             setverdict(pass, testcasename() & ": unsuccessful validation of the resource type during the creation of the group");
                         }
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error create succesfull while the operation should be aborted");
+						}
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                             tc_ac.stop;
-                            setverdict(fail, testcasename() & ": Error while retrieving resource");
+                            setverdict(fail, testcasename() & ": Error while creating resource");
                         }
                         [] tc_ac.timeout {
-                            setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+                            setverdict(inconc, testcasename() & ": No answer while creating resource");
                         }
                     }
                     
@@ -6341,26 +6297,17 @@ module OneM2M_Testcases {
             // Check that the IUT detects the presence of duplicate member IDs during the creation of the
             // group resource and removes the duplicate member IDs prior to updating of the group resource.
             group g_CSE_GMG_BV_014 {
-				testcase TC_CSE_GMG_BV_014() runs on CseTester system CseSystem
-				{
-					//Local constants
-					const ResourceType c_ResourceTypeGroup := int9;  // "group": TS-0004, Table 6.3.4.2.1-1
-					const ResourceType c_ResourceType1 := int4;      // "contentInstance": TS-0004, Table 6.3.4.2.1-1
-					const XSD.String c_primitiveContent := "any content instance value"; // embedded value of a contentInstance
-//					const XSD.AnyURI c_targetResourceAddress := "TARGET_RESOURCE_ADDRESS"; // resource type can be <CSEBase>, <AE>, <remoteCSE>
-					const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1"; // any resource type
-					const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2"; // any resource type
-    
+				testcase TC_CSE_GMG_BV_014() runs on CseTester system CseSystem {
 					// Local variables
 					var MsgIn v_response;
-					var RequestPrimitive v_request;
-					var integer v_aeIndex := -1;       // initialization with dummy value
-					var integer v_groupIndex := -1;    // initialization with dummy value
-                        
-					var template RequestPrimitive v_createRequest := m_createGroupBase;
-					var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-					var template RequestPrimitive v_createMember;
-                     
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase);
+					var XSD.AnyURI v_memberID1;
+					var XSD.AnyURI v_memberID2;
+					
 					// Test control
                     
 					// Test component configuration
@@ -6369,61 +6316,43 @@ module OneM2M_Testcases {
 					// Test adapter configuration
                     
 					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_memberID1 :=  f_getResourceAddress(v_containerIndex1);
+					v_memberID2 :=  f_getResourceAddress(v_containerIndex2);
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberID1, v_memberID2}, omit, int3), v_aeIndex); // AE child resource
+					
+					v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {v_memberID2, v_memberID2}; 
+					v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest);
 					
-					//    and the IUT having registered the AE
-					v_aeIndex := f_cse_preamble_registerAe(); // create auxiliar AE
-
-                    //    and the IUT having a resource at TARGET_RESOURCE_ADDRESS of type <group>
-                    //            containing memberIDs attribute 
-                    //            set to MEMBER_RESOURCE_ADDRESS_1
-                    //    and the AE having privileges to perform UPDATE operation on the TARGET_RESOURCE_ADDRESS                    
-					v_createRequest := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex); // build request primitive
-					v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(1, {c_memberResourceAddress1}, omit);
-					v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex); // create resource
-                    
-                    //    and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_1
-                    //        having resourceType attribute RESOURCE_TYPE_1
-                    //    and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_2
-                    //        having resourceType attribute RESOURCE_TYPE_1
-					v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1"); // build request primitive
-					f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex); // request new member
-					v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_2"); // build request primitive
-					f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex); // request new member
-                    
-
 					//Test Body
-					v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest);
-//					v_request.to_ := c_targetResourceAddress;
-					v_request.primitiveContent.any_1[0].Group_optional := valueof(m_contentCreateGroup(2, {c_memberResourceAddress2, c_memberResourceAddress2}, omit));
-                    
-					mcaPort.send(m_request(v_request));
+					mcaPort.send(m_request(v_updateRequest));
 					tc_ac.start;
 					alt {
 						 [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response {
 							 tc_ac.stop;
 							 setverdict(pass, testcasename() & ": update successful"); 
-
-                                                  
+     
 							// check for membersId
 							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs)){
 								setverdict(fail, testcasename(), ": Error, memberIDs attribute not provided");
-							} else {
-                                
+							} 
+							else {
 								if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs) != 1) {
 								   setverdict(fail, testcasename() & ": Error, wrong number of memberIDs attribute");      
 								}                               
-								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != c_memberResourceAddress2){
+								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != v_memberID2){
 									setverdict(fail, testcasename(), ": Error, memberIDs attribute not correct");
 								}
 							}
-                            
 						 }
 						 [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 							 tc_ac.stop;
-							 setverdict(fail, testcasename() & ": Error while retrieving resource");
+							 setverdict(fail, testcasename() & ": Error while updating resource");
 						 }
 						 [] tc_ac.timeout {
-							 setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+							 setverdict(inconc, testcasename() & ": No answer while updating resource");
 						 }
 					 }
                     
@@ -6435,68 +6364,36 @@ module OneM2M_Testcases {
 				}
             } // end group g_CSE_GMG_BV_014
 
-            /**
-             * @desc Check that the IUT validates the resource type during an UPDATE of the  <group> resource when memberType attribute is not ‘mixed’.
-             */
+			//Test objective:
+            //Check that the IUT validates the resource type during an UPDATE of the  <group> resource when memberType attribute is not ‘mixed’.
             group g_CSE_GMG_BV_015 {
-                testcase TC_CSE_GMG_BV_015() runs on CseTester system CseSystem
-                {
-                    //Local constants
-                    const ResourceType c_ResourceTypeGroup := int9;  
-                    const ResourceType c_ResourceType1 := int4;     
-                    const MemberType   c_memberType1   := int4;     // should be set same type as c_ResourceType1
-                    const XSD.String c_primitiveContent := "any content instance value"; // embedded value of a contentInstance
-//                    const XSD.AnyURI c_targetResourceAddress := "TARGET_RESOURCE_ADDRESS";
-                    const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1";
-                    const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2";
-    
+                testcase TC_CSE_GMG_BV_015() runs on CseTester system CseSystem {
                     // Local variables
-                    var MsgIn v_response;
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_groupIndex := -1;
-            
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-                    var template RequestPrimitive v_createMember;
-         
-                    // Test control
-        
-                    // Test component configuration
-                    f_cf01Up();
-    
-                    // Test adapter configuration
-        
-                    // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-        
-                    //    and the IUT having a resource at TARGET_RESOURCE_ADDRESS of type <group>
-                    //            containing 
-                    //            memberIDs attribute set to MEMBER_RESOURCE_ADDRESS_1
-                    //            memberType attribute set to RESOURCE_TYPE_1
-                    //    and the AE having privileges to perform UPDATE operation on the TARGET_RESOURCE_ADDRESS
-                    v_createRequest := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(1, {c_memberResourceAddress1}, omit);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.memberType := c_memberType1;
-                    v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-
-
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_1
-                    //            having resourceType attribute RESOURCE_TYPE_1
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_2
-                    //            having resourceType attribute RESOURCE_TYPE_1
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1");
-                    f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex);
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_2");
-                    f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex);
-        
-    
-                    //Test Body
-                    v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest);
-//                    v_request.to_ := c_targetResourceAddress;
-                    v_request.primitiveContent.any_1[0].Group_optional := valueof(m_contentCreateGroup(1, {c_memberResourceAddress2}, omit));
-        
-                    mcaPort.send(m_request(v_request));
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase);
+					
+					// Test control
+                    
+					// Test component configuration
+					f_cf01Up();
+                
+					// Test adapter configuration
+                    
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {f_getResourceAddress(v_containerIndex1)}, omit, int3), v_aeIndex);
+					
+					v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceAddress(v_containerIndex2)};
+					v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest);
+					
+                    // Test Body
+                    mcaPort.send(m_request(v_updateRequest));// TODO see if the memberTypeValidated is present in the update response
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response {
@@ -6505,7 +6402,8 @@ module OneM2M_Testcases {
                              
                              if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)) {
                                 setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided");    
-                             } else {
+                             } 
+                             else {
                                 if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated == false) {
                                     setverdict(fail, testcasename(), ": Error, memberTypeValidated wrong value");  
                                 }
@@ -6513,10 +6411,10 @@ module OneM2M_Testcases {
                         }
                          [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                              tc_ac.stop;
-                             setverdict(fail, testcasename() & ": Error while retrieving resource");
+                             setverdict(fail, testcasename() & ": Error while updating resource");
                          }
                          [] tc_ac.timeout {
-                             setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+                             setverdict(inconc, testcasename() & ": No answer while updating resource");
                          }
                      }
         
@@ -6528,33 +6426,21 @@ module OneM2M_Testcases {
                 }
             } // end group g_CSE_GMG_BV_015 
             
+			//Test objective:
+			//Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is SET_MIXED.
             group g_CSE_GMG_BV_016 {
-                // Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is SET_MIXED.
-                testcase TC_CSE_GMG_BV_016() runs on CseTester system CseSystem
-                {
-                    //Local constants
-                    const ResourceType c_ResourceTypeGroup := int9;  
-                    const ResourceType c_ResourceType1 := int4; 
-                    const ResourceType c_ResourceType2 := int5; 
-                    const MemberType   c_memberType1   := int4;     // should be set same type as c_ResourceType1
-                    const MemberType   c_memberType2   := int5;     // should be set same type as c_ResourceType2
-                    const MemberType   c_memberType_MIXED := int0;  // "mixed": TS-0004, Table 6.3.4.2.11-1
-                    const XSD.String c_primitiveContent := "any embedded primitive_content";
-                    const ConsistencyStrategy c_consistentcyStrategy := int3;   // "SET_MIXED": TS-0004, Table 6.3.4.2.12-1 
-//                    const XSD.AnyURI c_targetResourceAddress := "TARGET_RESOURCE_ADDRESS";
-                    const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1";
-                    const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2";
-    
+              
+                testcase TC_CSE_GMG_BV_016() runs on CseTester system CseSystem {
                     // Local variables
                     var MsgIn v_response;
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_groupIndex := -1;
-            
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-                    var template RequestPrimitive v_createMember;
-         
+					var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase);
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex := -1;
+					var integer v_groupIndex := -1;
+					var integer v_subGroupIndex := -1;
+					var XSD.AnyURI v_memberID1;
+					var XSD.AnyURI v_memberID2;
+                
                     // Test control
         
                     // Test component configuration
@@ -6563,77 +6449,53 @@ module OneM2M_Testcases {
                     // Test adapter configuration
         
                     // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-
-                    //    and the IUT having a resource at TARGET_RESOURCE_ADDRESS of type <group>
-                    //            containing 
-                    //            memberIDs attribute set to MEMBER_RESOURCE_ADDRESS_1
-                    //            memberType attribute set to RESOURCE_TYPE_1
-                    //            memberTypeValidated attribute set to TRUE
-                    //            consistencyStrategy attribute set to SET_MIXED
-                    //    and the AE having privileges to perform UPDATE operation on the TARGET_RESOURCE_ADDRESS        
-                    v_createRequest := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(1, {c_memberResourceAddress1}, omit);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.memberType := c_memberType1;
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.memberTypeValidated := true;
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.consistencyStrategy := c_consistentcyStrategy;
-                    v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_1
-                    //            having resourceType attribute RESOURCE_TYPE_1
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_2
-                    //            having resourceType attribute RESOURCE_TYPE_2
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1");
-                    f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex);
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_2");
-                    f_cse_createResource(c_ResourceType2, v_createMember, v_aeIndex);
-        
-    
-                    //Test Body
-            
-                    //    the IUT receives an valid UPDATE request from AE containing 
-                    //            To set to TARGET_RESOURCE_ADDRESS and
-                    //            From set to AE-ID and 
-                    //            Content set to <group> resource containing
-                    //                memberIDs attribute set to 
-                    //                    MEMBER_RESOURCE_ADDRESS_1,
-                    //                            MEMBER_RESOURCE_ADDRESS_2
-                    v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest);
-//                    v_request.to_ := c_targetResourceAddress;
-                    v_request.primitiveContent.any_1[0].Group_optional := valueof(m_contentCreateGroup(2, {c_memberResourceAddress1, c_memberResourceAddress2}, omit));
-        
-                    mcaPort.send(m_request(v_request));
+					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
+					v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex);
+					v_subGroupIndex :=  f_cse_createResource(int9, m_createGroupBase, v_aeIndex);
+					v_memberID1 := f_getResourceAddress(v_containerIndex);
+					v_memberID2 := f_getResourceAddress(v_subGroupIndex);
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberID1}, omit, int3, int3), v_aeIndex); //Member type is set to Container (int3) and consistencyStrategy is set to MIXED (int3)
+                	
+					v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {v_memberID1, v_memberID2};
+					v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest);
+					
+       				// Test Body
+                    mcaPort.send(m_request(v_updateRequest));// TODO see if the memberTypeValidated is present in the update response
                     tc_ac.start;
                     alt {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response {
-                            tc_ac.stop;
+                  			tc_ac.stop;
 							setverdict(pass, testcasename() & ": update successful");                              
                              
-                            //memberTypeValidated attribute set to FALSE
-                             if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)) {
-                                setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided");    
-                             } else {
-                                if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated != false) {
-                                    setverdict(fail, testcasename(), ": Error, memberTypeValidated must be FALSE");
-                                }}
+							//memberTypeValidated attribute set to FALSE
+							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)) {
+                            	setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided");    
+                            }
+							else {
+								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated != false) {
+									setverdict(fail, testcasename(), ": Error, memberTypeValidated must be FALSE");
+								}
+							}
                                 
 							//memberType attribute set to MIXED
-							 if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType)) {
+							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType)) {
 								setverdict(fail, testcasename(), ": Error, memberType attribute not provided");    
-							 } else {
-								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType != c_memberType_MIXED) {
+							}
+							else {
+								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType != int0) { //Mixed is int0 in release 2 and int24 in release 1
 									setverdict(fail, testcasename(), ": Error, memberType was not set to MIXED");
-								}}
+								}
+							}
                                 
-                             }
-                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
-                             tc_ac.stop;
-                             setverdict(fail, testcasename() & ": Error while retrieving resource");
-                         }
-                         [] tc_ac.timeout {
-                             setverdict(inconc, testcasename() & ": No answer while retrieving resource");
-                         }
-                     }
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+						}
+					}
         
                     //Postamble
                     f_cse_postamble_deleteResources();
@@ -6642,108 +6504,77 @@ module OneM2M_Testcases {
                     f_cf01Down();
                 }
             } // end group g_CSE_GMG_BV_016 
-        
-            group g_CSE_GMG_BV_017 {
-                // Test objective: Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_MEMBER.
-                testcase TC_CSE_GMG_BV_017() runs on CseTester system CseSystem
-                {
-                    //Local constants
-                    const ResourceType c_ResourceTypeGroup := int9;  
-                    const ResourceType c_ResourceType1 := int4; 
-                    const ResourceType c_ResourceType2 := int5; 
-                    const MemberType   c_memberType1   := int4;     // should be set same type as c_ResourceType1
-                    const MemberType   c_memberType2   := int5;     // should be set same type as c_ResourceType2
-                    const XSD.String c_primitiveContent := "primitive_content";
-                    const ConsistencyStrategy c_consistentcyStrategy := int1;   // ABANDOND_MEMBER: TS-0004, Table 6.3.4.2.12-1
-//                    const XSD.AnyURI c_targetResourceAddress := "TARGET_RESOURCE_ADDRESS";
-                    const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1";
-                    const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2";
-    
-                    // Local variables
-                    var MsgIn v_response;
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_groupIndex := -1;
             
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-                    var template RequestPrimitive v_createMember;
-         
-                    // Test control
+			//Test objective: Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_MEMBER.
+            group g_CSE_GMG_BV_017 {
+      
+                testcase TC_CSE_GMG_BV_017() runs on CseTester system CseSystem {
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase);
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex := -1;
+					var integer v_groupIndex := -1;
+					var integer v_subGroupIndex := -1;
+					var XSD.AnyURI v_memberID1;
+					var XSD.AnyURI v_memberID2;
+                
+					// Test control
         
-                    // Test component configuration
-                    f_cf01Up();
+					// Test component configuration
+					f_cf01Up();
     
-                    // Test adapter configuration
-        
-                    // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-        
-                    //    and the IUT having a resource at TARGET_RESOURCE_ADDRESS of type <group>
-                    //            containing 
-                    //            memberIDs attribute set to MEMBER_RESOURCE_ADDRESS_1
-                    //            memberType attribute set to RESOURCE_TYPE_1
-                    //            memberTypeValidated attribute set to TRUE
-                    //            consistencyStrategy attribute set to ABANDON_MEMBER
-                    //    and the AE having privileges to perform UPDATE operation on the TARGET_RESOURCE_ADDRESS
-                    v_createRequest := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(1, {c_memberResourceAddress1}, omit);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.memberType := c_memberType1;
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.memberTypeValidated := true;
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.consistencyStrategy := c_consistentcyStrategy;
-                    v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-
-
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_1
-                    //            having resourceType attribute RESOURCE_TYPE_1
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_2
-                    //            having resourceType attribute RESOURCE_TYPE_2
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1");
-                    f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex);
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_2");
-                    f_cse_createResource(c_ResourceType2, v_createMember, v_aeIndex);
+				 	// Test adapter configuration
         
-    
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
+					v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex);
+					v_subGroupIndex :=  f_cse_createResource(int9, m_createGroupBase, v_aeIndex);
+					v_memberID1 := f_getResourceAddress(v_containerIndex);
+					v_memberID2 := f_getResourceAddress(v_subGroupIndex);
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberID1}, omit, int3, omit), v_aeIndex);  //Member type is set to Container (int3) and consistencyStrategy is set to ABANDON MEMBER (default value)
+                	
+					v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {v_memberID2, v_memberID1};
+					v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest);
+					
                     //Test Body
-                    v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest);
-//                    v_request.to_ := c_targetResourceAddress;
-                    v_request.primitiveContent.any_1[0].Group_optional := valueof(m_contentCreateGroup(2, {c_memberResourceAddress1, c_memberResourceAddress2}, omit));
-        
-                    mcaPort.send(m_request(v_request));
+                    
+                    mcaPort.send(m_request(v_updateRequest));
                     tc_ac.start;
                     alt {
-                        [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response {
-                            tc_ac.stop;
+                    	[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response {
+                      		tc_ac.stop;
                             setverdict(pass, testcasename() & ": update successful"); 
                                                           
 							//memberTypeValidated attribute set to TRUE
-							 if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)) {
+							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)) {
 								setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided");    
-							 } else {
+							} 
+							else {
 								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated != true) {
 									setverdict(fail, testcasename(), ": Error, memberTypeValidated must be TRUE");
-								}}
+								}
+							}
 
-                            //memberIDs attribute set to 
-                            //                    MEMBER_RESOURCE_ADDRESS_1
+                            //memberIDs attribute set to v_memberID1
 							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs)){
 								setverdict(fail, testcasename(), ": Error, memberIDs attribute not provided");
-							} else {                               
+							}
+							else {                               
 								if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs) != 1) {
 								   setverdict(fail, testcasename() & ": Error, wrong number of memberIDs attribute");      
 								}                               
-								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != c_memberResourceAddress1){
+								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != v_memberID1){
 									setverdict(fail, testcasename(), ": Error, memberIDs attribute not correct");
 								}
 							}                                   
-                             
                         }
                          [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                              tc_ac.stop;
-                             setverdict(fail, testcasename() & ": Error while retrieving resource");
+                             setverdict(fail, testcasename() & ": Error while updating resource");
                          }
                          [] tc_ac.timeout {
-                             setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+                             setverdict(inconc, testcasename() & ": No answer while updating resource");
                          }
                      }
         
@@ -6755,87 +6586,58 @@ module OneM2M_Testcases {
                 }
             } // end group g_CSE_GMG_BV_017
         
+			//Test objective: Check that the IUT handles unsuccessful validation of the resource type during an update of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_GROUP.
             group g_CSE_GMG_BV_018 {
-                // Test objective: Check that the IUT handles unsuccessful validation of the resource type during the creation of the  <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_GROUP.
-                testcase TC_CSE_GMG_BV_018() runs on CseTester system CseSystem
-                {
-                    //Local constants
-                    const ResourceType c_ResourceTypeGroup := int9;  
-                    const ResourceType c_ResourceType1 := int4; 
-                    const ResourceType c_ResourceType2 := int5; 
-                    const MemberType   c_memberType1   := int4;     // should be set same type as c_ResourceType1
-                    const MemberType   c_memberType2   := int5;     // should be set same type as c_ResourceType2
-                    const XSD.String c_primitiveContent := "primitive_contet";
-                    const ConsistencyStrategy c_consistentcyStrategy := int2;   // ABANDOND_GROUP
-//                    const XSD.AnyURI c_targetResourceAddress := "TARGET_RESOURCE_ADDRESS";
-                    const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1";
-                    const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2";
-    
-                    // Local variables
-                    var MsgIn v_response;
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_groupIndex := -1;
-            
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-                    var template RequestPrimitive v_createMember;
-         
-                    // Test control
-        
-                    // Test component configuration
-                    f_cf01Up();
-    
-                    // Test adapter configuration
-        
-                    // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-        
-                    //    and the IUT having a resource at TARGET_RESOURCE_ADDRESS of type <group>
-                    //            containing 
-                    //            memberIDs attribute set to MEMBER_RESOURCE_ADDRESS_1
-                    //            memberType attribute set to RESOURCE_TYPE_1
-                    //            memberTypeValidated attribute set to TRUE
-                    //            consistencyStrategy attribute set to # (ABANDON_GROUP)
-                    //    and the AE having privileges to perform UPDATE operation on the   
-                    //            TARGET_RESOURCE_ADDRESS
-                    v_createRequest := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(1, {c_memberResourceAddress1}, omit);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.memberType := c_memberType1;
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.memberTypeValidated := true;
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.consistencyStrategy := c_consistentcyStrategy;
-                    v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-        
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_1
-                    //            having resourceType attribute RESOURCE_TYPE_1
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_2
-                    //            having resourceType attribute RESOURCE_TYPE_2
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1");
-                    f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex);
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_2");
-                    f_cse_createResource(c_ResourceType2, v_createMember, v_aeIndex);
-        
-    
+                
+                testcase TC_CSE_GMG_BV_018() runs on CseTester system CseSystem {
+					// Local variables
+                	var MsgIn v_response;
+                	var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase);
+                	var integer v_aeIndex := -1;
+                	var integer v_containerIndex := -1;
+                	var integer v_groupIndex := -1;
+					var integer v_subGroupIndex := -1;
+                	var XSD.AnyURI v_memberID1;
+                	var XSD.AnyURI v_memberID2;
+                                
+                	// Test control
+                        
+                	// Test component configuration
+                	f_cf01Up();
+                    
+                	// Test adapter configuration
+                        
+                	// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
+					v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex);
+					v_subGroupIndex :=  f_cse_createResource(int9, m_createGroupBase, v_aeIndex);
+					v_memberID1 := f_getResourceAddress(v_containerIndex);
+					v_memberID2 := f_getResourceAddress(v_subGroupIndex);
+                	v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberID1}, omit, int3, int2), v_aeIndex);  //Member type is set to Container(int3) and consistencyStrategy is set to ABANDON GROUP (default value)
+                                	
+                	v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {v_memberID2, v_memberID1};
+                	v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest);
+                					
                     //Test Body
-                    v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest);
-//                    v_request.to_ := c_targetResourceAddress;
-                    v_request.primitiveContent.any_1[0].Group_optional := valueof(m_contentCreateGroup(2, {c_memberResourceAddress1, c_memberResourceAddress2}, omit));
-        
-                    mcaPort.send(m_request(v_request));
-                    tc_ac.start;
-                    alt {
-                        [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response {
-                            tc_ac.stop;
-                            setverdict(pass, testcasename() & ": deleted successful");                               
-                        }
-                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
-                             tc_ac.stop;
-                             setverdict(fail, testcasename() & ": Error while retrieving resource");
-                         }
-                         [] tc_ac.timeout {
-                             setverdict(inconc, testcasename() & ": No answer while retrieving resource");
-                         }
-                     }
+					mcaPort.send(m_request(v_updateRequest));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4110))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": unsuccessful validation of the resource type during the creation of the group");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error create succesfull while the operation should be aborted");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while creating resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while creating resource");
+						}
+					}
         
                     //Postamble
                     f_cse_postamble_deleteResources();
@@ -6930,87 +6732,59 @@ module OneM2M_Testcases {
     
                     // Tear down
                     f_cf01Down();
-                }
-            } // end group g_CSE_GMG_BV_019
-
-            group g_CSE_GMG_BV_020 {
-                // Test objective: Check that the IUT detects when the value provided for maxNrOfMembers attribute is less than the value of the currentNrOfMembers attribute.
-                testcase TC_CSE_GMG_BV_020() runs on CseTester system CseSystem
-                {
-                    //Local constants
-                    const ResourceType c_ResourceTypeGroup := int9;  
-                    const ResourceType c_ResourceType1 := int4; 
-                    const MemberType   c_memberType1   := int4;     // should be set same type as c_ResourceType1
-                    const XSD.String c_primitiveContent := "primitive_contet";
-//                    const XSD.AnyURI c_targetResourceAddress := "TARGET_RESOURCE_ADDRESS";
-                    const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1";
-                    const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2";
-                    const XSD.AnyURI c_memberResourceAddress3 := "MEMBER_RESSOURCE_ADDRESS_3";
-    
-                    // Local variables
-                    var MsgIn v_response;
-                    var RequestPrimitive v_request;
-                    var integer v_aeIndex := -1;
-                    var integer v_groupIndex := -1;
-            
-                    var template RequestPrimitive v_createRequest := m_createGroupBase;
-                    var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-                    var template RequestPrimitive v_createMember;
-         
-                    // Test control
-        
-                    // Test component configuration
-                    f_cf01Up();
-    
-                    // Test adapter configuration
-        
-                    // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-        
-                    //    and the IUT having a resource at TARGET_RESOURCE_ADDRESS of type <group>
-                    //            containing 
-                    //            memberIDs attribute set to MEMBER_RESOURCE_ADDRESS_1, 
-                    //                                                        MEMBER_RESOURCE_ADDRESS_2
-                    //            maxNrOfMembers attribute set to 2
-                    //    and the AE having privileges to perform UPDATE operation on the TARGET_RESOURCE_ADDRESS
-                    v_createRequest := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(3, {c_memberResourceAddress1, c_memberResourceAddress2, c_memberResourceAddress3}, omit);
-                    v_createRequest.primitiveContent.any_1[0].Group_optional.maxNrOfMembers := 3;
-                    v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-        
-
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_1
-                    //            having resourceType attribute RESOURCE_TYPE_1
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_2
-                    //            having resourceType attribute RESOURCE_TYPE_1
-                    //      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_3
-                    //            having resourceType attribute RESOURCE_TYPE_1
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1");
-                    f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex);
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_2");
-                    f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex);
-                    v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_3");
-                    f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex);
-        
-    
+                }
+            } // end group g_CSE_GMG_BV_019
+
+			// Test objective: Check that the IUT detects when the value provided for maxNrOfMembers attribute is less than the value of the currentNrOfMembers attribute.
+            group g_CSE_GMG_BV_020 {
+               
+                testcase TC_CSE_GMG_BV_020() runs on CseTester system CseSystem {
+                    // Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase);
+					var integer v_aeIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
+					var XSD.PositiveInteger v_maxNrOfMembers:= 1;
+					
+					v_updateRequest.primitiveContent.any_1[0].Group_optional.maxNrOfMembers := v_maxNrOfMembers;
+					
+					// Test control
+                    
+					// Test component configuration
+					f_cf01Up();
+                    
+					// Test adapter configuration
+                                        
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_memberIDs := {f_getResourceAddress(v_containerIndex1), f_getResourceAddress(v_containerIndex2)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3), v_aeIndex);
+					
+					v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest);
+					
                     //Test Body
-                    v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest);
-//                    v_request.to_ := c_targetResourceAddress;
-                    v_request.primitiveContent.any_1[0].Group_optional.maxNrOfMembers := 2;
-        
-                    mcaPort.send(m_request(v_request));
+                    mcaPort.send(m_request(v_updateRequest));
                     tc_ac.start;
                     alt {
-                        [] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) -> value v_response {
+                        [] mcaPort.receive(mw_response(mw_responsePrimitive(int6010))) -> value v_response {
                             tc_ac.stop;
-                            setverdict(pass, testcasename() & ": operation is not allowed");                             
+                            setverdict(pass, testcasename() & ": max number of member exceeded");                             
                         }
                          [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                              tc_ac.stop;
-                             setverdict(fail, testcasename() & ": Error while retrieving resource");
+                             setverdict(fail, testcasename() & ": Error while updating resource");
                          }
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							 tc_ac.stop;
+							 setverdict(fail, testcasename() & ": Error update successful while operation is not allowed");
+						 }
                          [] tc_ac.timeout {
-                             setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+                             setverdict(inconc, testcasename() & ": No answer while updating resource");
                          }
                      }
         
@@ -7186,24 +6960,687 @@ module OneM2M_Testcases {
                         [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response {
                             tc_ac.stop;
                             
-                                
-                        }
-                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
-                             tc_ac.stop;
-                             setverdict(fail, testcasename() & ": Error while retrieving resource");
-                         }
-                         [] tc_ac.timeout {
-                             setverdict(inconc, testcasename() & ": No answer while retrieving resource");
-                         }
-                     }
-        
-                    //Postamble
-                    f_cse_postamble_deleteResources();
+                                
+                        }
+                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+                             tc_ac.stop;
+                             setverdict(fail, testcasename() & ": Error while retrieving resource");
+                         }
+                         [] tc_ac.timeout {
+                             setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+                         }
+                     }
+        
+                    //Postamble
+                    f_cse_postamble_deleteResources();
+    
+                    // Tear down
+                    f_cf01Down();
+                }
+            } // end group g_CSE_GMG_BV_022
+            
+            
+			group g_CSE_GMG_BV_023 {
+            	
+				testcase TC_CSE_GMG_BV_023_01() runs on CseTester system CseSystem { //Create
+					f_CSE_GMG_BV_023(m_createContainerBase);
+				}//end TC_CSE_GMG_BV_023_01
+
+				testcase TC_CSE_GMG_BV_023_02() runs on CseTester system CseSystem { //Update
+					var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+					var Labels v_labels_1:= {"VALUE_1"};
+					v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1;
+					f_CSE_GMG_BV_023(v_updateRequest);
+				}//end TC_CSE_GMG_BV_023_02
+
+				testcase TC_CSE_GMG_BV_023_03() runs on CseTester system CseSystem { //Retrieve
+					f_CSE_GMG_BV_023(m_retrieveResource("Temporary", "Temporary"));
+				}//end TC_CSE_GMG_BV_023_03
+
+				testcase TC_CSE_GMG_BV_023_04() runs on CseTester system CseSystem { //Delete
+					f_CSE_GMG_BV_023(m_deleteRequest("Temporary"));	
+				}//end TC_CSE_GMG_BV_023_04
+
+				function f_CSE_GMG_BV_023(template RequestPrimitive p_requestPrimitive) runs on CseTester {
+					// Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_acpIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var integer i;
+					var ListOfURIs v_memberIDs;
+					var ListOfURIs v_membersACPIDs;
+					var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, -);
+					
+					// Test control
+					if(not(PICS_ACP_SUPPORT)) {
+						setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case");
+						stop;
+					}
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_memberIDs := {f_getResourceAddress(v_containerIndex1), f_getResourceAddress(v_containerIndex2)};
+					v_membersACPIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3, -, v_membersACPIDs), v_aeIndex); // AE child resource
+					
+					p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
+					p_requestPrimitive.from_ := f_getOriginator(v_groupIndex);
+
+					// Test Body
+
+					mcaPort.send(m_request(valueof(p_requestPrimitive)));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource");
+    
+							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){
+								setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided");
+							}
+							else {
+								for(i:=0; i<lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list); i := i+1){
+									if(not match(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list[i], mw_responsePrimitiveOK)){
+										setverdict(fail, testcasename(), ": Error, one responsePrimitve of aggregatedResponse_list is not successful");
+									}
+								}
+							}                       
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while creating resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while creating resource");
+						}
+					}
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+
+					// Tear down
+					f_cf01Down();                    
+
+				} // end f_CSE_GMG_BV_023
+
+			} // end group g_CSE_GMG_BV_023
+            
+			group g_CSE_GMG_BO_024 {
+            	
+				testcase TC_CSE_GMG_BO_024_01() runs on CseTester system CseSystem { //Create
+					f_CSE_GMG_BO_024(m_createContainerBase, int62);	//c_RUDNDi
+				}//end TC_CSE_GMG_BO_024_01
+
+				testcase TC_CSE_GMG_BO_024_02() runs on CseTester system CseSystem { //Update
+					var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+					var Labels v_labels_1:= {"VALUE_1"};
+					v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1;
+					f_CSE_GMG_BO_024(v_updateRequest, int59);//c_CRDNDi
+				}//end TC_CSE_GMG_BO_024_02
+
+				testcase TC_CSE_GMG_BO_024_03() runs on CseTester system CseSystem { //Retrieve
+					f_CSE_GMG_BO_024(m_retrieveResource("Temporary", "Temporary"), int61);//c_CUDNDi
+				}//end TC_CSE_GMG_BO_024_03
+
+				testcase TC_CSE_GMG_BO_024_04() runs on CseTester system CseSystem { //Delete
+					f_CSE_GMG_BO_024(m_deleteRequest("Temporary"), int55); //c_CRUNDi	
+				}//end TC_CSE_GMG_BO_024_04
+	
+				function f_CSE_GMG_BO_024(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on CseTester {
+				   // Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_acpIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
+					var ListOfURIs v_membersACPIDs;
+					var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, p_accessControlOperations);
+
+					// Test control
+					if(not(PICS_ACP_SUPPORT)) {
+						setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case");
+						stop;
+					}
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+                	
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+    				v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+    				v_memberIDs := {f_getResourceAddress(v_containerIndex1), f_getResourceAddress(v_containerIndex2)};
+					v_membersACPIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3, -, v_membersACPIDs), v_aeIndex); // AE child resource
+   
+					p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
+					p_requestPrimitive.from_ := f_getOriginator(v_groupIndex);
+
+					// Test Body
+
+					mcaPort.send(m_request(valueof(p_requestPrimitive)));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": Update failed due to lack of privilege");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while operation");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error operation successful while doesn't have privileges");
+						}
+						[] mcaPort.receive{
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error, unexpected message received");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while executing operation");
+						}
+					}
+        
+		 			// Postamble
+					f_cse_postamble_deleteResources();
+
+					// Tear down
+					f_cf01Down();                    
+
+				} // end f_CSE_GMG_BO_024
+
+			} // end group g_CSE_GMG_BO_024
+			
+			group g_CSE_GMG_BV_025 {
+            	
+				testcase TC_CSE_GMG_BV_025_01() runs on CseTester system CseSystem { //Create
+					f_CSE_GMG_BV_025(m_createContainerBase);
+				}//end TC_CSE_GMG_BV_025_01
+
+				testcase TC_CSE_GMG_BV_025_02() runs on CseTester system CseSystem { //Update
+					var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+					var Labels v_labels_1:= {"VALUE_1"};
+					v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1;
+					f_CSE_GMG_BV_025(v_updateRequest);
+				}//end TC_CSE_GMG_BV_025_02
+
+				testcase TC_CSE_GMG_BV_025_03() runs on CseTester system CseSystem { //Retrieve
+					f_CSE_GMG_BV_025(m_retrieveResource("Temporary", "Temporary"));
+				}//end TC_CSE_GMG_BV_025_03
+
+				testcase TC_CSE_GMG_BV_025_04() runs on CseTester system CseSystem { //Delete
+					f_CSE_GMG_BV_025(m_deleteRequest("Temporary"));	
+				}//end TC_CSE_GMG_BV_025_04
+
+				function f_CSE_GMG_BV_025(template RequestPrimitive p_requestPrimitive) runs on CseTester {
+					// Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_acpIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var integer i;
+					var ListOfURIs v_memberIDs;
+					var AcpType v_acpIDs;
+					var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, -);
+		
+					// Test control
+					if(not(PICS_ACP_SUPPORT)) {
+						setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case");
+						stop;
+					}
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_memberIDs := {f_getResourceAddress(v_containerIndex1), f_getResourceAddress(v_containerIndex2)};
+					v_acpIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, v_acpIDs, int3), v_aeIndex); // AE child resource
+       
+					p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
+					p_requestPrimitive.from_ := f_getOriginator(v_groupIndex);
+
+					// Test Body
+
+					mcaPort.send(m_request(valueof(p_requestPrimitive)));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource");
+                
+							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){
+								setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided");
+							}
+							else {
+								for(i:=0; i<lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list); i := i+1){
+									if(not match(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list[i], mw_responsePrimitiveOK)){
+										setverdict(fail, testcasename(), ": Error, one responsePrimitve of aggregatedResponse_list is not successful");
+									}
+								}
+							}                       
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while creating resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while creating resource");
+						}
+					}
+		
+					// Postamble
+					f_cse_postamble_deleteResources();
+
+					// Tear down
+					f_cf01Down();                    
+
+				} // end f_CSE_GMG_BV_025
+
+			} // end group g_CSE_GMG_BV_025
+			
+			group g_CSE_GMG_BO_026 {
+            	
+				testcase TC_CSE_GMG_BO_026_01() runs on CseTester system CseSystem { //Create
+					f_CSE_GMG_BO_026(m_createContainerBase, int62);	//c_RUDNDi
+				}//end TC_CSE_GMG_BO_026_01
+
+				testcase TC_CSE_GMG_BO_026_02() runs on CseTester system CseSystem { //Update
+					var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+					var Labels v_labels_1:= {"VALUE_1"};
+					v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1;
+					f_CSE_GMG_BO_026(v_updateRequest, int59);//c_CRDNDi
+				}//end TC_CSE_GMG_BO_026_02
+
+				testcase TC_CSE_GMG_BO_026_03() runs on CseTester system CseSystem { //Retrieve
+					f_CSE_GMG_BO_026(m_retrieveResource("Temporary", "Temporary"), int61);//c_CUDNDi
+				}//end TC_CSE_GMG_BO_026_03
+
+				testcase TC_CSE_GMG_BO_026_04() runs on CseTester system CseSystem { //Delete
+					f_CSE_GMG_BO_026(m_deleteRequest("Temporary"), int55); //c_CRUNDi	
+				}//end TC_CSE_GMG_BO_026_04
+
+				function f_CSE_GMG_BO_026(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on CseTester {
+				   // Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_acpIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
+					var AcpType v_acpIDs;
+					var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, p_accessControlOperations);
+
+					// Test control
+					if(not(PICS_ACP_SUPPORT)) {
+						setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case");
+						stop;
+					}
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+    	
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_memberIDs := {f_getResourceAddress(v_containerIndex1), f_getResourceAddress(v_containerIndex2)};
+					v_acpIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, v_acpIDs, int3), v_aeIndex); // AE child resource
+   
+					p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
+					p_requestPrimitive.from_ := f_getOriginator(v_groupIndex);
+
+					// Test Body
+
+					mcaPort.send(m_request(valueof(p_requestPrimitive)));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": Update failed due to lack of privilege");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while operation");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error operation successful while doesn't have privileges");
+						}
+						[] mcaPort.receive{
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error, unexpected message received");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while executing operation");
+						}
+					}
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+
+					// Tear down
+					f_cf01Down();                    
+
+				} // end f_CSE_GMG_BO_026
+
+			} // end group g_CSE_GMG_BO_026
+			
+			group g_CSE_GMG_BV_027 {
+            	
+				testcase TC_CSE_GMG_BV_027_01() runs on CseTester system CseSystem { //Create
+					var template PrimitiveContent v_contentResponse;
+					v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1;
+					
+					f_CSE_GMG_BV_027(m_createContainerBase, v_contentResponse);
+				}//end TC_CSE_GMG_BV_027_01
+
+				testcase TC_CSE_GMG_BV_027_02() runs on CseTester system CseSystem { //Update
+					var template RequestPrimitive v_updateRequest := m_updateAeBase;
+					var template PrimitiveContent v_contentResponse;
+					var Labels v_labels_1:= {"VALUE_1"};
+    				v_contentResponse.any_1[0].AE_optional := mw_contentAe_allOmit; // TODO make a new template with all attributes set to * for exemple
+					v_contentResponse.any_1[0].AE_optional.labels := ?;
+					v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1;
+					
+					f_CSE_GMG_BV_027(v_updateRequest, v_contentResponse);
+				}//end TC_CSE_GMG_BV_027_02
+
+				testcase TC_CSE_GMG_BV_027_03() runs on CseTester system CseSystem { //Retrieve
+					var template PrimitiveContent v_contentResponse;
+					v_contentResponse.any_1[0].AE_optional := mw_contentAeBase;
+					
+					f_CSE_GMG_BV_027(m_retrieveResource("Temporary", "Temporary"), v_contentResponse);
+				}//end TC_CSE_GMG_BV_027_03
+
+				testcase TC_CSE_GMG_BV_027_04() runs on CseTester system CseSystem { //Delete
+					var template PrimitiveContent v_contentResponse;
+					v_contentResponse.any_1[0].AE_optional := mw_contentAeBase;// TODO see with wath should it be matched
+					
+					f_CSE_GMG_BV_027(m_deleteRequest("Temporary"), v_contentResponse);	
+				}//end TC_CSE_GMG_BV_027_04
+
+				function f_CSE_GMG_BV_027(template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester {
+					//Local constants
+					const integer c_numberOfResponsePrimitive := 2;
+					
+				   // Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex1 := -1;
+					var integer v_aeIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
+					var integer i;
+					
+					// Test control
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex1 := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_aeIndex2 := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", omit), -1); // AE2 is registred
+					v_memberIDs := {f_getResourceAddress(v_aeIndex1), f_getResourceAddress(v_aeIndex2)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2), -1);
+   
+					p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt";
+					p_requestPrimitive.from_ := f_getOriginator(v_aeIndex1); //TODO see if it is correct or if we have to use PX_SUPER_ADMIN
+
+					// Test Body
+
+					mcaPort.send(m_request(valueof(p_requestPrimitive)));
+					tc_ac.start;
+				  	alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource");
+                            
+							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){
+								setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided");
+							}
+							else{
+								if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list) != c_numberOfResponsePrimitive){
+									setverdict(fail, testcasename(), ": Error, length of aggregatedResponse is not valid");
+								}
+								else{
+        							for(i:=0; i<c_numberOfResponsePrimitive; i:=i+1){
+        								if(not match(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list[i].primitiveContent, p_contentResponse)){
+        									setverdict(fail, testcasename(), ": Error, aggregatedResponse doesn't match with template expected");
+        								}
+        							}
+								}
+							}                            
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while creating resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while creating resource");
+						}
+					}
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+
+					// Tear down
+					f_cf01Down();                    
+
+				} // end f_CSE_GMG_BV_027
+
+			} // end group g_CSE_GMG_BV_027
+			
+			group g_CSE_GMG_BV_028 {
+            	
+				testcase TC_CSE_GMG_BV_028() runs on CseTester system CseSystem {
+					//Local constants
+					const integer c_numberOfResponsePrimitive := 2;
+		
+					// Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex1 := -1;
+					var integer v_aeIndex2 := -1;
+					var integer v_acpIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var integer i;
+					var ListOfURIs v_memberIDs;
+					var ListOfURIs v_membersACPIDs;
+					var RequestPrimitive v_createRequest := valueof(m_createContentInstance("NotInitialized", "Value1"));
+					var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, -);
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].ContentInstance_optional := mw_contentContentInstanceBase;
+					
+					// Test control
+					if(not(PICS_ACP_SUPPORT)) {
+						setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case");
+						stop;
+					}
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex1 := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_aeIndex2 := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", omit), -1); // AE2 is registred
+					v_acpIndex := f_cse_createResource(int1, v_createAcp, -1); // AE child resource
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex1); // AE1 child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex2); // AE2 child resource
+					v_memberIDs := {f_getResourceAddress(v_aeIndex1), f_getResourceAddress(v_aeIndex2)};
+					v_membersACPIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2, -, v_membersACPIDs), -1);
+   
+					v_createRequest.to_ := f_getResourceAddress(v_groupIndex) & "/fopt" & "/myCon";
+					v_createRequest.from_ := f_getOriginator(v_aeIndex1); //TODO see if it is correct or if we have to use PX_SUPER_ADMIN
+
+					// Test Body
+
+					mcaPort.send(m_request(v_createRequest));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource");
+                
+							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){
+								setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided");
+							}
+							else{
+								if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list) != c_numberOfResponsePrimitive){
+									setverdict(fail, testcasename(), ": Error, length of aggregatedResponse is not valid");
+								}
+								else{
+									for(i:=0; i<c_numberOfResponsePrimitive; i:=i+1){
+										if(not match(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list[i].primitiveContent, v_contentResponse)){
+											setverdict(fail, testcasename(), ": Error, aggregatedResponse doesn't match with template expected");
+										}
+									}
+								}
+							}                            
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while creating resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while creating resource");
+						}
+					}
+		
+					// Postamble
+					f_cse_postamble_deleteResources();
+
+					// Tear down
+					f_cf01Down();                    
+
+				} // end f_CSE_GMG_BV_028
+
+			} // end group g_CSE_GMG_BV_028
+			
+			group g_CSE_GMG_BV_029 {
+            	
+				testcase TC_CSE_GMG_BV_029() runs on CseTester system CseSystem {
+					//Local constants
+					const integer c_numberOfResponsePrimitive := 2;
+
+					// Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex1 := -1;
+					var integer v_aeIndex2 := -1;
+					var integer v_acpIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
+					var integer v_groupIndex := -1;
+					var integer i;
+					var ListOfURIs v_memberIDs;
+					var ListOfURIs v_membersACPIDs;
+					var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, -);
+					var template PrimitiveContent v_contentResponse;
+					var XSD.AnyURI v_fanoutPointAddress;
+		
+					v_contentResponse.any_1[0].Container_optional := mw_contentContainerBase;
+		
+					// Test control
+					if(not(PICS_ACP_SUPPORT)) {
+						setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case");
+						stop;
+					}
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex1 := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
+					v_aeIndex2 := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", omit), -1); // AE2 is registred
+					v_acpIndex := f_cse_createResource(int1, v_createAcp, -1); // AE child resource
+					v_containerIndex1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex1); // AE1 child resource
+					v_containerIndex2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex2); // AE2 child resource
+					v_memberIDs := {f_getResourceAddress(v_aeIndex1), f_getResourceAddress(v_aeIndex2)};
+					v_membersACPIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
+					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2, -, v_membersACPIDs), -1);
+   
+					v_fanoutPointAddress := f_getResourceAddress(v_groupIndex) & "/fopt" & "/myCon" & "/la";
+					
+					// Test Body
+					mcaPort.send(m_request(m_retrieveResource(v_fanoutPointAddress, f_getOriginator(v_aeIndex1)))); //TODO see if it is correct or if we have to use PX_SUPER_ADMIN
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource");
     
-                    // Tear down
-                    f_cf01Down();
-                }
-            } // end group g_CSE_GMG_BV_022
+							if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){
+								setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided");
+							}
+							else{
+								if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list) != c_numberOfResponsePrimitive){
+									setverdict(fail, testcasename(), ": Error, length of aggregatedResponse is not valid");
+								}
+								else{
+									for(i:=0; i<c_numberOfResponsePrimitive; i:=i+1){
+										if(not match(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list[i].primitiveContent, v_contentResponse)){
+											setverdict(fail, testcasename(), ": Error, aggregatedResponse doesn't match with template expected");
+										}
+									}
+								}
+							}                            
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while creating resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while creating resource");
+						}
+					}
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+
+					// Tear down
+					f_cf01Down();                    
+
+				} // end f_CSE_GMG_BV_029
+
+			} // end group g_CSE_GMG_BV_029
             
         } // end group Group_Managment
 		
@@ -7653,7 +8090,9 @@ module OneM2M_Testcases {
 					
 					v_request:= f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex);
 					
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 
 					// Test Body
 					v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs
@@ -7677,6 +8116,8 @@ module OneM2M_Testcases {
     						setverdict(inconc, testcasename() & ": No answer while creating resource type int3 (Container)");
     					}
     				}
+    				
+					f_is_component_done(v_notifyHandler);
     							
 					//Postamble
 					f_cse_postamble_deleteResources();
@@ -7720,7 +8161,9 @@ module OneM2M_Testcases {
 
 					v_deleteRequest:= valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex))); // Ae delete request
 					
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 
 					//Test Body
 					v_notifyHandler.start(f_CSE_SUB_BV_008(v_contentResponse)); // check if the notification is well received and if its content matchs
@@ -7744,6 +8187,8 @@ module OneM2M_Testcases {
 							setverdict(inconc, testcasename() & ": No answer while deleting resource type int2 (AE)");
 						}
 					}
+					
+					f_is_component_done(v_notifyHandler);
 
 					//Postamble
 					f_cse_postamble_deleteResources();
@@ -7824,7 +8269,9 @@ module OneM2M_Testcases {
 
 					v_deleteRequest := valueof(m_deleteRequest(f_getResourceAddress(v_containerResourceIndex)));// Container deletion request
 					
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 
 					//Test Body
 					v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs
@@ -7849,6 +8296,8 @@ module OneM2M_Testcases {
 						}
 					}	
 
+					f_is_component_done(v_notifyHandler);
+
 					//Postamble
 					f_cse_postamble_deleteResources();
 
@@ -7904,7 +8353,9 @@ module OneM2M_Testcases {
 			
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest);
 			
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 			
 					// Test Body
 					v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs
@@ -7930,6 +8381,8 @@ module OneM2M_Testcases {
 						}
 					}	
 
+					f_is_component_done(v_notifyHandler);
+
 					//Postamble
 					f_cse_postamble_deleteResources();
 
@@ -8045,7 +8498,9 @@ module OneM2M_Testcases {
 					
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); // Subscription
 					
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 					
 					// Test Body
 					v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs
@@ -8081,6 +8536,8 @@ module OneM2M_Testcases {
 							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
 						}
 					}
+					
+					f_is_component_done(v_notifyHandler);
 
 					//Postamble
 					f_cse_postamble_deleteResources();
@@ -8126,12 +8583,12 @@ module OneM2M_Testcases {
 					
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);// Subscription
 
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 	
 					// Test Body
-					
 					v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs
-
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // AE update request
 					f_cse_updateResource(v_request); // AE update
 					
@@ -8158,6 +8615,8 @@ module OneM2M_Testcases {
 							setverdict(inconc, testcasename() & ": No answer while retrieving Subscription Resource");
 						}
 					}
+					
+					f_is_component_done(v_notifyHandler);
 
 					//Postamble
 					f_cse_postamble_deleteResources();
@@ -8206,7 +8665,9 @@ module OneM2M_Testcases {
 
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request
 					
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 			
 					// Test Body
 					v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs
@@ -8230,6 +8691,8 @@ module OneM2M_Testcases {
 							setverdict(inconc, testcasename() & ": No answer while updating resource type int2 (Ae) or None notification received");
 						}
 					}	
+					
+					f_is_component_done(v_notifyHandler);
 
 					//Postamble
 					f_cse_postamble_deleteResources();
@@ -8276,7 +8739,9 @@ module OneM2M_Testcases {
 
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request
 
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 
 					// Test Body
 					v_notifyHandler.start(f_CSE_SUB_BV_016()); // check that no notification is received
@@ -8297,6 +8762,8 @@ module OneM2M_Testcases {
 						}
 					}	
 
+					f_is_component_done(v_notifyHandler);
+
 					//Postamble
 					f_cse_postamble_deleteResources();
 
@@ -8359,7 +8826,9 @@ module OneM2M_Testcases {
 					
 					v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex))); // Subscription resource deletion request
 					
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 
 					// Test Body
 					v_notifyHandler.start(f_CSE_SUB_BV_017(f_getResourceAddress(v_resourceIndex))); // check that no notification is received
@@ -8382,6 +8851,8 @@ module OneM2M_Testcases {
 							setverdict(inconc, testcasename() & ": No answer while deleting resource type int23 (Subscription)");
 						}
 					}	
+					
+					f_is_component_done(v_notifyHandler);
 
 					//Postamble
 					f_cse_postamble_deleteResources();
@@ -8462,7 +8933,9 @@ module OneM2M_Testcases {
 
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
 					
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 
 					// Test Body
 					v_notifyHandler.start(f_CSE_SUB_BV_018(v_contentResponse, numberOfAggregatedNotification)); // check that no notification is received
@@ -8479,6 +8952,8 @@ module OneM2M_Testcases {
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3
 					f_cse_updateResource(v_request);
 
+					f_is_component_done(v_notifyHandler);
+
 					//Postamble
 					f_cse_postamble_deleteResources();
 
@@ -8561,7 +9036,9 @@ module OneM2M_Testcases {
 
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
 					
-					f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 
 					// Test Body
 					v_notifyHandler.start(f_CSE_SUB_BV_018(v_contentResponse, 2)); // check that no notification is received
@@ -8574,6 +9051,8 @@ module OneM2M_Testcases {
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2
 					f_cse_updateResource(v_request);
 
+					f_is_component_done(v_notifyHandler);
+
 					//Postamble
 					f_cse_postamble_deleteResources();
 
@@ -8624,7 +9103,9 @@ module OneM2M_Testcases {
             		
             		v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
             					
-            		f_is_component_done(v_notifyHandler);
+					if(v_notifyHandler.running) {
+						v_notifyHandler.stop;
+					};
 					
 					// Test Body
 					v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs
@@ -8641,6 +9122,8 @@ module OneM2M_Testcases {
             		v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3
 					f_cse_updateResource(v_request);
 					
+					f_is_component_done(v_notifyHandler);
+					
             		//Postamble
             		f_cse_postamble_deleteResources();