diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 61344610e15c3be17236676f0efac3620d9a4427..b61d428e893fe798df25af06fb468ea42ae1fde9 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -1441,7 +1441,11 @@ module OneM2M_Functions {
 			var template AcpType v_defaultAcpIDs := {"NotInitialized"};
 
 			if(p_resourceType != int2) {
-				p_request.from_ := f_getOriginator(p_parentIndex);
+				if(p_resourceType == int16) {
+					p_request.from_ := f_getOriginator(p_parentIndex, false);
+				} else {				
+					p_request.from_ := f_getOriginator(p_parentIndex);
+				}
 			}
 			p_request.to_ := f_getResourceAddress(p_parentIndex);
 
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index c65b712fdd1f82fd9b6093713ead7f6de1815eed..011fb75d10225fe9cc7c498614e80b9fc5448d6c 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -535,7 +535,7 @@ module OneM2M_Templates {
 			 * @desc Base CREATE request primitive for CSEBase resource
 			 */
 			template (value) RequestPrimitive m_createCSEBaseBase modifies m_create := {
-				requestIdentifier := testcasename() & "-m_createContainer" & f_rnd(1, 1000000),
+				requestIdentifier := testcasename() & "-m_createCSEBase" & f_rnd(1, 1000000),
 				resourceType := int5,
 				primitiveContent := {cSEBase := m_contentCreateCSEBase}
 			};
@@ -553,7 +553,7 @@ module OneM2M_Templates {
 			/**
 			 * @desc Base CREATE request primitive for remoteCSE resource
 			 */
-			template (value) RequestPrimitive m_createRemoteCSEBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName :=  c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_CSE1_ID, in template (omit) XSD.ID p_cSE_ID := PX_CSE_ID) modifies m_create := {
+			template (value) RequestPrimitive m_createRemoteCSEBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName :=  c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_CSE1_ID, in template (omit) XSD.ID p_cSE_ID := PX_CSE1_ID) modifies m_create := {
 				requestIdentifier := testcasename() & "-m_createRemoteCSE" & f_rnd(1, 1000000),
 				resourceType := int16,
 				primitiveContent := {remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID)}
@@ -833,8 +833,9 @@ module OneM2M_Templates {
 																		   in template (omit) BatchNotify p_batchNotify := omit,
 																		   in template (omit) XSD.Boolean p_latestNotify := omit,
 																		   in template (omit) XSD.AnyURI p_subscriberURI := omit,
-																		   in template (omit) NotificationContentType p_notificationContentType := int1) modifies m_createSubscription := {
-				primitiveContent := {subscription := m_contentCreateSubscriptionAdvanced (p_notificationURI, p_name, p_eventNotificationCriteria, p_expirationCounter, p_batchNotify, p_latestNotify, p_subscriberURI, p_notificationContentType)}
+																		   in template (omit) NotificationContentType p_notificationContentType := int1, 
+																		   in template (omit) PendingNotification p_pendingNotification) modifies m_createSubscription := {
+				primitiveContent := {subscription := m_contentCreateSubscriptionAdvanced (p_notificationURI, p_name, p_eventNotificationCriteria, p_expirationCounter, p_batchNotify, p_latestNotify, p_subscriberURI, p_notificationContentType, p_pendingNotification)}
 			};
         	
 			/**
@@ -1496,10 +1497,12 @@ module OneM2M_Templates {
 																					in template (omit) BatchNotify p_batchNotify,
 																					in template (omit) XSD.Boolean p_latestNotify,
 																					in template (omit) XSD.AnyURI p_subscriberURI,
-																					in template (omit) NotificationContentType p_notificationContentType) modifies m_contentCreateSubscription := {
+																					in template (omit) NotificationContentType p_notificationContentType, 
+																					in template (omit) PendingNotification p_pendingNotification) modifies m_contentCreateSubscription := {
 			eventNotificationCriteria := p_eventNotificationCriteria,//O
 			expirationCounter := p_expirationCounter,//O
 			batchNotify := p_batchNotify,//O
+			pendingNotification := p_pendingNotification,//O
 			latestNotify := p_latestNotify,//O
 			notificationContentType := p_notificationContentType, //TODO Set to omit once xsd is fixed,//O
 			subscriberURI := p_subscriberURI//O
@@ -1521,9 +1524,9 @@ module OneM2M_Templates {
 			notificationEventType_list := p_notificationEventType_list// TODO this list should be able to be omited see 9.6.8 (TS0001)
 		};
         
-		template (value) BatchNotify m_batchNotifyNumber3Duration1 (in XSD.NonNegativeInteger p_number) := {
+		template (value) BatchNotify m_batchNotify (in XSD.NonNegativeInteger p_number) := {
 			number := p_number,
-			duration := "PT1S" //TODO duration has to be set to 1s and match to the Duration regex 
+			duration := "PT5S" //TODO duration has to be set to 1s and match to the Duration regex 
 		};
 		//normaly duration can be omited
 		
@@ -1606,7 +1609,7 @@ module OneM2M_Templates {
 		 * @desc Base primitiveContent for CREATE operation for Container resource
 		 * @param p_name Resource name
 		 */
-		template (value) RemoteCSE_optional m_contentCreateRemoteCSE (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_CSE1_ID, in template (omit) XSD.ID p_cSE_ID := PX_CSE_ID):= {
+		template (value) RemoteCSE_optional m_contentCreateRemoteCSE (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_CSE1_ID, in template (omit) XSD.ID p_cSE_ID := PX_CSE1_ID):= {
 			resourceName := p_name,//O
 			resourceType := omit,//NP
 			resourceID := omit,//NP
@@ -3013,8 +3016,7 @@ module OneM2M_Templates {
 		
 		template Notification mw_contentNotificationVerification modifies mw_contentNotificationBase := {
 			verificationRequest := true,
-			//creator := ?			//Temporal change, do not commit!
-			creator := *
+			creator := ?
 		}
 
 
diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn
index c1d781c0ae9d5ff1ae901a3127d222a27d239c4d..6177b6181df7ceaafaaf60456bf7f68ee6c4848c 100644
--- a/LibOneM2M/OneM2M_Types.ttcn
+++ b/LibOneM2M/OneM2M_Types.ttcn
@@ -3594,7 +3594,7 @@ module OneM2M_Types {
 
 	type ListOfURIs URIList
 	with {
-	  variant "element";
+	  variant "list";
 	};
 
 
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index fe4a10fe0a128da11e175bf083e60f11ab147ce0..fabce119dec94b4acb89bb6e72d47c44d310f852 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -1367,7 +1367,7 @@ module OneM2M_Testcases {
 				 * @desc Check that the IUT rejects the create request of <CSEBase> resource.
 				 * 
 				 */
-				testcase TC_CSE_REG_CRE_024() runs on CseTester system CseSystem {
+				testcase TC_CSE_REG_CRE_025() runs on CseTester system CseSystem {
     				
 					// Local variables
 					var MsgIn v_response;
@@ -1386,7 +1386,7 @@ module OneM2M_Testcases {
 					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 
 					// Test Body
-					v_request := f_getCreateRequestPrimitive(v_resourceType, m_createCSEBaseBase, v_aeIndex); 
+					v_request := f_getCreateRequestPrimitive(v_resourceType, m_createCSEBaseBase, -1); 
 	
 					mcaPort.send(m_request(v_request));
 					tc_ac.start;
@@ -2218,13 +2218,14 @@ module OneM2M_Testcases {
 								p_parentRequestPrimitive.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae2Index)}; 
 								p_notifyHandler.start(f_cse_notifyProcedure_subscriptionVerificationHandler(v_parentIndex));
 							}
-							v_parentIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_parentIndex);
-							
 							if(ischosen(p_parentRequestPrimitive.primitiveContent.group_)){
 							
 								f_cse_preamble_registerAe();
 							
 							}
+							v_parentIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_parentIndex);
+							
+							
 							
 						} else {//Resource under CSEBase
 						
@@ -3306,6 +3307,8 @@ module OneM2M_Testcases {
 						var MsgIn v_response;
 						var RequestPrimitive v_request;
 						var integer v_aeIndex := -1;
+						var integer v_ae2Index := -1;
+						var CseTester v_notifyHandler;
 											   
 						// Test control
     				
@@ -3317,6 +3320,8 @@ module OneM2M_Testcases {
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 					
+						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
+					
 						// Test Body
 						v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex);
 						v_request.resultContent := int0;//Attributes
@@ -16370,8 +16375,8 @@ module OneM2M_Testcases {
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int3}, -)); 
-					
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int3}), -, omit, omit, omit, -, omit); 
+				
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription 				
@@ -16582,7 +16587,7 @@ module OneM2M_Testcases {
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotifyNumber3Duration1(numberOfAggregatedNotification));// TODO fix the duration
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotify(numberOfAggregatedNotification), omit, omit, -, int2);
 
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
 					
@@ -16598,7 +16603,8 @@ module OneM2M_Testcases {
 					f_cse_updateResource(v_request);
 					
 					v_updateRequest := m_updateAeBase;
-					v_updateRequest.primitiveContent.aE.labels := v_labels_2; 
+					v_updateRequest.requestIdentifier := "m_updateAe" & f_rnd(1, 1000000);
+					v_updateRequest.primitiveContent.aE.appName := "MyAppName2"; 
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2
 					f_cse_updateResource(v_request);
 
@@ -16716,7 +16722,7 @@ module OneM2M_Testcases {
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit, omit, int2); //notificationContentType ="modified attributes"
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit, omit, int2, omit); //notificationContentType ="modified attributes"
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 					
@@ -16799,7 +16805,7 @@ module OneM2M_Testcases {
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit, omit, int3); // notificationContentType ="ResourceID"
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit, omit, int3, omit); // notificationContentType ="ResourceID"
 					
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
 
