diff --git a/OneM2M_Functions.ttcn b/OneM2M_Functions.ttcn
index ecb7fdd35b3fb19950f1c4a465b4680b6b1ab9d9..c4c1524b1c98bb0bae405690e0a7aefa179d4a93 100644
--- a/OneM2M_Functions.ttcn
+++ b/OneM2M_Functions.ttcn
@@ -33,6 +33,7 @@ module OneM2M_Functions {
     			
 			// Map
 			map(self:mcaPort, system:mcaPort);
+			map(self:mccPort, system:mccPort);
 			map(self:acPort, system:acPort);
 			activate(a_default());
     			
@@ -113,13 +114,13 @@ module OneM2M_Functions {
 			var M2MResponsePrimitive v_response;
 			var integer v_cseBaseAuxIndex := -1;
 			var integer v_acpAuxIndex := -1;
-			var ServiceSubscribedAppRule v_serviceSubscribedAppRule;
+			var ServiceSubscribedAppRule_optional v_serviceSubscribedAppRule;
 
 			v_serviceSubscribedAppRule.applicableCredIDs := {"None"};
 			v_serviceSubscribedAppRule.allowedApp_IDs := {PX_APP_ID};
 			v_serviceSubscribedAppRule.allowedAEs := valueof(p_allowedAEs);
 			
-			mcaPort.send(m_request(m_createCSEBase(v_serviceSubscribedAppRule)));
+			mcaPort.send(m_request(m_createServiceSubscribedAppRule(v_serviceSubscribedAppRule)));
 		
 			tc_ac.start;
 			alt {
@@ -197,7 +198,8 @@ module OneM2M_Functions {
 			
 		function f_postamble_default() runs on M2M {
 	
-			unmap(self:mcaPort, system:mcaPort); 
+			unmap(self:mcaPort, system:mcaPort);
+			unmap(self:mccPort, system:mccPort);
 			unmap(self:acPort, system:acPort);
 			//stop;
 		}		
diff --git a/OneM2M_Templates.ttcn b/OneM2M_Templates.ttcn
index 6c3f3316efaeb8846ef44dd2e40927486f0fe252..606c0698a7cb2624dea6876f14b542d5ef5c2042 100644
--- a/OneM2M_Templates.ttcn
+++ b/OneM2M_Templates.ttcn
@@ -785,6 +785,32 @@ module OneM2M_Templates {
 				discoveryResultType := omit	
 
 			};
+			
+			//Added by @Naum
+			template (value) RequestPrimitive m_createServiceSubscribedAppRule (in ServiceSubscribedAppRule_optional p_serviceSubscribedAppRule) := {
+				operation := int1,
+				to_ := "NotInitialized",
+				from_ := PX_AE_ID_STEM,
+				requestIdentifier := "m_createCSE" & f_rnd(1, 1000000),
+				resourceType := int1,
+				primitiveContent := {
+					any_1 := {{ServiceSubscribedAppRule_optional := m_contentCreateServiceSubscribedAppRule (p_serviceSubscribedAppRule)}}
+				},
+				role := omit,
+				originatingTimestamp := omit,
+				requestExpirationTimestamp := omit,
+				resultExpirationTimestamp := omit,
+				operationExecutionTime := omit,
+				responseType := omit,
+				resultPersistence := omit,
+				resultContent := omit,
+				eventCategory := omit,
+				deliveryAggregation := omit,
+				groupRequestIdentifier := omit,
+				filterCriteria := omit,
+				discoveryResultType := omit	
+
+			};
         	
 			template (value) RequestPrimitive m_createSubscriptionBase := {
 				operation := int1,
@@ -1044,6 +1070,22 @@ module OneM2M_Templates {
 			scheduleElement := p_scheduleElement,//M
 			choice := omit//NP
 		};    	
+		
+		template (value) ServiceSubscribedAppRule_optional m_contentCreateServiceSubscribedAppRule (in template (value) ServiceSubscribedAppRule_optional serviceSubscribedAppRule := omit) := {
+		  	resourceName := omit,
+			resourceType := omit,
+			resourceID := omit,
+			parentID := omit,
+			creationTime := omit,
+			lastModifiedTime := omit,
+			labels := omit,
+			accessControlPolicyIDs := omit,
+			expirationTime := omit,
+			applicableCredIDs := serviceSubscribedAppRule.applicableCredIDs,
+			allowedApp_IDs := serviceSubscribedAppRule.allowedApp_IDs,
+			allowedAEs := serviceSubscribedAppRule.allowedAEs,
+			choice := omit
+		}
     	
 		template (value) Subscription_optional m_contentCreateSubscription (in template (value) ListOfURIs p_notificationURI) := {
 			resourceName := c_defaultResourceName,//O
diff --git a/OneM2M_Types.ttcn b/OneM2M_Types.ttcn
index b7a43d1acb3d7b0346476b540958d25658065b2b..5520e3c040974fd743a024a07a527f787185b789 100644
--- a/OneM2M_Types.ttcn
+++ b/OneM2M_Types.ttcn
@@ -4350,6 +4350,38 @@ group optionalResourceTypes {
 	  variant (choice.choice_list[-]) "untagged";
 	};
 	
+	//Added by @Naum
+	type record ServiceSubscribedAppRule_optional
+	{
+		XSD.NCName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp expirationTime optional,
+		ListOfM2MID applicableCredIDs optional,
+		ListOfM2MID allowedApp_IDs optional,
+		ListOfM2MID allowedAEs optional,
+		union {
+			record length(1 .. infinity) of ChildResourceRef childResource_list,
+			record length(1 .. infinity) of Subscription subscription_list
+		} choice optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	  variant (allowedApp_IDs) "name as 'allowedApp-IDs'";
+	  variant (choice) "untagged";
+	  variant (choice.childResource_list) "untagged";
+	  variant (choice.childResource_list[-]) "name as 'childResource'";
+	  variant (choice.subscription_list) "untagged";
+	  variant (choice.subscription_list[-]) "name as 'subscription'";
+	};
+	
 	type record Subscription_optional
 	{
 		XSD.NCName resourceName optional,