diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index eb65a75716f892b7c04ae09c572a0d215fb4c892..6ac8d050717d20eae31728d126237d1cd72ece0d 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/branches/Release1/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 175 2016-11-22 12:39:39Z reinaortega $
+ *              $Id: OneM2M_Functions.ttcn 183 2016-11-25 13:31:34Z reinaortega $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -712,7 +712,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);
@@ -721,7 +721,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
@@ -741,7 +743,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 46bc8acffbe73018972cc7008e795e01da80eff9..64ab4b5a0a2cedad902ed89fe34a919190b033a3 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/branches/Release1/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
- *              $Id: OneM2M_Templates.ttcn 175 2016-11-22 12:39:39Z reinaortega $
+ *              $Id: OneM2M_Templates.ttcn 183 2016-11-25 13:31:34Z reinaortega $
  *  @desc       Module containing templates for oneM2M
  *
  */
@@ -473,15 +473,19 @@ module OneM2M_Templates {
 				}
 			};
         	
-			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,
-				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
-				}
-			};
+			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 (p_maxNrOfMembers, p_memberIds, p_accessControlPolicyIDs, p_memberType, p_consistencyStrategy, p_membersAccessControlPolicyIDs, p_name)}}	//TODO: p_resourceId
+            	}
+            };
         	
        	
 			/**
@@ -820,38 +824,41 @@ module OneM2M_Templates {
 		}
     	
 		/**
-		 * @desc Base primitiveContent for CREATE operation for Group resource
-		 * @param p_maxNrOfMembers Max number of members
-		 * @param p_memberIds Member IDs
-		 * @param p_accessControlPolicyIDs ACP IDs for the Group
-		 * @param p_name Resource name
-		 */
-		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) XSD.String p_name := c_defaultResourceName) := {
-			resourceName := p_name,//O
-			resourceType := omit,//NP
-			resourceID := omit,//NP
-			parentID := omit,//NP
-			creationTime := omit,//NP
-			lastModifiedTime := omit,//NP
-			labels := omit,//O
-			accessControlPolicyIDs := p_accessControlPolicyIDs,//O
-			expirationTime := omit,//O
-			announceTo := omit,//O
-			announcedAttribute := omit,//O
-			creator := omit,//O
-			memberType := omit,//O
-			currentNrOfMembers := omit,//NP
-			maxNrOfMembers := p_maxNrOfMembers,//M
-			memberIDs := p_memberIds,//M
-			membersAccessControlPolicyIDs := omit,//O
-			memberTypeValidated := omit,//NP
-			consistencyStrategy := omit,//O
-			groupName := omit,//O
-			choice := omit//NP
-		};    	
+			 * @desc Base primitiveContent for CREATE operation for Group resource
+			 * @param p_maxNrOfMembers Max number of members
+			 * @param p_memberIds Member IDs
+			 * @param p_accessControlPolicyIDs ACP IDs for the Group
+			 * @param p_name Resource name
+			 */
+			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
+				resourceID := omit,//NP
+				parentID := omit,//NP
+				creationTime := omit,//NP
+				lastModifiedTime := omit,//NP
+				labels := omit,//O
+				accessControlPolicyIDs := p_accessControlPolicyIDs,//O
+				expirationTime := omit,//O
+				announceTo := omit,//O
+				announcedAttribute := omit,//O
+				creator := omit,//O
+				memberType := p_memberType,//O
+				currentNrOfMembers := omit,//NP
+				maxNrOfMembers := p_maxNrOfMembers,//M
+				memberIDs := p_memberIds,//M
+				membersAccessControlPolicyIDs := p_membersAccessControlPolicyIDs,//O
+				memberTypeValidated := omit,//NP
+				consistencyStrategy := p_consistencyStrategy,//O
+				groupName := omit,//O
+				choice := omit//NP
+			};    	
     	
 		/**
 		 * @desc Base primitiveContent for CREATE operation for PollingChannel resource
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index ce5457e75bfb7f9c2188030930dec619332798a8..0405b6b4396105bf2b32c45582c3c311752c5305 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/branches/Release1/ttcn/OneM2M_Testcases.ttcn $
- *              $Id: OneM2M_Testcases.ttcn 175 2016-11-22 12:39:39Z reinaortega $
+ *              $Id: OneM2M_Testcases.ttcn 183 2016-11-25 13:31:34Z reinaortega $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -5403,29 +5403,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
@@ -5449,10 +5446,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");
 						}
 					}
                                     
@@ -5465,36 +5466,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();
@@ -5502,15 +5496,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 {
@@ -5520,7 +5516,11 @@ 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");
@@ -5535,76 +5535,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;
-                                	
+				testcase TC_CSE_GMG_BV_003() runs on CseTester system CseSystem {
 					// Local variables
 					var MsgIn v_response;
-					var RequestPrimitive v_request;
 					var integer v_aeIndex := -1;
+					var integer v_containerIndex1 := -1;
+					var integer v_containerIndex2 := -1;
 					var integer v_acpIndex := -1;
-					var integer v_groupResourceIndex := -1;
-                                												
-                                
-					var template RequestPrimitive v_createRequest := m_createGroupBase;
+					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(c_acpName, c_acpName, c_acor, c_allowedOperations);
-                                
-                                	
+					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();
-                                	
+                	
 					// 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);
-                	
-                                		   
+					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
-					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");                            
+							setverdict(pass, testcasename() & ": Update failed due to lack of privilege");                            
 						}
 						[] 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 doesn't have privileges for retrieving resource");
 						}
 						[] tc_ac.timeout {
-							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+							setverdict(inconc, testcasename() & ": No answer while updating resource");
 						}
 					}
-                                					
+                					
 					// Postamble
 					f_cse_postamble_deleteResources();
-                                	
+                	
 					// Tear down
-					f_cf01Down();        
+					f_cf01Down();             
 				}
             
 			} // end group g_CSE_GMG_BV_003
@@ -5614,18 +5613,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";
@@ -5633,10 +5622,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
@@ -5655,7 +5650,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");
 						}
@@ -5663,6 +5658,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");
 						}
@@ -5683,27 +5682,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
@@ -5712,11 +5701,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));
@@ -5728,14 +5721,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");
 						}
 					}
                                     
@@ -5754,27 +5754,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);
+				testcase TC_CSE_GMG_BV_006() runs on CseTester system CseSystem {
 					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 <---------------------------------------
-                                                    
-                    
+					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
@@ -5783,12 +5772,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 {
@@ -5798,7 +5791,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");
@@ -5823,27 +5823,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 RequestPrimitive v_updateRequest := valueof(m_updateContainerBase);
 					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 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
@@ -5852,27 +5845,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;
@@ -5898,26 +5897,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 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
@@ -5926,30 +5916,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");
 						}
 					}
                                     
@@ -5968,17 +5967,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
                     
@@ -5988,28 +5983,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;
@@ -6035,24 +6028,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
@@ -6062,29 +6044,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)){
 								setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided");
-							} else {
-								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated == false){
+							}
+							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;
@@ -6110,22 +6088,13 @@ 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;
+				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_resourceIndex := -1;
-					var RequestPrimitive v_request;
-                    
-					var template RequestPrimitive v_createRequest := m_createGroupBase;
-                                                    
+					var integer v_containerIndex := -1;
+                
 					// Test control
                     
 					// Test component configuration
@@ -6135,27 +6104,23 @@ 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.memberType := c_RessourceType2;
-					v_request.primitiveContent.any_1[0].Group_optional.consistencyStrategy := int3; // MIXED
-                                                            
-                        
-					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, 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");
 								}
@@ -6163,12 +6128,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;
@@ -6194,22 +6159,15 @@ 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";
-                
-//					Local variables
+				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_resourceIndex := -1;
-					var template RequestPrimitive v_createRequest := m_createGroupBase;
-					//var ResponsePrimitive.primitiveContent v_responsePrimitive; // not used anymore -> issue #5
-                                    
+					var integer v_containerIndex := -1;
+					var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
+                
 					// Test control
                     
 					// Test component configuration
@@ -6219,19 +6177,21 @@ module OneM2M_Testcases {
                                         
 					// 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)));
+					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 {
@@ -6242,9 +6202,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");
 								}
 							}
 						}
@@ -6273,53 +6234,48 @@ module OneM2M_Testcases {
 			// ABANDON_GROUP.
 			group g_CSE_GMG_BV_013 {
                 
-				testcase TC_CSE_GMG_BV_013() 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";
-                
-//					Local variables
+				testcase TC_CSE_GMG_BV_013() 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;
-                    
-					var template RequestPrimitive v_createRequest := m_createGroupBase;
-                                            
-                    
+					var integer v_containerIndex := -1;
+					var integer v_groupIndex := -1;
+					var ListOfURIs v_memberIDs;
+
 					// Test control
-                    
+    
 					// Test component configuration
 					f_cf01Up();
-                    
+    
 					// 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)));
+					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 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");
 						}
 					}
                     
@@ -6337,26 +6293,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
@@ -6365,61 +6312,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");
 						 }
 					 }
                     
@@ -6431,68 +6360,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_containerIndex1 := -1;
+					var integer v_containerIndex2 := -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);
+					
 					// 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));
+					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 {
@@ -6501,7 +6398,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");  
 								}
@@ -6509,10 +6407,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");
 						 }
 					 }
         
@@ -6524,33 +6422,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 RequestPrimitive v_updateRequest := valueof(m_updateGroupBase);
 					var integer v_aeIndex := -1;
+					var integer v_containerIndex := -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 integer v_subGroupIndex := -1;
+					var XSD.AnyURI v_memberID1;
+					var XSD.AnyURI v_memberID2;
+                
 					// Test control
         
 					// Test component configuration
@@ -6560,45 +6446,17 @@ module OneM2M_Testcases {
         
 					// 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_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 {
@@ -6606,30 +6464,34 @@ module OneM2M_Testcases {
 							setverdict(pass, testcasename() & ": update successful");                              
                              
 							//memberTypeValidated attribute set to FALSE
-							 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 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();
@@ -6638,33 +6500,21 @@ module OneM2M_Testcases {
 					f_cf01Down();
 				}
 			} // end group g_CSE_GMG_BV_016 
-        
+            
+			//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 {
-				// 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";
-    
+      
+				testcase TC_CSE_GMG_BV_017() runs on CseTester system CseSystem {
 					// Local variables
 					var MsgIn v_response;
-					var RequestPrimitive v_request;
+					var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase);
 					var integer v_aeIndex := -1;
+					var integer v_containerIndex := -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 integer v_subGroupIndex := -1;
+					var XSD.AnyURI v_memberID1;
+					var XSD.AnyURI v_memberID2;
+                
 					// Test control
         
 					// Test component configuration
@@ -6674,38 +6524,18 @@ module OneM2M_Testcases {
         
 					// 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);
-        
-    
+					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 {
@@ -6713,33 +6543,34 @@ module OneM2M_Testcases {
 							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");
 						 }
 					 }
         
@@ -6751,87 +6582,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";
-    
+                
+				testcase TC_CSE_GMG_BV_018() runs on CseTester system CseSystem {
 					// Local variables
 					var MsgIn v_response;
-					var RequestPrimitive v_request;
+					var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase);
 					var integer v_aeIndex := -1;
+					var integer v_containerIndex := -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 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
-        
-					//    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);
-        
-    
+					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));
+					mcaPort.send(m_request(v_updateRequest));
 					tc_ac.start;
 					alt {
-						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4110))) -> value v_response {
 							tc_ac.stop;
-							setverdict(pass, testcasename() & ": deleted successful");                               
+							setverdict(pass, testcasename() & ": unsuccessful validation of the resource type during the creation of the group");
 						}
-						 [] 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_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();
@@ -6929,19 +6731,80 @@ module OneM2M_Testcases {
 				}
 			} // 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 {
-				// 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
+               
+				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
+					mcaPort.send(m_request(v_updateRequest));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int6010))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": max number of member exceeded");                             
+						}
+						 [] 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 operation is not allowed");
+						 }
+						 [] 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_020
+
+			group g_CSE_GMG_BV_021 {
+				// Test objective: Check that the IUT handles validation of the resource type during an UPDATE of the <group> resource when memberIDs contains a sub-group on a temporarily unreachable Hosting CSE.
+				testcase TC_CSE_GMG_BV_021() 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 ConsistencyStrategy c_consistentcyStrategy := int1;   // ABANDOND_MEMBER
 //					  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;
@@ -6962,44 +6825,52 @@ module OneM2M_Testcases {
         
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
+//					TODO: -> register IUT to the remoteCSE
         
-					//    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_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_1
-					//      and the IUT having a resource at MEMBER_RESOURCE_ADDRESS_3
-					//            having resourceType attribute RESOURCE_TYPE_1
+					// TODO: -> do the resources actually need to be created?
+					// TODO: choose the right template for member resource
 					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);
+                    
+					// TODO: create resource of type <group> at c_memberResourceAddress2 on remoteCSE
+					// TODO: set onlineStatus to false on remoteCSE
         
     
 					//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;
+					v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(2, {c_memberResourceAddress1, c_memberResourceAddress2}, omit);
         
 					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(int2004))) -> value v_response {
 							tc_ac.stop;
-							setverdict(pass, testcasename() & ": operation is not allowed");                             
+                            
+							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) {
+									if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs) != 2) {
+										setverdict(fail, testcasename() & ": Error, wrong number of memberIDs attribute"); 
+									} else {
+										if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] == c_memberResourceAddress1 and v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[1] == c_memberResourceAddress2) {
+											setverdict(pass, testcasename() & ": update successful");       
+										} else {
+											setverdict(fail, testcasename(), ": Error, wrong memberIDs");   
+										}
+									}
+								} else {
+									setverdict(fail, testcasename(), ": Error, memberTypeValidated must be set to FALSE");  
+								}   
+							}                            
 						}
 						 [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 							 tc_ac.stop;
@@ -7016,11 +6887,11 @@ module OneM2M_Testcases {
 					// Tear down
 					f_cf01Down();
 				}
-			} // end group g_CSE_GMG_BV_020
+			} // end group g_CSE_GMG_BV_021
 
-			group g_CSE_GMG_BV_021 {
-				// Test objective: Check that the IUT handles validation of the resource type during an UPDATE of the <group> resource when memberIDs contains a sub-group on a temporarily unreachable Hosting CSE.
-				testcase TC_CSE_GMG_BV_021() runs on CseTester system CseSystem
+			group g_CSE_GMG_BV_022 {
+				// Test objective: Check that the IUT handles validation of the resource type during an UPDATE of the <group> resource when memberIDs contains a sub-group on a  a previously unreachable Hosting CSE that has become reachable
+				testcase TC_CSE_GMG_BV_022() runs on CseTester system CseSystem
 				{
 					//Local constants
 					const ResourceType c_ResourceTypeGroup := int9;  
@@ -7036,6 +6907,7 @@ module OneM2M_Testcases {
 					var MsgIn v_response;
 					var RequestPrimitive v_request;
 					var integer v_aeIndex := -1;
+					var integer v_remoteCSEIndex := -1;
 					var integer v_groupIndex := -1;
             
 					var template RequestPrimitive v_createRequest := m_createGroupBase;
@@ -7052,14 +6924,17 @@ module OneM2M_Testcases {
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
 //					TODO: -> register IUT to the remoteCSE
+					//v_remoteCSEIndex := ...
         
 					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 := m_contentCreateGroup(2, {c_memberResourceAddress1, c_memberResourceAddress2}, 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.memberTypeValidated := false;
 					v_createRequest.primitiveContent.any_1[0].Group_optional.consistencyStrategy := c_consistentcyStrategy;
 					v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
         
+					// TODO: -> the AE having a subscription to c_targetResourceAddress 
+        
 					// TODO: -> do the resources actually need to be created?
 					// TODO: choose the right template for member resource
 					v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1");
@@ -7071,135 +6946,697 @@ module OneM2M_Testcases {
     
 					//Test Body
 					v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest);
-//					  v_request.to_ := c_targetResourceAddress;
-					v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(2, {c_memberResourceAddress1, c_memberResourceAddress2}, omit);
+					//v_request.from_ := CSE-ID
+					v_request.to_ := f_getResourceAddress(v_remoteCSEIndex);
+					//Content set to <remoteCSE> resource containing onlineStatus := false;
         
 					mcaPort.send(m_request(v_request));
 					tc_ac.start;
 					alt {
-						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response {
+						[] 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();
+    
+					// 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;
-                            
-							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) {
-									if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs) != 2) {
-										setverdict(fail, testcasename() & ": Error, wrong number of memberIDs attribute"); 
-									} else {
-										if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] == c_memberResourceAddress1 and v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[1] == c_memberResourceAddress2) {
-											setverdict(pass, testcasename() & ": update successful");       
-										} else {
-											setverdict(fail, testcasename(), ": Error, wrong memberIDs");   
+							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");
 										}
 									}
-								} else {
-									setverdict(fail, testcasename(), ": Error, memberTypeValidated must be set to FALSE");  
-								}   
+								}
 							}                            
 						}
-						 [] 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
+						[] 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 group g_CSE_GMG_BV_021
+					f_cf01Down();                    
 
-			group g_CSE_GMG_BV_022 {
-				// Test objective: Check that the IUT handles validation of the resource type during an UPDATE of the <group> resource when memberIDs contains a sub-group on a  a previously unreachable Hosting CSE that has become reachable
-				testcase TC_CSE_GMG_BV_022() runs on CseTester system CseSystem
-				{
+				} // 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 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 ConsistencyStrategy c_consistentcyStrategy := int1;   // ABANDOND_MEMBER
-//					  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 integer c_numberOfResponsePrimitive := 2;
+
 					// Local variables
 					var MsgIn v_response;
-					var RequestPrimitive v_request;
-					var integer v_aeIndex := -1;
-					var integer v_remoteCSEIndex := -1;
+					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 template RequestPrimitive v_createRequest := m_createGroupBase;
-					var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-					var template RequestPrimitive v_createMember;
-         
+					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_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-//					TODO: -> register IUT to the remoteCSE
-					//v_remoteCSEIndex := ...
-        
-					v_createRequest := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-					v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(2, {c_memberResourceAddress1, c_memberResourceAddress2}, omit);
-					v_createRequest.primitiveContent.any_1[0].Group_optional.memberType := c_memberType1;
-					v_createRequest.primitiveContent.any_1[0].Group_optional.memberTypeValidated := false;
-					v_createRequest.primitiveContent.any_1[0].Group_optional.consistencyStrategy := c_consistentcyStrategy;
-					v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex);
-        
-					// TODO: -> the AE having a subscription to c_targetResourceAddress 
-        
-					// TODO: -> do the resources actually need to be created?
-					// TODO: choose the right template for member resource
-					v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1");
-					f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex);
-                    
-					// TODO: create resource of type <group> at c_memberResourceAddress2 on remoteCSE
-					// TODO: set onlineStatus to false on remoteCSE
-        
-    
-					//Test Body
-					v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest);
-					//v_request.from_ := CSE-ID
-					v_request.to_ := f_getResourceAddress(v_remoteCSEIndex);
-					//Content set to <remoteCSE> resource containing onlineStatus := false;
-        
-					mcaPort.send(m_request(v_request));
+					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_responsePrimitive(int2004))) -> value v_response {
+						[] 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 retrieving resource");
-						 }
-						 [] tc_ac.timeout {
-							 setverdict(inconc, testcasename() & ": No answer while retrieving resource");
-						 }
-					 }
-        
-					//Postamble
+						[] 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 group g_CSE_GMG_BV_022
+					f_cf01Down();                    
+
+				} // end f_CSE_GMG_BV_029
+
+			} // end group g_CSE_GMG_BV_029
             
 		} // end group Group_Managment
 		
@@ -7649,7 +8086,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
@@ -7673,6 +8112,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();
@@ -7716,7 +8157,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
@@ -7740,6 +8183,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();
@@ -7820,7 +8265,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
@@ -7845,6 +8292,8 @@ module OneM2M_Testcases {
 						}
 					}	
 
+					f_is_component_done(v_notifyHandler);
+
 					//Postamble
 					f_cse_postamble_deleteResources();
 
@@ -7900,7 +8349,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
@@ -7926,6 +8377,8 @@ module OneM2M_Testcases {
 						}
 					}	
 
+					f_is_component_done(v_notifyHandler);
+
 					//Postamble
 					f_cse_postamble_deleteResources();
 
@@ -8041,7 +8494,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
@@ -8077,6 +8532,8 @@ module OneM2M_Testcases {
 							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
 						}
 					}
+					
+					f_is_component_done(v_notifyHandler);
 
 					//Postamble
 					f_cse_postamble_deleteResources();
@@ -8122,12 +8579,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
 					
@@ -8154,6 +8611,8 @@ module OneM2M_Testcases {
 							setverdict(inconc, testcasename() & ": No answer while retrieving Subscription Resource");
 						}
 					}
+					
+					f_is_component_done(v_notifyHandler);
 
 					//Postamble
 					f_cse_postamble_deleteResources();
@@ -8202,7 +8661,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
@@ -8226,6 +8687,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();
@@ -8272,7 +8735,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
@@ -8293,6 +8758,8 @@ module OneM2M_Testcases {
 						}
 					}	
 
+					f_is_component_done(v_notifyHandler);
+
 					//Postamble
 					f_cse_postamble_deleteResources();
 
@@ -8355,7 +8822,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
@@ -8378,6 +8847,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();
@@ -8458,7 +8929,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
@@ -8475,6 +8948,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();
 
@@ -8557,7 +9032,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
@@ -8570,6 +9047,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();
 
@@ -8620,7 +9099,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
@@ -8637,6 +9118,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();