@@ -16872,7 +16878,7 @@ module OneM2M_Testcases {
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, 3);  //expirationCounter set to 3
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, 3, omit, omit, omit, -, omit);  //expirationCounter set to 3
 					
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); // Subscription
 					
@@ -16957,7 +16963,7 @@ module OneM2M_Testcases {
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, 1);  //expirationCounter set to 1
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, 1, omit, omit, omit, -, omit);  //expirationCounter set to 1
 					
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);// Subscription
 
@@ -17035,7 +17041,7 @@ module OneM2M_Testcases {
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int1}, v_attributeList));
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int1}, v_attributeList), omit, omit, omit, omit, -, omit);
 
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
 
@@ -17111,8 +17117,8 @@ module OneM2M_Testcases {
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotifyNumber3Duration1(numberOfAggregatedNotification));// TODO fix the duration
-
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotify(numberOfAggregatedNotification), omit, omit, -, omit );
+		
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
 					
 					if(v_notifyHandler.running) {
@@ -17177,7 +17183,7 @@ module OneM2M_Testcases {
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 						
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotifyNumber3Duration1(numberOfAggregatedNotification), true);// TODO fix the duration
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotify(numberOfAggregatedNotification), true, omit,  -, omit);
             		
 					//TODO We Need to check if the IUT send a notification only for the latest update operation
 					// like we match a Notification we have to verify if it is the first (unvalid behavior) or the last (valid behavior)
@@ -17247,7 +17253,7 @@ module OneM2M_Testcases {
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int1}, v_attributeList));
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int1}, v_attributeList), omit, omit, omit, omit, -, omit);
 
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
 
@@ -17322,7 +17328,7 @@ module OneM2M_Testcases {
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit,f_getResourceAddress(v_ae2Index)); // SubscriberURI ="ResourceID"
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit,f_getResourceAddress(v_ae2Index), -, omit); // SubscriberURI ="ResourceID"
 	
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); // Subscription
 					
@@ -17423,7 +17429,7 @@ module OneM2M_Testcases {
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int2}, -));
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int2}, -), omit, omit, omit, omit, -, omit);
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);
 								
@@ -17496,7 +17502,7 @@ module OneM2M_Testcases {
 
 					v_containerResourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);//Container
 					
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int4}, -));
+					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int4}, -), omit, omit, omit, omit, -, omit);
 					
 					f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23);