diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 050e8315901e7fc862c14cba948162d49bb2e21c..f670ba1e59172409f6a632ffd0e7891956a8c6ee 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -223,6 +223,17 @@ module OneM2M_Templates {
 				tokenReqIndicator := omit
 			};
         	
+			/**
+			 * @desc Base UPDATE request primitive for Ae resource
+			 */
+			template (value) RequestPrimitive m_updateAeBase modifies m_update:= {
+				from_ := PX_AE_ID_STEM,
+				requestIdentifier := "m_updateAe" & f_rnd(1, 1000000),
+				primitiveContent:= {
+							any_1 := {{AE_optional := m_contentUpdateAe}}
+				}
+			};
+        	
 			/**
 			 * @desc Base UPDATE request primitive for Container resource
 			 */
@@ -555,6 +566,19 @@ module OneM2M_Templates {
         		}
         	};
         	
+			template (value) RequestPrimitive m_createSubscriptionAdvanced(	in template (value) ListOfURIs p_notificationURI := {"Not Initialized"},
+																			in template (omit) EventNotificationCriteria p_eventNotificationCriteria := omit,
+																			in template (omit) XSD.PositiveInteger p_expirationCounter := omit,
+																			in template (omit) BatchNotify p_batchNotify := omit,
+																			in template (omit) XSD.Boolean p_latestNotify := omit,
+																			in template (omit) XSD.AnyURI p_subscriberURI := omit) modifies m_create := {
+				requestIdentifier := "m_createSubscription" & f_rnd(1, 1000000),
+				resourceType := int23,
+				primitiveContent := {
+					any_1 := {{Subscription_optional := m_contentCreateSubscriptionAdvanced (p_notificationURI, p_eventNotificationCriteria, p_expirationCounter, p_batchNotify, p_latestNotify, p_subscriberURI)}}	
+				}
+			};
+        	
         	//@Martin
         	template (value) RequestPrimitive m_createLocationPolicy(XSD.ID p_parentResourceAddress, in template (omit) AcpType p_accessControlPolicyIDs, in template (omit) XSD.Duration locationUpdatePeriod, in template (omit) NodeID locationTargetID, in template (omit) XSD.AnyURI locationServerAddress) modifies m_create := {
         	  	to_ 				:= p_parentResourceAddress,
@@ -874,6 +898,41 @@ module OneM2M_Templates {
 			choice := omit//NP
     	};   	
     	
+		template (value) Subscription_optional m_contentCreateSubscriptionAdvanced (in template (value) ListOfURIs p_notificationURI,
+																					in template (omit) EventNotificationCriteria p_eventNotificationCriteria,
+																					in template (omit) XSD.PositiveInteger p_expirationCounter,
+																					in template (omit) BatchNotify p_batchNotify,
+																					in template (omit) XSD.Boolean p_latestNotify,
+																					in template (omit) XSD.AnyURI p_subscriberURI,
+																					in template (omit) XSD.String p_name := c_defaultResourceName) := {
+			resourceName := c_defaultResourceName,//O
+			resourceType := omit,//NP
+			resourceID := omit,//NP
+			parentID := omit,//NP
+			creationTime := omit,//NP
+			lastModifiedTime := omit,//NP
+			labels := omit,//O
+			accessControlPolicyIDs := omit,//O
+			expirationTime := omit,//O
+			dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation
+			creator := omit,//O
+			eventNotificationCriteria := p_eventNotificationCriteria,//O
+			expirationCounter := p_expirationCounter,//O
+			notificationURI := p_notificationURI,//M
+			groupID := omit,//O
+			notificationForwardingURI := omit,//O
+			batchNotify := p_batchNotify,//O
+			rateLimit := omit,//O
+			preSubscriptionNotify := omit,//O
+			pendingNotification := omit,//O
+			notificationStoragePriority := omit,//O
+			latestNotify := p_latestNotify,//O
+			notificationContentType := int1, //TODO Set to omit once xsd is fixed,//O
+			notificationEventCat := omit,//O
+			subscriberURI := p_subscriberURI,//O
+			choice := omit//NP
+		};  
+    	
     	/**
     	 * @desc Base primitiveContent for CREATE operation for ContentInstance resource
     	 * @param p_primitiveContent Content for the ContentInstance
@@ -1802,6 +1861,28 @@ module OneM2M_Templates {
 			locationID := omit,
 			ontologyRef := omit
 		};		
+		
+		template (value) EventNotificationCriteria m_eventNotificationCriteria (in NotificationEventType p_notificationEventType) := {
+			createdBefore := omit,
+			createdAfter := omit,
+			modifiedSince := omit,
+			unmodifiedSince := omit,
+			stateTagSmaller := omit,
+			stateTagBigger := omit,
+			expireBefore := omit,
+			expireAfter := omit,
+			sizeAbove := omit,
+			sizeBelow := omit,
+			operationMonitor_list := {},
+			attribute_list := {}, // TODO this list should be able to be omited see 9.6.8 
+			notificationEventType_list := {p_notificationEventType},// TODO this list should be able to be omited see 9.6.8 
+			missingData := omit
+		}
+		
+		template (value) BatchNotify m_batchNotifyNumber3Duration1 := {
+			number := 3,
+			duration := " " //TODO duration has to be set to 1s and match to the Duration regex
+		}//normaly duration can be omited 6.3.5.6 (TS0004)
 				
 	}//end group SpecialContents
 	
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index 477eb172914a5c549865945f844af9ca5b3f66c7..bef147f6e937d356022aba967ab4f7f3c19e2894 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -3830,8 +3830,678 @@ module OneM2M_Testcases {
 
 			}//end group Update
 			
+			group Delete {
+
+				group g_CSE_DMR_DEL_BV_001{
+
+					testcase TC_CSE_DMR_DEL_BV_001_01() runs on CseTester system CseSystem {
+						// Local variables
+			
+						f_CSE_DMR_DEL_BV_001(int3, m_createContainerBase);//Container
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_001_02() runs on CseTester system CseSystem {
+						// Local variables
+			
+						f_CSE_DMR_DEL_BV_001(int9, m_createGroupBase);//Group
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_001_03() runs on CseTester system CseSystem {
+						// Local variables
+	
+						f_CSE_DMR_DEL_BV_001(int1, m_createAcpBase);//AccessControlPolicy
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_001_04() runs on CseTester system CseSystem {
+						// Local variables
+	
+						f_CSE_DMR_DEL_BV_001(int18, m_createScheduleBase);//Schedule
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_001_05() runs on CseTester system CseSystem {
+						// Local variables
+	
+						f_CSE_DMR_DEL_BV_001(int15, m_createPollingChannelBase);//PollingChannel
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_001_06() runs on CseTester system CseSystem {
+							// Local variables
+	
+						f_CSE_DMR_DEL_BV_001(int23, m_createSubscriptionBase);//Subscription
+					}	
+	
+	
+	
+					function f_CSE_DMR_DEL_BV_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on CseTester {
+						// Local variables
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var integer v_aeIndex := -1;
+						var integer v_resourceIndex := -1;
+								   
+						// Test control
+	
+						// Test component configuration
+						f_cf01Up();
+	
+						// Test adapter configuration
+	
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+			
+						v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); 				
+													
+						// Test Body
+						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex)));
+			
+						mcaPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Resource" & int2str(enum2int(p_resourceType)) & " deleted successfuly");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while deleting resource type " & int2str(enum2int(p_resourceType)));
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType)));
+							}
+						}	
+						
+						// Postamble
+						f_cse_postamble_deleteResources();
+			
+						// Tear down
+						f_cf01Down();
+								
+					}//end f_CSE_DMR_DEL_BV_001
+	
+				}//end g_CSE_DMR_DEL_BV_001
+	
+				group g_CSE_DMR_DEL_BV_002{
+	
+					testcase TC_CSE_DMR_DEL_BV_002_01() runs on CseTester system CseSystem {
+						// Local variables
+			
+						f_CSE_DMR_DEL_BV_002(int3, m_createContainerBase);//Container
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_002_02() runs on CseTester system CseSystem {
+						// Local variables
+			
+						f_CSE_DMR_DEL_BV_002(int9, m_createGroupBase);//Group
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_002_03() runs on CseTester system CseSystem {
+						// Local variables
+	
+						f_CSE_DMR_DEL_BV_002(int1, m_createAcpBase);//AccessControlPolicy
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_002_04() runs on CseTester system CseSystem {
+						// Local variables
+	
+						f_CSE_DMR_DEL_BV_002(int18, m_createScheduleBase);//Schedule
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_002_05() runs on CseTester system CseSystem {
+						// Local variables
+	
+						f_CSE_DMR_DEL_BV_002(int15, m_createPollingChannelBase);//PollingChannel
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_002_06() runs on CseTester system CseSystem {
+							// Local variables
+	
+						f_CSE_DMR_DEL_BV_002(int23, m_createSubscriptionBase);//Subscription
+					}
+	
+	
+					function f_CSE_DMR_DEL_BV_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on CseTester {
+						// Local variables
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var integer v_aeIndex := -1;
+						var integer v_resourceIndex := -1;
+								   
+						// Test control
+	
+						// Test component configuration
+						f_cf01Up();
+	
+						// Test adapter configuration
+	
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe(int55);//c_CRUNDi);
+			
+						v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); 				
+													
+						// Test Body
+						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex)));
+			
+						mcaPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Access denied to delete the resource " & int2str(enum2int(p_resourceType)));
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while deleting a resource without having privileges");
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType)));
+							}
+						}	
+						
+						// Postamble
+						f_cse_postamble_deleteResources();
+			
+						// Tear down
+						f_cf01Down();
+								
+					}//end f_CSE_DMR_DEL_BV_002
+		
+				}//g_CSE_DMR_DEL_BV_002
+	
+				group g_CSE_DMR_DEL_BV_003{
+		
+					testcase TC_CSE_DMR_DEL_BV_003_01() 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 charstring c_falseAdressResource := "NoExistingResource";
+								   
+						// Test control
+	
+						// Test component configuration
+						f_cf01Up();
+	
+						// Test adapter configuration
+	
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); 				
+													
+						// Test Body
+						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex) & "/" & c_falseAdressResource));
+			
+						mcaPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Unexisting resource cannot be deleted");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while deleting non existing resource");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while deleting non existing resource");
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while deleting resource");
+							}
+						}		
+						
+						// Postamble
+						f_cse_postamble_deleteResources();
+			
+						// Tear down
+						f_cf01Down();
+								
+					}//end f_CSE_DMR_DEL_BV_003
+				}//g_CSE_DMR_DEL_BV_003
+	
+				group g_CSE_DMR_DEL_BV_004{
+		
+					testcase TC_CSE_DMR_DEL_BV_004_01() runs on CseTester system CseSystem {
+						// Local variables
+			
+						f_CSE_DMR_DEL_BV_004(int3, m_createContainerBase, int23, m_createSubscriptionBase);//Container
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_004_02() runs on CseTester system CseSystem {
+						// Local variables
+			
+						f_CSE_DMR_DEL_BV_004(int9, m_createGroupBase, int23, m_createSubscriptionBase);//Group
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_004_03() runs on CseTester system CseSystem {
+						// Local variables
+	
+						f_CSE_DMR_DEL_BV_004(int1, m_createAcpBase, int23, m_createSubscriptionBase);//AccessControlPolicy
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_004_04() runs on CseTester system CseSystem {
+						// Local variables
+	
+						f_CSE_DMR_DEL_BV_004(int18, m_createScheduleBase, int23, m_createSubscriptionBase);//Schedule
+					}
+	
+					testcase TC_CSE_DMR_DEL_BV_004_05() runs on CseTester system CseSystem {
+						// Local variables
+	
+						f_CSE_DMR_DEL_BV_004(int15, m_createPollingChannelBase, int23, m_createSubscriptionBase);//PollingChannel  TODO ResourceType needed is PollingChannelURI
+					}
+		
+					testcase TC_CSE_DMR_DEL_BV_004_06() runs on CseTester system CseSystem {
+							// Local variables
+	
+						f_CSE_DMR_DEL_BV_004(int23, m_createSubscriptionBase, int18, m_createScheduleBase);//Subscription
+					}
+	
+	
+					function f_CSE_DMR_DEL_BV_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, ResourceType p_childResourceType, template RequestPrimitive p_createRequestPrimitiveChildResource) runs on CseTester {
+						// Local variables
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var integer v_aeIndex := -1;
+						var integer v_resourceIndex := -1;
+						var integer v_childResourceIndex := -1;
+								   
+						// Test control
+	
+						// Test component configuration
+						f_cf01Up();
+	
+						// Test adapter configuration
+	
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+			
+						v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); 
+	
+						v_childResourceIndex := f_cse_createResource(p_childResourceType, p_createRequestPrimitiveChildResource, v_resourceIndex); 
+													
+						// Test Body
+						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex)));
+			
+						mcaPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Resource type " & int2str(enum2int(p_resourceType)) & " delete successfuly");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while deleting resource type " & int2str(enum2int(p_resourceType)));
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType)));
+							}
+						}
+			
+						mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_childResourceIndex))));
+	
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Error while retrieving non existing resource");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving non existing resource");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving non existing resource");
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+							}
+						}		
+						
+						// Postamble
+						f_cse_postamble_deleteResources();
+			
+						// Tear down
+						f_cf01Down();
+							
+					}//end f_CSE_DMR_DEL_BV_004
+				}//g_CSE_DMR_DEL_BV_004
+
+				group g_CSE_DMR_DEL_BV_005{
+		
+					testcase TC_CSE_DMR_DEL_BV_005_01() runs on CseTester system CseSystem {
+						// Local variables
+						f_CSE_DMR_DEL_BV_005(int3, m_createContainerBase, int23, m_createSubscriptionBase);//Container
+					}
+	
+					function f_CSE_DMR_DEL_BV_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, ResourceType p_childResourceType, template RequestPrimitive p_createRequestPrimitiveChildResource) runs on CseTester {
+						// Local variables
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var integer v_aeIndex := -1;
+						var integer v_resourceIndex := -1;
+						var integer v_childResourceIndex := -1;
+								   
+						// Test control
+	
+						// Test component configuration
+						f_cf01Up();
+	
+						// Test adapter configuration
+	
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+			
+						v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); 
+						
+						if(ispresent(vc_resourcesList[v_resourceIndex].resource.any_1[0].Container_optional.stateTag)) {
+							
+    						v_childResourceIndex := f_cse_createResource(p_childResourceType, p_createRequestPrimitiveChildResource, v_resourceIndex); 
+    						
+    						// Test Body
+    						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_childResourceIndex)));
+    			
+    						mcaPort.send(m_request(v_request));
+    						tc_ac.start;
+    						alt {
+    							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+    								tc_ac.stop;
+    								setverdict(pass, testcasename() & ": Resource type " & int2str(enum2int(p_resourceType)) & " delete successfuly");
+    							}
+    							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+    								tc_ac.stop;
+    								setverdict(fail, testcasename() & ": Error while deleting resource type " & int2str(enum2int(p_resourceType)));
+    							}
+    							[] tc_ac.timeout {
+    								setverdict(inconc, testcasename() & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType)));
+    							}
+    						}
+    			
+    			
+    			
+    						mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex))));
+    	
+    						tc_ac.start;
+    						alt {
+    							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+    								tc_ac.stop;
+    								if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Container_optional.stateTag > vc_resourcesList[v_resourceIndex].resource.any_1[0].Container_optional.stateTag) { // Not good comparison (Create before Delete)
+    									setverdict(pass, testcasename() & ": Requested attributes retrieved successfuly");	
+    								}
+    								else{
+										setverdict(fail, testcasename() & ": Error the stateTag attribute is not incremented");
+    								}
+    							}
+    							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+    								tc_ac.stop;
+    								setverdict(fail, testcasename() & ": Error while retrieving resource attributes");
+    							}
+    							[] tc_ac.timeout {
+    								setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes");
+    							}
+    						}	
+								
+						}//end if
+						else{
+							setverdict(fail, testcasename() & ": Error the stateTag attribute is empty");
+						}
+						
+						// Postamble
+						f_cse_postamble_deleteResources();
+			
+						// Tear down
+						f_cf01Down();
+							
+					}//end f_CSE_DMR_DEL_BV_005
+				} // end group g_CSE_DMR_DEL_BV_005
+	
+			}//end group Delete
+			
 		}//end group Data_Management_and_Repository
 		
+		group Notification {
+			
+			group g_CSE_SUB_BV_001_1{
+				testcase TC_CSE_SUB_BV_001_1() runs on CseTester system CseSystem {
+					// Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_childResourceIndex := -1;
+					var template RequestPrimitive v_createRequestOne := m_createSubscriptionBase;
+					var template RequestPrimitive v_createRequestTwo := m_createSubscriptionBase;
+					var ResponsePrimitive v_responsePrimitive;
+					var RequestPrimitive v_request;
+											
+					v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1; // all attributes expected   
+					// Test control
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+
+					v_resourceIndex := f_cse_createResource(int23, v_createRequestOne, v_aeIndex);//Subscription 				
+		
+					v_request := f_getCreateRequestPrimitive(int23, v_createRequestOne, v_resourceIndex);
+					
+		
+					//Postamble
+					f_cse_postamble_deleteResources();
+
+					//Tear down
+					f_cf01Down();
+		
+				} // end TC_CSE_SUB_BV_001_1
+			}//end group g_CSE_SUB_BV_001_1
+			
+			group g_CSE_SUB_BV_001{
+				testcase TC_CSE_SUB_BV_001() runs on CseTester system CseSystem {
+					// Local variables
+					var MsgIn v_response;
+					var Labels v_labels_1:= {"VALUE_1"};
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var template RequestPrimitive v_createRequest := m_createSubscriptionAdvanced(); 
+					var template PrimitiveContent v_contentResponse;
+					var template RequestPrimitive v_updateRequest := m_updateAeBase;
+					var RequestPrimitive v_request;
+					
+					v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; 
+					v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; // all attributes expected   
+					
+					// Test control
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+
+					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
+					
+					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest);
+					
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": Attribute of resource type int2 (Ae) updated successfuly");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while updating resource type int2 (Ae)");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while updating resource type int2 (Ae)");
+						}
+					}	
+		
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": Notification received");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while sending notification");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": None notification received");
+						}
+					}
+		
+					//Postamble
+					f_cse_postamble_deleteResources();
+
+					//Tear down
+					f_cf01Down();
+		
+				} // end TC_CSE_SUB_BV_001
+			}//end group g_CSE_SUB_BV_001
+			
+			group g_CSE_SUB_BV_003{
+				testcase TC_CSE_SUB_BV_003() runs on CseTester system CseSystem {
+					// Local variables
+					var MsgIn v_response;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_childResourceIndex := -1;
+					var ListOfURIs v_notificationURI := {"Not Initialized"};
+					var template RequestPrimitive v_createRequest := m_createSubscriptionAdvanced(v_notificationURI, m_eventNotificationCriteria(int3)); 
+					var template PrimitiveContent v_contentResponse;
+					
+					v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1; // all attributes expected   
+					// Test control
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+
+					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription 
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": Notification received");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while sending notification");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": None notification received");
+						}
+					}
+					
+					//Postamble
+    				f_cse_postamble_deleteResources();
+    
+    				//Tear down
+    				f_cf01Down();
+					
+				} // end TC_CSE_SUB_BV_003
+			}//end group g_CSE_SUB_BV_003
+			
+			group g_CSE_SUB_BV_004{
+				testcase TC_CSE_SUB_BV_004() runs on CseTester system CseSystem {
+					// Local variables
+					var MsgIn v_response;
+					var RequestPrimitive v_deleteRequest;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var integer v_childResourceIndex := -1;
+					var ListOfURIs v_notificationURI := {"Not Initialized"};
+					var template RequestPrimitive v_createRequest := m_createSubscriptionAdvanced(v_notificationURI, m_eventNotificationCriteria(int4));
+					var template PrimitiveContent v_contentResponse;
+		
+					//v_createRequest.primitiveContent.any_1[0].Subscription_optional.resourceName := omit; // name's R1 =! of his child ressource R2 ? 
+					v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1; // all attributes expected in notification  
+					v_deleteRequest := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex)));
+					v_deleteRequest.resultContent := int0; //none content is expected because if the child ressource triggers a notification the second received message will have no content and the test shall fail
+					// Test control
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+
+					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription 				
+		
+					v_childResourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);
+					
+					mcaPort.send(m_request(v_deleteRequest));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": Resource deleted successfuly");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while deleting resource ");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": No answer while deleting resource type ");
+						}
+					}	
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": Notification received");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Error while sending notification");
+						}
+						[] tc_ac.timeout {
+							setverdict(inconc, testcasename() & ": None notification received");
+						}
+					}
+		
+					//Postamble
+					f_cse_postamble_deleteResources();
+
+					//Tear down
+					f_cf01Down();
+		
+				} // end TC_CSE_SUB_BV_004
+			}//end group g_CSE_SUB_BV_004
+						
+		}//end group Notification
+		
 		//@Martin
 		group Location {