diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index da046cae2793fad6dfbb0dad574f4ffa8c88bdb9..b4ece32eddd70e4579dd6695319fd6897cabf019 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -3744,7 +3744,7 @@ module OneM2M_Functions {
 					
 				v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, p_parentIndex);
 
-        f_send(e_mccPort, m_request(v_request));
+				f_send(e_mccPort, m_request(v_request));
 				tc_ac.start;
 				alt {
 					[] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
@@ -4510,7 +4510,7 @@ module OneM2M_Functions {
 
 			p_request.requestIdentifier := valueof(p_request.requestIdentifier) & f_rnd(1, 1000000);
 			
-			if((p_resourceType != int2) and (p_resourceType != int10002)) {
+			if((p_resourceType != int2)) {
 				if(p_resourceType == int16) {
 					p_request.from_ := PX_TS_CSE1.cseId;
 				} else {	
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index c53155a2fe2446431ed822db96b2353eca1cfc3e..60e03eb198adedc1baebeb43f792d38e5617f73b 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -896,7 +896,22 @@ module OneM2M_Templates {
 				vendorInformation := *
 			}
 			
-			
+			/**
+			 * @desc CREATE request primitive for AEAnnc resource
+			 * @param p_accessControlPolicyIds
+			 * @param p_to
+			 * @param p_from
+			 * @param p_appId
+			 * @param p_stemId
+			 */
+			template (value) RequestPrimitive m_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, XSD.ID p_parentResourceAddress, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") modifies m_create:= {
+				to_ := p_parentResourceAddress,
+				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
+				requestIdentifier := testcasename() & "-m_createAEAnnc",
+				resourceType := int10002,
+				primitiveContent := {aEAnnc := m_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, valueof(p_parentResourceAddress) & "/" & p_stemId)}
+			};
+
 			/**
 			 * @desc Base CREATE request primitive for AEAnnc resource
 			 * @param p_accessControlPolicyIds
@@ -905,12 +920,11 @@ module OneM2M_Templates {
 			 * @param p_appId
 			 * @param p_stemId
 			 */
-			template (value) RequestPrimitive m_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_to := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") modifies m_create:= {
-				to_ := p_to,
+			template (value) RequestPrimitive m_createAEAnncBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") modifies m_create:= {
 				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
 				requestIdentifier := testcasename() & "-m_createAEAnnc",
 				resourceType := int10002,
-				primitiveContent := {aEAnnc := m_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, valueof(p_to) & "/" & p_stemId)}
+				primitiveContent := {aEAnnc := m_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, p_stemId)}
 			};
 			
 			/**
@@ -2249,7 +2263,7 @@ module OneM2M_Templates {
 		 * @param p_appId App ID
 		 * @param p_nodeLink Node link
 		 */
-		template AEAnnc_optional m_contentCreateAEAnnc (in template (omit)  Labels p_labels, in template (omit) AcpType p_accessControlPolicyIds, XSD.ID p_appId := PX_TS_AE1.appId, in template (omit) XSD.AnyURI p_nodeLink := omit) := {
+		template AEAnnc_optional m_contentCreateAEAnnc (in template (omit)  Labels p_labels, in template (omit) AcpType p_accessControlPolicyIds, XSD.ID p_appId := PX_TS_AE1.appId, in XSD.AnyURI p_link := "") := {
 			resourceName := omit,//O TODO 
 			resourceType := omit,//NP
 			resourceID := omit,//NP
@@ -2259,14 +2273,14 @@ module OneM2M_Templates {
 			labels := p_labels,//O
 			accessControlPolicyIDs := p_accessControlPolicyIds,//O
 			expirationTime := "20301231T012345",//O
-			link := omit,//M TODO Put the right value
+			link := p_link,//M TODO Put the right value
 			dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation			
 			appName := omit,//O
 			app_ID := p_appId,//M
 			aE_ID := omit,//NP
 			pointOfAccess := omit, //{"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
 			ontologyRef := omit,//O
-			nodeLink := p_nodeLink,//NP
+			nodeLink := omit,//NP
 			requestReachability := false,//M
 			contentSerialization := omit,//O
 			e2eSecInfo := omit, //O TODO Check whether it is optional or mandatory for create operation
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 7f9d0cb12a7da779ae540b4608ec7e7341287011..67b93efdeefe6d55b1b0d4ddcb03e5a052893779 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -3944,7 +3944,7 @@ module OneM2M_PermutationFunctions {
 						// Preamble
 						vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase);
 						
-						v_aEAnncIndex := f_cse_createResource_cseSimu(int10002, m_createAEAnnc(omit, omit, omit, PX_TS_CSE1.cseId, PX_TS_CSE1.cseId), vc_remoteCseIndex); //AEAnnnc under RemoteCSE
+						v_aEAnncIndex := f_cse_createResource_cseSimu(int10002, m_createAEAnncBase(omit, omit, PX_TS_CSE1.cseId, PX_TS_CSE1.cseId), vc_remoteCseIndex); //AEAnnnc under RemoteCSE
 		
 						// Test Body
 	
diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn
index 11cdd56627e14f955de8e2dbedd760ad236c6416..caa64ef26dc0eb349882e154a3988e30a89adb7f 100644
--- a/OneM2M_Testcases_CSE_Release_3.ttcn
+++ b/OneM2M_Testcases_CSE_Release_3.ttcn
@@ -389,7 +389,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						//Local variables
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnnc(omit, omit, omit, PX_TS_CSE1.cseId));
+						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnncBase(omit, omit, PX_TS_CSE1.cseId, PX_TS_AE1.appId));
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 	
 						v_createRequest.primitiveContent.timeSeries.resourceName := omit;
@@ -407,7 +407,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						//Local variables
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnnc(omit, omit, omit, PX_TS_CSE1.cseId));
+						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnncBase(omit, omit, PX_TS_CSE1.cseId));
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 
 						v_createRequest.primitiveContent.container.resourceName := omit;
@@ -426,7 +426,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnnc(omit, omit, omit, PX_TS_CSE1.cseId));
+						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnncBase(omit, omit, PX_TS_CSE1.cseId));
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 
 						v_createRequest.primitiveContent.group_.resourceName := omit;
@@ -444,7 +444,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnnc(omit, omit, omit, PX_TS_CSE1.cseId));
+						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnncBase(omit, omit, PX_TS_CSE1.cseId));
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 
 						v_createRequest.primitiveContent.accessControlPolicy.resourceName := omit;
@@ -643,7 +643,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createTimeSeriesBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnnc(omit, omit, omit, PX_TS_CSE1.cseId));
+						var RequestPrimitive v_createAEAnnc := valueof(m_createAEAnncBase(omit, omit, PX_TS_CSE1.cseId));
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 
 						v_createRequest.primitiveContent.timeSeries.resourceName := omit;