diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 81251a3023549650a6a68576742f0f42f2ffafc2..0252a5dd1a8c33d451f1a68efebe7b0cead8ccf2 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -45,8 +45,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
      	 	
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf01());
@@ -86,8 +86,8 @@ module OneM2M_Functions {
 	
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 		    
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
       
 			//Initialze the IUT
 							
@@ -119,8 +119,8 @@ module OneM2M_Functions {
 
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 		    
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
 		      
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf02_ae1());
@@ -158,8 +158,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
 		    
-		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding, vc_cseSimuDesc.mccPortIn.serialization };
+		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding, vc_cseSimuDesc.mccPortIn.serialization };
 		      
 			v_cSEBaseResource := f_generateLocalResource(m_primitiveContentCSEBase(m_contentCSEBase(vc_cseSimuDesc)), -1, int5);
 			vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1);
@@ -200,8 +200,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
       
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
 			
 			activate(a_default());
 			vc_cseSimu := activate(a_cse_cf02_cse1());
@@ -251,8 +251,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
       
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
 				 
 			activate(a_default());
 			vc_cseSimu := activate(a_cse_cf02_cse1());
@@ -281,8 +281,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
       
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
       
 			//Initialze the IUT
 							
@@ -316,8 +316,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mcaPort, vc_cseSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
       		
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_cseSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_cseSimuDesc.mcaPortIn.serialization };
 			
 			if(PX_UT_IMPLEMENTED) {
 				map(self:utPort, system:utPort) param (PX_TS_UT);
@@ -363,8 +363,8 @@ module OneM2M_Functions {
 	
 			f_setProtocolBinding(vc_cseSimuDesc.mcaPort, vc_cseSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 		    
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding, vc_cseSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding, vc_cseSimuDesc.mcaPortIn.serialization };
       
 			v_cSEBaseResource := f_generateLocalResource(m_primitiveContentCSEBase(m_contentCSEBase(vc_cseSimuDesc)), -1, int5);
 			vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1);
@@ -402,8 +402,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
       
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding_in, vc_cseSimuDesc.mccPortIn.serialization };
       
       		activate(a_default());
 			vc_cseSimu := activate(a_cse_cf04());
@@ -448,8 +448,8 @@ module OneM2M_Functions {
 						
 			f_setProtocolBinding(vc_cseSimuDesc.mccPort, vc_cseSimuDesc.mccPortIn, v_binding, v_host, v_binding_in);
             
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding, vc_cseSimuDesc.mccPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { e_mccPort, v_host, v_binding, vc_cseSimuDesc.mccPort.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { e_mccPortIn, v_host, v_binding, vc_cseSimuDesc.mccPortIn.serialization };
       
 			v_cSEBaseResource := f_generateLocalResource(m_primitiveContentCSEBase(m_contentCSEBase(vc_cseSimuDesc)), -1, int5);
 			vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1);
@@ -508,8 +508,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 			
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf06_ae1()); 
@@ -543,8 +543,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_dasSimuDesc.mcaPort, vc_dasSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_dasSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_dasSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_dasSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_dasSimuDesc.mcaPortIn.serialization };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf06_das()); 
@@ -571,8 +571,8 @@ module OneM2M_Functions {
 			
 			f_setProtocolBinding(vc_dasSimuDesc.mcaPort, vc_dasSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
 
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_dasSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_dasSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_dasSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_dasSimuDesc.mcaPortIn.serialization };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf06_das()); 
@@ -609,8 +609,8 @@ module OneM2M_Functions {
 		
 			f_setProtocolBinding(vc_aeSimuDesc.mcaPort, vc_aeSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
      	 	
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_aeSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_aeSimuDesc.mcaPortIn.serialization };
       
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf06_ae1()); 
@@ -644,8 +644,8 @@ module OneM2M_Functions {
 
 			f_setProtocolBinding(vc_cseSimuDesc.mcaPort, vc_cseSimuDesc.mcaPortIn, v_binding, v_host, v_binding_in);
      	 	
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, vc_cseSimuDesc.mcaPortIn.serialization };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { e_mcaPort, v_host, v_binding, vc_cseSimuDesc.mcaPort.serialization };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { e_mcaPortIn, v_host, v_binding_in, vc_cseSimuDesc.mcaPortIn.serialization };
 
 			if(PX_UT_IMPLEMENTED) {
 			  map(self:utPort, system:utPort) param (PX_TS_UT);
@@ -1725,7 +1725,7 @@ module OneM2M_Functions {
 						
 						v_request.from_ := f_getOriginator(vc_resourcesIndexToBeDeleted[i]);
 
-						f_send(e_mcaPort, m_request(v_request));
+						f_send(e_mcaPort, m_request(v_request), false);
 						
 						tc_ac.start;
 						alt {
@@ -1813,6 +1813,7 @@ module OneM2M_Functions {
 				var integer v_resourceIndex := -1;
 				var URIList v_childResourceRefs;
 				var XSD.ID v_resourceAddress;
+				var MsgIn v_msgIn;
 				var RequestPrimitive v_request;
 				var boolean v_deregistrationPerformed := false;
 				var template UtTriggerPrimitive v_utRequest := m_utDelete;
@@ -1864,7 +1865,7 @@ module OneM2M_Functions {
 			
 						v_request := valueof(m_delete(v_resourceAddress, f_getOriginator(v_resourceIndex, vc_testSystemRole)));
 
-						f_send(e_mccPort, m_request(v_request));
+						f_send(e_mccPort, m_request(v_request), false);
 			
 						tc_ac.start;
 						alt {
@@ -1894,7 +1895,7 @@ module OneM2M_Functions {
 								//v_request := valueof(m_delete(v_childResourceRefs[0], f_getOriginator(vc_remoteCseIndex)));
 								v_request := valueof(m_delete(v_childResourceRefs[0]));//TODO Originator super user to be replaced by CSE1_ID (line above)
 								
-								f_send(e_mccPort, m_request(v_request));
+								f_send(e_mccPort, m_request(v_request), false);
 	
 								tc_ac.start;
 								alt {
@@ -1922,9 +1923,9 @@ module OneM2M_Functions {
 								
 								tc_ac.start;
 								alt {
-									[] mccPortIn.receive(mw_request(mw_delete(f_getLocalResourceAddress(vc_localRemoteCseIndex)))) -> value vc_request {
+									[] mccPortIn.receive(mw_request(mw_delete(f_getLocalResourceAddress(vc_localRemoteCseIndex)))) -> value v_msgIn {
 										tc_ac.stop;
-										f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive);
+										f_processDeleteRequestPrimitive(v_msgIn.primitive.requestPrimitive);
 										f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive));
 										log(__SCOPE__&": INFO: Deregistration performed successfully");
 									}
@@ -2125,6 +2126,7 @@ module OneM2M_Functions {
 			function f_cse_retrieveResource(integer p_resourceIndex, in template(omit) XSD.ID p_virtualResource := omit) runs on AeSimu return PrimitiveContent{
 				
 				var XSD.ID v_resourceAddress;
+				var MsgIn v_retrievedResponse;
 				
 				if(isvalue(p_virtualResource)) {
 					v_resourceAddress := f_getResourceAddress(p_resourceIndex) & "/" & valueof(p_virtualResource);
@@ -2132,14 +2134,14 @@ module OneM2M_Functions {
 					v_resourceAddress := f_getResourceAddress(p_resourceIndex);
 				}
 
-				f_send(e_mcaPort, m_request(m_retrieve(v_resourceAddress, f_getOriginator(p_resourceIndex))));
+				f_send(e_mcaPort, m_request(m_retrieve(v_resourceAddress, f_getOriginator(p_resourceIndex))), false);
 				tc_ac.start;
 				alt {
-					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_retrievedResponse {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__&":INFO: Resource retrieved successfuly");
 					}
-					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 						tc_ac.stop;
 						setverdict(inconc, __SCOPE__&":INFO: Error while retrieving resource");
 					}
@@ -2150,7 +2152,7 @@ module OneM2M_Functions {
 				
 				f_checkAeSimuStatus();
 				
-				return vc_response.primitive.responsePrimitive.primitiveContent;
+				return v_retrievedResponse.primitive.responsePrimitive.primitiveContent;
 				
 			}// end f_cse_retrieveResource	
 			
@@ -2165,6 +2167,7 @@ module OneM2M_Functions {
 			function f_cse_retrieveResourceWithRoleToken(integer p_resourceIndex, template (omit) XSD.ID p_roleResourceID := omit, template (omit) XSD.ID p_tokenResourceID := omit) runs on AeSimu return PrimitiveContent{
 
 				var template RequestPrimitive v_retrieveRequest;
+				var MsgIn v_retrievedResponse;
 				v_retrieveRequest := m_retrieve(f_getResourceAddress(p_resourceIndex), f_getOriginator(p_resourceIndex));
 				if (ispresent(p_roleResourceID)) {v_retrieveRequest.roleIDs := {p_roleResourceID};}
 				if (ispresent(p_tokenResourceID)) {v_retrieveRequest.tokenIDs := {p_tokenResourceID};}
@@ -2172,11 +2175,11 @@ module OneM2M_Functions {
 				
 				tc_ac.start;
 				alt {
-					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_retrievedResponse {
 						tc_ac.stop;
 						setverdict(pass, __SCOPE__&":INFO: Resource retrieved successfuly");
 					}
-					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 						tc_ac.stop;
 						setverdict(inconc, __SCOPE__&":INFO: Error while retrieving resource");
 					}
@@ -2187,7 +2190,7 @@ module OneM2M_Functions {
 				
 				f_checkAeSimuStatus();
 				
-				return vc_response.primitive.responsePrimitive.primitiveContent;
+				return v_retrievedResponse.primitive.responsePrimitive.primitiveContent;
 				
 			}// end f_cse_retrieveResourceWithRole	
 			
@@ -2968,7 +2971,8 @@ module OneM2M_Functions {
 					var integer v_announcedResourceIndex;
 					var RequestPrimitive v_request;
 					var ResponsePrimitive v_response;
-					template XSD.AnyURI v_announcedResourceAddress := pattern "{vc_cseSimuDesc.cseId}*";
+					var XSD.ID v_cseIdPattern := vc_cseSimuDesc.cseId;
+					template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cseIdPattern}*";
 					
 					
 					//Activate defaults when running on a PTC
@@ -3782,7 +3786,7 @@ module OneM2M_Functions {
 			 * @param  p_resourceType      Type of the resource to be created
 			 * @return Index of internal created resource
 			 */
-			function f_generateAndSetLocalResource(in template(omit) PrimitiveContent p_resource := omit, in integer p_parentIndex := vc_cSEBaseIndex, in ResourceType p_resourceType) runs on CseSimu return integer {
+			function f_generateAndSetLocalResource(in template(omit) PrimitiveContent p_resource := omit, in integer p_parentIndex := 0, in ResourceType p_resourceType) runs on CseSimu return Integer { //vc_cSEBaseIndex, in ResourceType p_resourceType) runs on CseSimu return Integer {
 
 				var PrimitiveContent v_localResource;
 				var integer v_localResourceIndex;
@@ -3802,7 +3806,7 @@ module OneM2M_Functions {
 			 * @param  p_resourceType      Type of the resource to be created
 			 * @return Internal created resource
 			 */
-			function f_generateLocalResource(in template(omit) PrimitiveContent p_resource := omit, in integer p_parentIndex := vc_cSEBaseIndex, in ResourceType p_resourceType) runs on CseSimu return PrimitiveContent {
+			function f_generateLocalResource(in template(omit) PrimitiveContent p_resource := omit, in integer p_parentIndex := 0, in ResourceType p_resourceType) runs on CseSimu return PrimitiveContent { //vc_cSEBaseIndex, in ResourceType p_resourceType) runs on CseSimu return PrimitiveContent {
 
 				var integer v_resourceIndex := lengthof(vc_localResourcesList);
 				var PrimitiveContent v_myResource;
@@ -3815,6 +3819,8 @@ module OneM2M_Functions {
 					v_myResource.cSEBase.creationTime := "20171231T012345";
 					v_myResource.cSEBase.lastModifiedTime := v_myResource.cSEBase.creationTime;		
 					v_myResource.cSEBase.cseType := vc_cseType;
+					v_myResource.cSEBase.resourceID := f_resourceIdCleaner(v_myResource.cSEBase.resourceID);
+					v_myResource.cSEBase.pointOfAccess := {f_getLocalPoA(vc_cseSimuDesc.mccPortIn, "")};
 					}	    
 				}else if(p_resourceType == int16 and ispresent(p_resource)) {			//RemoteCSE
 					if(ischosen(p_resource.remoteCSE)){
@@ -4373,7 +4379,7 @@ module OneM2M_Functions {
 						vc_localResourcesList[p_localResourceIndex].resource.containerAnnc.maxInstanceAge := p_resource.containerAnnc.maxInstanceAge;
 					}
 					if(isvalue(p_nullFields)) {
-						if (p_nullFields[0] == "maxByteSize") {
+						if (valueof(p_nullFields[0]) == "maxByteSize") {
 							vc_localResourcesList[p_localResourceIndex].resource.containerAnnc.maxByteSize := omit;
 						}
 					}
@@ -4397,7 +4403,7 @@ module OneM2M_Functions {
 						vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxInstanceAge := p_resource.timeSeriesAnnc.maxInstanceAge;
 					}
 					if(isvalue(p_nullFields)) {
-						if (p_nullFields[0] == "maxByteSize") {
+						if (valueof(p_nullFields[0]) == "maxByteSize") {
 							vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxByteSize := omit;
 						}
 					}
@@ -4413,7 +4419,7 @@ module OneM2M_Functions {
 						vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.dynamicAuthorizationConsultationIDs := p_resource.groupAnnc.dynamicAuthorizationConsultationIDs;
 					}
 					if(isvalue(p_nullFields)) {
-						if (p_nullFields[0] == "maxNrOfMembers") {
+						if (valueof(p_nullFields[0]) == "maxNrOfMembers") {
 							vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.maxNrOfMembers := omit;
 						}
 					}
@@ -4599,7 +4605,8 @@ module OneM2M_Functions {
 				var MsgIn v_request;
 				var ResponsePrimitive v_response;
 				var RequestPrimitive v_requestPrimitive;
-				var template XSD.AnyURI v_retargetingToCse2 := pattern "{PX_TS_CSE2.cseId}*";
+				var XSD.ID v_cseIdPattern := PX_TS_CSE2.cseId;
+				var template XSD.AnyURI v_retargetingToCse2 := pattern "{v_cseIdPattern}*";
 				
 				//Retargeting
 				[vc_auxiliaryCse2Up] mccPortIn.receive(mw_request(mw_requestPrimitive(-, v_retargetingToCse2))) -> value v_request {
@@ -4713,7 +4720,7 @@ module OneM2M_Functions {
 
 					//Send response in any case
 					v_response := valueof(m_responseNotification(int2000, omit));
-					v_response.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier;
+					v_response.requestIdentifier := v_request.primitive.requestPrimitive.requestIdentifier;
 					f_send(e_mcaPortIn, m_response(v_response));
 					repeat;
 				}
@@ -4722,7 +4729,7 @@ module OneM2M_Functions {
 
 					//Send response in any case
 					v_response := valueof(m_responseNotification(int2000, omit));
-					v_response.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier;
+					v_response.requestIdentifier := v_request.primitive.requestPrimitive.requestIdentifier;
 					f_send(e_mcaPortIn, m_response(v_response));
 					repeat;
 				}
@@ -4962,7 +4969,7 @@ module OneM2M_Functions {
 		
 		group CseSimuFunctions {
 
-			function f_ae_createPollingChannel(template UtTriggerPrimitive p_utRequest := m_utCreateAe, integer p_parentIndex := vc_cSEBaseIndex) runs on CseSimu return integer {
+			function f_ae_createPollingChannel(template UtTriggerPrimitive p_utRequest := m_utCreateAe, integer p_parentIndex := 0) runs on CseSimu return integer { //vc_cSEBaseIndex) runs on CseSimu return integer {
 				var MsgIn v_request;
 				var PrimitiveContent v_modifiedResource;
 				var integer v_resourceIndex, v_parentIndex;
@@ -6015,10 +6022,11 @@ module OneM2M_Functions {
 			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.wsBindingDesc.bindingDesc.localPort);
 			    }
 			}
-			v_poa := v_poa & "/" & p_additionalContext;
-      
-      return v_poa;
-
+			if(p_additionalContext != ""){
+				v_poa := v_poa & "/" & p_additionalContext;
+			}
+			
+            return v_poa;
 		}
 		
 		/**
@@ -6053,7 +6061,9 @@ module OneM2M_Functions {
 			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.wsBindingDesc.bindingDesc.remotePort);
 			    }
 			}
-			v_poa := v_poa & "/" & p_additionalContext;
+			if(p_additionalContext != ""){
+				v_poa := v_poa & "/" & p_additionalContext;
+			}
 			
 			return v_poa;
 		}
@@ -6237,7 +6247,7 @@ module OneM2M_Functions {
 		 * @return Resource address for the given resource
 		 * @verdict 
 		 */
-		function f_getLocalResourceAddress(integer  p_targetResourceIndex := vc_cSEBaseIndex, AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on CseSimu return XSD.ID {
+		function f_getLocalResourceAddress(integer  p_targetResourceIndex := 0, AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on CseSimu return XSD.ID { //TODO vc_cSEBaseIndex, AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on CseSimu return XSD.ID {
 			var XSD.ID v_resourceAddress;
 			
 			if(p_primitiveScope == e_cseRelative) {
@@ -6462,7 +6472,7 @@ module OneM2M_Functions {
 		 * @return Internal resource index of the saved resource
 		 * @verdict 
 		 */
-		function f_setLocalResource(PrimitiveContent p_resource, ResourceType p_resourceType, integer  p_parentIndex := vc_cSEBaseIndex) runs on CseSimu return integer {
+		function f_setLocalResource(PrimitiveContent p_resource, ResourceType p_resourceType, integer  p_parentIndex := 0) runs on CseSimu return integer { //vc_cSEBaseIndex) runs on CseSimu return integer {
 			var integer v_newIndex := -1;	
 			if(isbound(vc_localResourcesList)) {
 				vc_localResourcesList[lengthof(vc_localResourcesList)] := {p_parentIndex, p_resourceType, p_resource};
@@ -7364,7 +7374,7 @@ module OneM2M_Functions {
 						}
 					}
 					case ("MqttSetDefaultTopicToNotRegistration") {
-						acPort.send(AcRequestPrimitive:{p_event, {charstring := oct2str(unichar2oct(p_originator))}});
+						acPort.send(AcRequestPrimitive:{p_event, {charstring := oct2char(unichar2oct(valueof(p_originator)))}});
 					}
 					case ("MqttSetDefaultTopicToRegistration") {
 						acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_resourceIndex)}});
@@ -7716,7 +7726,8 @@ module OneM2M_Functions {
 		
 		function f_send(
 		                in InterfaceIds p_interfaceIds, 
-		                in template MsgOut p_msgOut
+		                in template MsgOut p_msgOut,
+		                in boolean p_storingRequest := true
 		) runs on Tester {
 			log(">>> f_send: ", p_interfaceIds, " - ", p_msgOut);
 			
@@ -7725,8 +7736,10 @@ module OneM2M_Functions {
 			p_msgOut.serialization := vc_myInterfaces[enum2int(p_interfaceIds)].mySerialization;
 			log("f_send: protocolBinding=", p_msgOut.protocolBinding);
 			if(ischosen(p_msgOut.primitive.requestPrimitive)){
-				p_msgOut.primitive.requestPrimitive.requestIdentifier := p_msgOut.primitive.requestPrimitive.requestIdentifier & f_rnd(1, 1000000);
-				vc_request.primitive.requestPrimitive := valueof(p_msgOut.primitive.requestPrimitive);
+				p_msgOut.primitive.requestPrimitive.requestIdentifier := valueof(p_msgOut.primitive.requestPrimitive.requestIdentifier) & f_rnd(1, 1000000);
+				if(p_storingRequest){
+					vc_request.primitive.requestPrimitive := valueof(p_msgOut.primitive.requestPrimitive);
+				}
 			}
 			if(not(vc_componentRegistered)) {
 				if(valueof(p_msgOut.protocolBinding) == "MQTT") {
@@ -7735,14 +7748,14 @@ module OneM2M_Functions {
 							if((valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int2) and (valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int16)){
 								//Modify default topic to publish a non-registration message
 								f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_));
-								vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+								f_sendWrapper(p_interfaceIds, p_msgOut);
 								f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
 								return;
 							}
 						} else {//RETRIEVE - UPDATE - DELETE - NOTIFY
 							//Modify default topic to publish a non-registration message
 							f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_));
-							vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+							f_sendWrapper(p_interfaceIds, p_msgOut);
 							f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
 							return;
 						}
@@ -7750,7 +7763,27 @@ module OneM2M_Functions {
 				} 
 			}
 			//TODO: Handle response to normal messages before CSE registration occurs
-			vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+			f_sendWrapper(p_interfaceIds, p_msgOut);
+		}
+		
+		function f_sendWrapper(in InterfaceIds p_interfaceIds,in template MsgOut p_msgOut) runs on Tester {
+		
+			select (p_interfaceIds) {
+			  
+			  	case (e_mcaPort) {
+					mcaPort.send(p_msgOut);	  		
+			  	}
+			  	case (e_mcaPortIn) {
+					mcaPortIn.send(p_msgOut);	  		
+			  	}
+				case (e_mccPort) {
+					mccPort.send(p_msgOut);	  		
+			  	}
+				case (e_mccPortIn) {
+					mccPortIn.send(p_msgOut);	  		
+			  	}
+			}
+		
 		}
 		
 		/**
diff --git a/LibOneM2M/OneM2M_Ports.ttcn b/LibOneM2M/OneM2M_Ports.ttcn
index e6318658566c48393787314c9b0fc0a05c1d3969..520b7f7ca7a7694fe53b21d1a206f78c6bcfcdbf 100644
--- a/LibOneM2M/OneM2M_Ports.ttcn
+++ b/LibOneM2M/OneM2M_Ports.ttcn
@@ -54,9 +54,9 @@ module OneM2M_Ports {
 	 * @desc Input MsgIn 
 	 * @desc this port is allowed to extend for futher usage  
 	 */
-	type port OneM2M_McnPort message {
+	type port OneM2M_McnPortT8 message {
 		inout T8Primitive;
-		map param (in McnPortDesc p_mcnPortDesc);
+		map param (in McnPortDescT8Port p_mcnPortDesc);
 	};
 	
 	/**
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index a19c8090481c6fc9862a4f1b012523b2dbf42675..ab731eaad41818a484a28fb87d1cf3c19e15e0b1 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -17,7 +17,7 @@ module OneM2M_Templates {
 	import from OneM2M_Types all;
 	import from OneM2M_TypesAndValues all;
 	import from OneM2M_Pixits all;
-	import from OneM2M_Functions all;
+	//import from OneM2M_Functions all;
 	
 	import from OneM2M_Types_3GPP_T8 all;
 
@@ -3415,7 +3415,7 @@ module OneM2M_Templates {
 		template (value) CSEBase_optional m_contentCSEBase(in CseSimuComponentDesc p_componentDesc):= {
 			resourceName := p_componentDesc.cseName,//O
 			resourceType := int5,
-			resourceID := f_resourceIdCleaner(p_componentDesc.cseResourceId),
+			resourceID := p_componentDesc.cseResourceId,
 			parentID := "",//Following TS-0001, it must be NULL. Set to a value for Codec to set it to null
 			creationTime := omit,
 			lastModifiedTime := omit,
@@ -3424,7 +3424,7 @@ module OneM2M_Templates {
 			cseType := omit,
 			cSE_ID := p_componentDesc.cseId,
 			supportedResourceType := p_componentDesc.supportedResourceType,
-			pointOfAccess := {f_getLocalPoA(p_componentDesc.mccPortIn, "")},
+			pointOfAccess := {"NotInitialized"},
 			nodeLink := omit,
 			dynamicAuthorizationConsultationIDs := omit,
 			contentSerialization := omit,
@@ -3470,9 +3470,9 @@ module OneM2M_Templates {
 			creationTime := omit,//NA M
 			lastModifiedTime := omit,//NA M
 			labels := p_labels,//MA O
-			accessControlPolicyIDs := p_accessControlPolicyIds,//MA O
 			expirationTime := "29991231T235959",//MA M
 			link := p_link,//M
+			accessControlPolicyIDs := p_accessControlPolicyIds,//MA O
 			cseType := omit,//OA O
 			cSE_ID := omit,//OA M
 			supportedResourceType := omit,//OA M
@@ -3497,9 +3497,9 @@ module OneM2M_Templates {
 			creationTime := omit,//NA M
 			lastModifiedTime := omit,//NA M
 			labels := p_labels,//MA O
-			accessControlPolicyIDs := p_accessControlPolicyIds,//MA O
 			expirationTime := ?,//MA M
 			link := p_link,//M
+			accessControlPolicyIDs := p_accessControlPolicyIds,//MA O
 			cseType := *,//OA O
 			cSE_ID := *,//OA M
 			supportedResourceType := ?,//OA M
@@ -3870,8 +3870,8 @@ module OneM2M_Templates {
 			labels := ?,//M
 			accessControlPolicyIDs := ?,//M
 			expirationTime := ?,//M
-			dynamicAuthorizationConsultationIDs := *, //O
 			link := ?,//M
+			dynamicAuthorizationConsultationIDs := *, //O
 			nodeID := ?,//M
 			hostedCSELink := *,//O
 			hostedAELinks := *,//O
@@ -4572,16 +4572,16 @@ module OneM2M_Templates {
 			resourceType := omit,	//NP
 			resourceID := omit,	//NP
 			parentID := omit,	//NP
-			accessControlPolicyIDs := omit,	//O
 			creationTime := omit,	//NP
-			expirationTime := omit,	//O
 			lastModifiedTime := omit,	//NP
 			labels := omit,	//O
+			accessControlPolicyIDs := omit,	//O
+			expirationTime := omit,	//O
+			dynamicAuthorizationConsultationIDs := omit,	//O
 			announceTo := omit,	//O
 			announcedAttribute := omit,	//O
-			dynamicAuthorizationConsultationIDs := omit,	//O
-			creator := omit,	//O
 			stateTag := omit,	//NP
+			creator := omit,	//O
 			choice := omit	//NP
 		};
 		
@@ -4592,14 +4592,14 @@ module OneM2M_Templates {
 			resourceType := omit,	//NP
 			resourceID := omit,	//NP
 			parentID := omit,	//NP
-			accessControlPolicyIDs := omit,	//O
 			creationTime := omit, //NP
-			expirationTime := omit, //O
 			lastModifiedTime := omit, //NP
 			labels := omit,	//O
+			accessControlPolicyIDs := omit,	//O
+			expirationTime := omit, //O
+			dynamicAuthorizationConsultationIDs := omit, //O
 			announceTo := omit,	//O
 			announcedAttribute := omit,	//O
-			dynamicAuthorizationConsultationIDs := omit, //O
 			creator := omit,	//O
             description := omit, //O
             ontologyFormat := p_ontologyFormat, //M
@@ -4618,14 +4618,14 @@ module OneM2M_Templates {
 			resourceType := omit,                           //NP
 			resourceID := omit,                             //NP
 			parentID := omit,                               //NP
-			accessControlPolicyIDs := omit,                 //O
 			creationTime := omit,                           //NP
-			expirationTime := omit,                         //O
 			lastModifiedTime := omit,                       //NP
 			labels := omit,                                 //O
+			accessControlPolicyIDs := omit,                 //O
+			expirationTime := omit,                         //O
+			dynamicAuthorizationConsultationIDs := omit,    //O
 			announceTo := omit,                             //O
 			announcedAttribute := omit,                     //O
-			dynamicAuthorizationConsultationIDs := omit,    //O
 			creator := omit,                                //O
 			descriptorRepresentation := p_descriptorRepresentation,               //M
 			semanticOpExec := omit,                         //NP
@@ -4646,14 +4646,14 @@ module OneM2M_Templates {
 			resourceType := omit,                           //NP
 			resourceID := omit,                             //NP
 			parentID := omit,                               //NP
-			accessControlPolicyIDs := *,                 //O
 			creationTime := omit,                           //NP
-			expirationTime := *,                         //O
 			lastModifiedTime := omit,                       //NP
 			labels := *,                                 //O
+			accessControlPolicyIDs := *,                 //O
+			expirationTime := *,                         //O
+			dynamicAuthorizationConsultationIDs := *,    //O
 			announceTo := *,                             //O
 			announcedAttribute := *,                     //O
-			dynamicAuthorizationConsultationIDs := *,    //O
 			creator := *,                                //O
 			descriptorRepresentation := ?,               //M
 			semanticOpExec := omit,                         //NP
@@ -4875,7 +4875,7 @@ module OneM2M_Templates {
 			subscriberURI := p_subscriberURI//O
 		};
 		
-		template (value) EventNotificationCriteria m_eventNotificationCriteria ( in EventNotificationCriteria.notificationEventType_list p_notificationEventType_list := {}, template (omit) EventNotificationCriteria.attribute p_attribute_list := omit) := { //the parameter should be a list of NotificationEventTypeEventType
+		template (value) EventNotificationCriteria m_eventNotificationCriteria ( template (omit) EventNotificationCriteria.notificationEventType_list p_notificationEventType_list := omit, template (omit) EventNotificationCriteria.attribute p_attribute_list := omit) := { //the parameter should be a list of NotificationEventTypeEventType
 			createdBefore := omit,
 			createdAfter := omit,
 			modifiedSince := omit,
@@ -7549,14 +7549,14 @@ module OneM2M_Templates {
 			resourceType := omit,                           //NP
 			resourceID := omit,                             //NP
 			parentID := omit,                               //NP
-			accessControlPolicyIDs := omit,                 //O
 			creationTime := omit,                           //NP
-			expirationTime := omit,                         //O
 			lastModifiedTime := omit,                       //NP
 			labels := omit,                                 //O
+			accessControlPolicyIDs := omit,                 //O
+			expirationTime := omit,                         //O
+			dynamicAuthorizationConsultationIDs := omit,    //O
 			announceTo := omit,                             //O
 			announcedAttribute := omit,                     //O
-			dynamicAuthorizationConsultationIDs := omit,    //O
 			creator := omit,                                //O
 			descriptorRepresentation := omit,               //M
 			semanticOpExec := omit,                         //NP
@@ -8756,10 +8756,10 @@ module OneM2M_Templates {
 			resourceType := int16,//M
 			resourceID := p_componentDesc.cseResourceId,//M
 			pointOfAccess := {p_pointOfAccess},//O
-			e2eSecInfo := p_e2eSecInfo,//O
 			cSEBase := p_componentDesc.cseId & "/" & p_componentDesc.cseName,//M
 			cSE_ID := p_componentDesc.cseId,//M
-			requestReachability := true//M
+			requestReachability := true,//M
+			e2eSecInfo := p_e2eSecInfo//O
 		};
 		
 		
@@ -8957,19 +8957,19 @@ module OneM2M_Templates {
 		                                                                          MashupMemberStoreType p_memberStoreType := int1,
 																				  MashupResultGenType p_resultGenType := int1 ) := {  //when SMI is created
 
+			resourceName := p_resourceName, //M
 			resourceType := int41, //M
 			resourceID := omit, //M
-			resourceName := p_resourceName, //M
 			parentID := p_parentID, //M
-			expirationTime := p_expirationTime, //M
-			accessControlPolicyIDs := omit, //O
-			labels := omit, //O
 			creationTime := p_creationTime, //M
 			lastModifiedTime := p_lastModifiedTime, //M
+			labels := omit, //O
+			accessControlPolicyIDs := omit, //O
+			expirationTime := p_expirationTime, //M
+			dynamicAuthorizationConsultationIDs := omit, //O
 			announceTo := omit, //O
 			announcedAttribute := omit, //O
 			creator := omit, //O
-			dynamicAuthorizationConsultationIDs := omit, //O
 			smjpID := p_smjpID, //M
 			smjpInputParameter := omit,//O
 			memberStoreType := p_memberStoreType, //M
@@ -10812,9 +10812,9 @@ module OneM2M_Templates {
 				resultPersistence := omit,
 				resultContent := omit,
 				eventCategory := omit,
-				filterCriteria := omit,
 				deliveryAggregation := omit,
 				groupRequestIdentifier := omit,
+				filterCriteria := omit,
 				desiredIdentifierResultType := omit,
 				tokens := omit,
 				tokenIDs := omit,
@@ -11248,95 +11248,96 @@ module OneM2M_Templates {
 				apiName             := "3gpp-device-triggering"
 			} // End of template mw_uri_3gpp_device_triggering
 			
-			group t8_request {
-				
-				template (omit) T8Request m_t8_request_get(
+		
+		group t8_request {
+			
+			template (omit) T8Request m_t8_request_get(
+																								in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
+																								in template (value) RequestHeaders p_requestHeaders,
+																								in template (omit) RequestBodyT8 p_requestBody := omit
+																								) := {
+				resourceMethod := GET,
+				resourceUri    := p_resourceUri,
+				requestHeaders := p_requestHeaders,
+				requestBody    := p_requestBody
+			} // End of template m_t8_request_get
+			
+			template (omit) T8Request m_t8_request_post(
 																									in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
 																									in template (value) RequestHeaders p_requestHeaders,
-																									in template (omit) RequestBody p_requestBody := omit
-																									) := {
-					resourceMethod := GET,
-					resourceUri    := p_resourceUri,
-					requestHeaders := p_requestHeaders,
-					requestBody    := p_requestBody
-				} // End of template m_t8_request_get
-				
-				template (omit) T8Request m_t8_request_post(
+																									in template (omit) RequestBodyT8 p_requestBody := omit
+																									) modifies m_t8_request_get := {
+				resourceMethod := POST
+			} // End of template m_t8_request_post
+			
+			template (present) T8Request mw_t8_request_post(
+																											template (present) OneM2M_Types_3GPP_T8.URI p_resourceUri := ?,
+																											template (present) RequestHeaders p_requestHeaders := ?,
+																											template (present) RequestBodyT8 p_requestBody := ?
+																											) := {
+				resourceMethod := POST,
+				resourceUri    := p_resourceUri,
+				requestHeaders := p_requestHeaders,
+				requestBody    := p_requestBody
+			} // End of template mw_t8_request_post
+			
+			template (omit) T8Request m_t8_request_delete(
 																										in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
 																										in template (value) RequestHeaders p_requestHeaders,
-																										in template (omit) RequestBody p_requestBody := omit
+																										in template (omit) RequestBodyT8 p_requestBody := omit
 																										) modifies m_t8_request_get := {
-					resourceMethod := POST
-				} // End of template m_t8_request_post
-				
-				template (present) T8Request mw_t8_request_post(
+				resourceMethod := DELETE
+			} // End of template m_t8_request_delete
+			
+			template (present) T8Request mw_t8_request_delete(
+																												template (present) OneM2M_Types_3GPP_T8.URI p_resourceUri := ?,
+																												template (present) RequestHeaders p_requestHeaders := ?
+																												) := {
+				resourceMethod := DELETE,
+				resourceUri    := p_resourceUri,
+				requestHeaders := p_requestHeaders,
+				requestBody    := omit
+			} // End of template mw_t8_request_delete
+			
+			template (omit) T8Request m_t8_request_patch(
+																									in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
+																									in template (value) RequestHeaders p_requestHeaders,
+																									in template (omit) RequestBodyT8 p_requestBody := omit
+																									) modifies m_t8_request_get := {
+				resourceMethod := PATCH
+			} // End of template m_t8_request_patch
+			
+			template (present) T8Request mw_t8_request_patch(
 																												template (present) OneM2M_Types_3GPP_T8.URI p_resourceUri := ?,
 																												template (present) RequestHeaders p_requestHeaders := ?,
-																												template (present) RequestBody p_requestBody := ?
+																												template (present) RequestBodyT8 p_requestBody := ?
 																												) := {
-					resourceMethod := POST,
-					resourceUri    := p_resourceUri,
-					requestHeaders := p_requestHeaders,
-					requestBody    := p_requestBody
-				} // End of template mw_t8_request_post
-				
-				template (omit) T8Request m_t8_request_delete(
-																											in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
-																											in template (value) RequestHeaders p_requestHeaders,
-																											in template (omit) RequestBody p_requestBody := omit
-																											) modifies m_t8_request_get := {
-					resourceMethod := DELETE
-				} // End of template m_t8_request_delete
-				
-				template (present) T8Request mw_t8_request_delete(
-																													template (present) OneM2M_Types_3GPP_T8.URI p_resourceUri := ?,
-																													template (present) RequestHeaders p_requestHeaders := ?
-																													) := {
-					resourceMethod := DELETE,
-					resourceUri    := p_resourceUri,
-					requestHeaders := p_requestHeaders,
-					requestBody    := omit
-				} // End of template mw_t8_request_delete
-				
-				template (omit) T8Request m_t8_request_patch(
-																										in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
-																										in template (value) RequestHeaders p_requestHeaders,
-																										in template (omit) RequestBody p_requestBody := omit
-																										) modifies m_t8_request_get := {
-					resourceMethod := PATCH
-				} // End of template m_t8_request_patch
-				
-				template (present) T8Request mw_t8_request_patch(
-																													template (present) OneM2M_Types_3GPP_T8.URI p_resourceUri := ?,
-																													template (present) RequestHeaders p_requestHeaders := ?,
-																													template (present) RequestBody p_requestBody := ?
-																													) := {
-					resourceMethod := PATCH,
-					resourceUri    := p_resourceUri,
-					requestHeaders := p_requestHeaders,
-					requestBody    := p_requestBody
-				} // End of template mw_t8_request_patch
-				
-				template (omit) T8Request m_t8_request_put(
-																										in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
-																										in template (value) RequestHeaders p_requestHeaders,
-																										in template (omit) RequestBody p_requestBody := omit
-																										) modifies m_t8_request_get := {
-					resourceMethod := PUT
-				} // End of template m_t8_request_put
-				
-				template (present) T8Request mw_t8_request_put(
-																										template (present) OneM2M_Types_3GPP_T8.URI p_resourceUri := ?,
-																										template (present) RequestHeaders p_requestHeaders := ?,
-																										template (present) RequestBody p_requestBody := ?
-																										) := {
-					resourceMethod := PUT,
-					resourceUri    := p_resourceUri,
-					requestHeaders := p_requestHeaders,
-					requestBody    := p_requestBody
-				} // End of template mw_t8_request_put
-				
-			} // End of group t8_request
+				resourceMethod := PATCH,
+				resourceUri    := p_resourceUri,
+				requestHeaders := p_requestHeaders,
+				requestBody    := p_requestBody
+			} // End of template mw_t8_request_patch
+			
+			template (omit) T8Request m_t8_request_put(
+																									in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
+																									in template (value) RequestHeaders p_requestHeaders,
+																									in template (omit) RequestBodyT8 p_requestBody := omit
+																									) modifies m_t8_request_get := {
+				resourceMethod := PUT
+			} // End of template m_t8_request_put
+			
+			template (present) T8Request mw_t8_request_put(
+																									template (present) OneM2M_Types_3GPP_T8.URI p_resourceUri := ?,
+																									template (present) RequestHeaders p_requestHeaders := ?,
+																									template (present) RequestBodyT8 p_requestBody := ?
+																									) := {
+				resourceMethod := PUT,
+				resourceUri    := p_resourceUri,
+				requestHeaders := p_requestHeaders,
+				requestBody    := p_requestBody
+			} // End of template mw_t8_request_put
+			
+		} // End of group t8_request
 		
 			group t8_response {
 				
@@ -11418,92 +11419,91 @@ module OneM2M_Templates {
 					responseCode    := 404
 				} // End of template m_t8_response_404_not_found
 				
-				template (present) T8Response mw_t8_response_404_not_found(
-																																	template (present) ResponseHeaders p_responseHeaders := ?,
-																																	template (present) ProblemDetails p_problemDetails := ?
-																																	) modifies mw_t8_response_ko := {
-					responseCode    := 404
-				} // End of template mw_t8_response_404_not_found
-				
-			} // End of group t8_response
 			
-			group nidd {
+				template (present) T8Response mw_t8_response_404_not_found(
+																																template (present) ResponseHeaders p_responseHeaders := ?,
+																																template (present) ProblemDetails p_problemDetails := ?
+																																) modifies mw_t8_response_ko := {
+				responseCode    := 404
+			} // End of template mw_t8_response_404_not_found
+			
+		} // End of group t8_response
+		
+		group nidd {
+		
+			template (value) RequestBodyT8 m_request_body_niddConfiguration(in template (value) NiddConfiguration p_niddConfiguration) := {
+				individualNiddConfiguration := p_niddConfiguration
+			} // End of template m_request_body_niddConfiguration
+			
+			template (value) NiddConfiguration m_niddConfiguration := {
+				self_ := "self_value",
+				supportedFeatures := Notification_test_event,
+				mtcProviderId := "mtcProviderId_value",
+				externalId := "externalId_value",
+				msisdn := "msisdn_value",
+				externalGroupId := "externalGroupId_value",
+				duration_ := omit,
+				reliableDataService := omit,
+				rdsPorts := omit, 
+				pdnEstablishmentOptions := omit,
+				notificationDestination := "/", 
+				requestTestNotification := omit,
+				websockNotifConfig := omit,
+				maximumPacketSize := omit,
+				niddDownlinkDataTransfers := omit,
+				status := ACTIVE
+			} // End of template m_niddConfiguration
+			
+			template (present) NiddConfiguration mw_niddConfiguration(
+																																template (present) Link p_notificationDestination := ?
+																																) := {
+				self_ := *,
+				supportedFeatures := *,
+				mtcProviderId := *,
+				externalId := *,
+				msisdn := *,
+				externalGroupId := *,
+				duration_ := *,
+				reliableDataService := *,
+				rdsPorts := *, 
+				pdnEstablishmentOptions := *,
+				notificationDestination := p_notificationDestination, 
+				requestTestNotification := *,
+				websockNotifConfig := *,
+				maximumPacketSize := *,
+				niddDownlinkDataTransfers := *,
+				status := *
+			} // End of template mw_niddConfiguration
+			
+			template (present) ResponseBody mw_response_body_niddConfigurations(
+																																					template (present) NiddConfigurations p_niddConfigurations := ?
+																																					) := {
+				niddConfigurations := p_niddConfigurations
+			} // End of template mw_response_body_niddConfigurations
 			
-				template (value) RequestBody m_request_body_niddConfiguration(
-																																			in template (value) NiddConfiguration p_niddConfiguration
-																																			) := {
-					individualNiddConfiguration := p_niddConfiguration
-				} // End of template m_request_body_niddConfiguration
-				
-				template (value) NiddConfiguration m_niddConfiguration := {
-					self_ := "self_value",
-					supportedFeatures := Notification_test_event,
-					mtcProviderId := "mtcProviderId_value",
-					externalId := "externalId_value",
-					msisdn := "msisdn_value",
-					externalGroupId := "externalGroupId_value",
-					duration_ := omit,
-					reliableDataService := omit,
-					rdsPorts := omit, 
-					pdnEstablishmentOptions := omit,
-					notificationDestination := "/", 
-					requestTestNotification := omit,
-					websockNotifConfig := omit,
-					maximumPacketSize := omit,
-					niddDownlinkDataTransfers := omit,
-					status := ACTIVE
-				} // End of template m_niddConfiguration
-				
-				template (present) NiddConfiguration mw_niddConfiguration(
-																																	template (present) Link p_notificationDestination := ?
-																																	) := {
-					self_ := *,
-					supportedFeatures := *,
-					mtcProviderId := *,
-					externalId := *,
-					msisdn := *,
-					externalGroupId := *,
-					duration_ := *,
-					reliableDataService := *,
-					rdsPorts := *, 
-					pdnEstablishmentOptions := *,
-					notificationDestination := p_notificationDestination, 
-					requestTestNotification := *,
-					websockNotifConfig := *,
-					maximumPacketSize := *,
-					niddDownlinkDataTransfers := *,
-					status := *
-				} // End of template mw_niddConfiguration
-				
-				template (present) ResponseBody mw_response_body_niddConfigurations(
-																																						template (present) NiddConfigurations p_niddConfigurations := ?
-																																						) := {
-					niddConfigurations := p_niddConfigurations
-				} // End of template mw_response_body_niddConfigurations
-				
-				template (present) ResponseBody mw_response_body_individualNiddConfiguration(
-																																										template (present) NiddConfiguration p_individualNiddConfiguration := ?
-																																										) := {
-					individualNiddConfiguration := p_individualNiddConfiguration
-				} // End of template mw_response_body_individualNiddConfiguration
-				
-			} // End of group nidd
+			template (present) ResponseBody mw_response_body_individualNiddConfiguration(
+																																									template (present) NiddConfiguration p_individualNiddConfiguration := ?
+																																									) := {
+				individualNiddConfiguration := p_individualNiddConfiguration
+			} // End of template mw_response_body_individualNiddConfiguration
+							
+		} // End of group nidd
 			
 			group deviceTriggering {
 			
-				template (value) RequestBody m_request_body_deviceTriggering(
+				template (value) RequestBodyT8 m_request_body_deviceTriggering(
 																																			in template (value) DeviceTriggering p_deviceTriggeringTransaction
 																																			) := {
 					individualDeviceTriggeringTransaction := p_deviceTriggeringTransaction
 				} // End of template m_request_body_deviceTriggering
 				
-				template (present) RequestBody mw_request_body_deviceTriggering(
+				template (present) RequestBodyT8 mw_request_body_deviceTriggering(
 																																			template (present) DeviceTriggering p_deviceTriggeringTransaction := ?
 																																			) := {
 					individualDeviceTriggeringTransaction := p_deviceTriggeringTransaction
 				} // End of template mw_request_body_deviceTriggering
 				
-				template (present) RequestBody mw_request_body_deviceTriggeringDeliveryReportNotification(
+				template (present) RequestBodyT8 mw_request_body_deviceTriggeringDeliveryReportNotification(
 																																																	template (present) DeviceTriggeringDeliveryReportNotification p_deviceTriggeringDeliveryReportNotification := ?
 																																																	) := {
 					deviceTriggeringDeliveryReportNotification := p_deviceTriggeringDeliveryReportNotification
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index 66b9933e5f4bf0a660b921ee6069df3ec97caf6a..7b17688e434d5682aee88a44c2dee509e90d7cf4 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -30,12 +30,12 @@ module OneM2M_TestSystem {
   }
   
   type record Interface {
-	  OneM2MPort myPort,
-	  charstring myHost,
-	  charstring myProtocolBinding,
-	  charstring mySerialization
+	InterfaceIds myPort,
+	charstring myHost,
+	charstring myProtocolBinding,
+	charstring mySerialization
   }
-  
+	
   type record of Interface Interfaces;
   
 	type component Tester {
@@ -43,6 +43,12 @@ module OneM2M_TestSystem {
 		port AdapterControlPort acPort;
 		port InfoPort infoPort;
 		port UpperTesterPort utPort;
+		//Ports for AeSimu/CseSimu
+		port OneM2MPort mcaPort;
+		port OneM2MPort mcaPortIn;
+		port OneM2MPort mccPort;
+		port OneM2MPort mccPortIn;
+		port OneM2MPortInternal mccPortInternal;
 		//Common timers
 		timer tc_ac := PX_TAC;
 		timer tc_wait := PX_TWAIT;
@@ -73,9 +79,6 @@ module OneM2M_TestSystem {
 		//Attached components depending on config
 		var AeSimu vc_ae2;
 		var CseSimu vc_cse1;//For CF02 when AeSimu is master
-		//Ports
-		port OneM2MPort mcaPort;
-		port OneM2MPort mcaPortIn;
 		//global variables
 		//About configuration of the component
 		var AeSimuComponentDesc vc_aeSimuDesc;
@@ -94,12 +97,6 @@ module OneM2M_TestSystem {
 		//Attached components depending on config
 		var AeSimu vc_ae1;//For CF02 when CseSimu is master
 		var CseSimu vc_cse2;
-		//Ports
-		port OneM2MPort mcaPort;
-		port OneM2MPort mcaPortIn;
-		port OneM2MPort mccPort;
-		port OneM2MPort mccPortIn;
-		port OneM2MPortInternal mccPortInternal;
 		//global variables
 		//About configuration of the component
 		var CseSimuComponentDesc vc_cseSimuDesc;
@@ -121,8 +118,8 @@ module OneM2M_TestSystem {
 		var CseSimu vc_cse1;
 		//Attached components depending on config
 		//Ports
-		port OneM2M_McnPort mcnPort;
-		port OneM2M_McnPort mcnPortIn;
+		port OneM2M_McnPortT8 mcnPort;
+		port OneM2M_McnPortT8 mcnPortIn;
 		//global variables
 		var AeSimuComponentDesc vc_aeSimuDesc;
 		var CseSimuComponentDesc vc_cseSimuDesc;
@@ -159,8 +156,8 @@ module OneM2M_TestSystem {
 	}		
 
 	type component ScefSystem extends CseSystem {
-		port OneM2M_McnPort mcnPort;
-		port OneM2M_McnPort mcnPortIn;
+		port OneM2M_McnPortT8 mcnPort;
+		port OneM2M_McnPortT8 mcnPortIn;
 	}		
 	
 }// end of module
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index af5e13efc3d6b41852fe9f58369f6b279a3d8897..bec718c99f12094ca3421bc04656a305a4e3ac26 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -4222,7 +4222,9 @@ with {
 
 }//end group OptionalResourceTypes
 	
-	
+with {
+  	encode "XML";
+}	
 	
 group InvalidTypes {
 		
@@ -4650,6 +4652,10 @@ group InvalidTypes {
        
 }//end group invalidTypes
 
+with {
+  	encode "XML";
+}
+
 group OtherTypes {
 	
 	type set of charstring SetOfCharstring;
@@ -4882,6 +4888,9 @@ group OtherTypes {
 	TimeSeries_invalid timeSeries_invalid 
 }
 	
+}
+with {
+  	encode "XML";
 }
 
 	group tsSettings {
@@ -4970,10 +4979,11 @@ group OtherTypes {
 		MqttBindingDesc mqttBindingDesc,
 		WSBindingDesc   wsBindingDesc
 	}
-
-	template BindingProtocolsSelect m_httpBindingDesc := {
-		httpBindingDesc := ?
-	}
+	
+	//TODO To be removed when restricted union type is supported in Titan
+	type union BindingProtocolsSelectT8Port {
+		HttpBindingDesc httpBindingDesc
+	};
         
 	/**
 	 * @desc 
@@ -4992,12 +5002,11 @@ group OtherTypes {
 	 * @member serialization
 	 */
 	type record T8PortDesc {
-		BindingProtocolsSelect binding ({httpBindingDesc := ?}),
+		//TODO To be replaced by  BindingProtocolsSelect binding ({httpBindingDesc := ?}) when restricted union type is supported in Titan
+		BindingProtocolsSelectT8Port binding, 
 		SerializationRepresentations serialization ("json")
 	}
 	
-	type BindingProtocolsSelect MyInterface ({httpBindingDesc:=?}, {coapBindingDesc := ?});
-	
 	/**
 	 * @desc 
 	 * @member binding
@@ -5007,9 +5016,8 @@ group OtherTypes {
 		T8PortDesc t8PortDesc
 	}
     
-	template McnPortDesc m_t8PortDesc := {
-		t8PortDesc := ?
-	}
+	//TODO To be removed when restricted union type is supported in Titan
+	type McnPortDesc McnPortDescT8Port;
 	
 	/**
 	 * @desc Transport Layer security description
@@ -5104,9 +5112,11 @@ group OtherTypes {
 		/**
 		 * @desc Test System SCEF ID
 		 */	
-		XSD.ID scefId, 
-		McnPortDesc mcnPort ({t8PortDesc := ?}),
-		McnPortDesc mcnPortIn ({t8PortDesc := ?})
+		XSD.ID scefId,
+		//TODO To be replaced by McnPortDesc mcnPort ({t8PortDesc := ?}) when restricted union type is supported in Titan
+		McnPortDescT8Port mcnPort,
+		//TODO To be replaced by McnPortDesc mcnPortIn ({t8PortDesc := ?}) when restricted union type is supported in Titan
+		McnPortDescT8Port mcnPortIn
 	}
 	
 } 
@@ -5152,3 +5162,7 @@ group Values {
 	
 } 
 // end of module
+
+with {
+	extension "anytype Resource, URI, Notification, AggregatedNotification, AggregatedResponse, ServiceSubscribedAppRule_optional, charstring, AnyURI, AttributeList, AE, AccessControlPolicy, AccessControlPolicy_optional, AccessControlPolicyAnnc_optional, AccessControlPolicy_invalid, AE_optional, AE_invalid,AEAnnc_optional, Container_optional, ContainerAnnc_optional, ContentInstanceAnnc_optional, CSEBase_optional, Container_invalid, ContentInstance_optional, Group_optional, Group_invalid,  GroupAnnc_optional, LocationPolicyAnnc_optional, MgmtResource_optional, AnnouncedMgmtResource_optional, Node_optional, NodeAnnc_optional, Schedule_optional, ScheduleAnnc_optional,  Schedule_invalid, Subscription_optional, Subscription_invalid, PollingChannel_optional, PollingChannel_invalid, LocationPolicy_optional, LocationPolicy_invalid, SemanticDescriptor_optional, FlexContainerResource_optional, GenericInterworkingOperationInstance_optional"
+}
diff --git a/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn b/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn
index 31d844ea0dc16837beb2c3bb09a8c7c75fc9102e..2115180a152555cef5bb8b9e5fd86efaa08b97a9 100644
--- a/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn
+++ b/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn
@@ -44,7 +44,7 @@ import from OneM2M_TypesAndValues {type Resource_2; type ResourceTypeList_1; typ
 			ResourceMethod resourceMethod,
 			URI resourceUri,
 			RequestHeaders requestHeaders optional,
-			RequestBody requestBody optional
+			RequestBodyT8 requestBody optional
 		}
 		
 		/**
@@ -74,12 +74,22 @@ import from OneM2M_TypesAndValues {type Resource_2; type ResourceTypeList_1; typ
 			charstring header_value optional
 		}
 		
-		type Body RequestBody (	{individualNiddConfiguration:=?},
+		//TODO To be used instead of RequestBodyT8
+		/*type Body RequestBody (	{individualNiddConfiguration:=?},
 								{individualNiddDownlinkDataDelivery:=?},
 								{individualDeviceTriggeringTransaction:=?},
 								{niddUplinkDataNotification:=?},
 								{niddDownlinkDataDeliveryStatusNotification:=?},
-								{deviceTriggeringDeliveryReportNotification:=?});
+								{deviceTriggeringDeliveryReportNotification:=?});*/
+		//TODO To be removed when restricted union type is supported in Titan
+		type union RequestBodyT8 {
+			NiddConfiguration individualNiddConfiguration,
+			NiddDownlinkDataTransfer individualNiddDownlinkDataDelivery,
+			NiddUplinkDataNotification niddUplinkDataNotification,
+			NiddDownlinkDataDeliveryStatusNotification niddDownlinkDataDeliveryStatusNotification,
+			DeviceTriggering individualDeviceTriggeringTransaction,
+			DeviceTriggeringDeliveryReportNotification deviceTriggeringDeliveryReportNotification
+		}
 		
 		type Body ResponseBody;
 		
@@ -193,6 +203,11 @@ import from OneM2M_TypesAndValues {type Resource_2; type ResourceTypeList_1; typ
 		};
 	}//end group NIDD_API
 	
+	with {
+  		encode "XML";
+	}
+	
+	
 	group DeviceTriggering_API {
 	
 		type record of DeviceTriggering DeviceTriggerings;
@@ -223,6 +238,10 @@ import from OneM2M_TypesAndValues {type Resource_2; type ResourceTypeList_1; typ
 		}
 	
 	}//end group of DeviceTriggering_API
+	with {
+  		encode "XML";
+	}
+	
 
 	group Structured_data_types {
 		
diff --git a/LibOneM2M/oneM2M_Types b/LibOneM2M/oneM2M_Types
index e897c8a8e7c0fddf196e507e464c7a600dea4f05..0586e6b70512cc6c064dcafb8f236b9e3ab085e9 160000
--- a/LibOneM2M/oneM2M_Types
+++ b/LibOneM2M/oneM2M_Types
@@ -1 +1 @@
-Subproject commit e897c8a8e7c0fddf196e507e464c7a600dea4f05
+Subproject commit 0586e6b70512cc6c064dcafb8f236b9e3ab085e9
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 3b7ba624906a4e01f28eb52218d1a783a26e9c75..10a7bfb9083629813516d834c691a218a3ae6b99 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -830,7 +830,7 @@ module OneM2M_PermutationFunctions {
 				function f_prepare_formal_description_ontology(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2000) runs on CseSimu {
 					vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode, p_request.requestIdentifier));
 					if(p_responseStatusCode == int2000) {
-						var charstring v_ontology := fx_retrieve_formal_ontology(p_request.primitiveContent.flexContainer.ontologyRef);
+						var charstring v_ontology := fx_retrieve_formal_ontology(oct2char(unichar2oct(p_request.primitiveContent.flexContainer.ontologyRef)));
 						// FIXME How to return the formal ontoilogu, this is an OWL file in string foramt
 						//vc_response.primitive.responsePrimitive.primitiveContent := ???;
 					}
@@ -6765,13 +6765,14 @@ module OneM2M_PermutationFunctions {
 				} // end function f_CSE_DMR_UPD_015
 			  		
 				function f_CSE_DMR_UPD_016(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem {
-					//Local variables
-					var MsgIn v_response;
-					var RequestPrimitive v_request;
-					var ResponsePrimitive v_responsePrimitive;
-					var integer v_aeIndex := -1;
-					var integer v_resourceIndex := -1;
-					var integer v_ae2Index := -1;
+					 //Local variables
+					 var MsgIn v_response;
+					 var MsgIn v_msgIn;
+					 var RequestPrimitive v_request;
+					 var ResponsePrimitive v_responsePrimitive;
+					 var integer v_aeIndex := -1;
+					 var integer v_resourceIndex := -1;
+					 var integer v_ae2Index := -1;
 							   
 					// Test control
 
@@ -6845,11 +6846,11 @@ module OneM2M_PermutationFunctions {
 							tc_ac.stop;
 							setverdict(fail, __SCOPE__ & ": Error while updating mandatory attribute");
 						}
-						[] mcaPortIn.receive(mw_request(mw_notifyNotification(mw_contentNotificationVerification))) -> value vc_request {
+						[] mcaPortIn.receive(mw_request(mw_notifyNotification(mw_contentNotificationVerification))) -> value v_msgIn {
 							tc_ac.stop;
 							setverdict(pass, __SCOPE__ & ":INFO: Notification for Subscription verification received");
 							v_responsePrimitive := valueof(m_responseNotification(int2000, omit));
-							v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier;
+							v_responsePrimitive.requestIdentifier := v_msgIn.primitive.requestPrimitive.requestIdentifier;
 							f_send(e_mcaPortIn, m_response(v_responsePrimitive));
 							tc_ac.start;
 							repeat;
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index 368690adb0aeebc96bd406bc0c0f35e66a5f0c10..11bedb2994b31021ae80fc0a9f3dc2b8e81a923d 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -589,7 +589,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 		  	  		//Local variables
 		  	  		var MsgIn v_request;
 					var template RequestPrimitive v_requestPrimitive;
-					const  charstring v_cseId := PX_CSE_ID;
+					const  charstring v_cseId := oct2char(unichar2oct(PX_CSE_ID));
 					template XSD.AnyURI v_link := pattern "{v_cseId}/S";
 					
 					//Test control
@@ -656,7 +656,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var MsgIn v_request;
 					var template RequestPrimitive v_requestPrimitive;
 					var integer v_cseBaseIndex := -1;
-					const  charstring v_cseId := PX_CSE_ID;
+					const  charstring v_cseId := oct2char(unichar2oct(PX_CSE_ID));
 					template XSD.AnyURI v_link := pattern "{v_cseId}/?*";
 	
 					//Test control
@@ -724,7 +724,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var template RequestPrimitive v_requestPrimitive;
 					var integer v_aeIndex := -1;
 					var integer v_aeAnncIndex := -1;
-					const  charstring v_cseId := PX_CSE_ID;
+					const  charstring v_cseId := oct2char(unichar2oct(PX_CSE_ID));
 					template XSD.AnyURI v_link := pattern "{v_cseId}/?*";
 					
 					//Test control
@@ -2187,7 +2187,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var RequestPrimitive v_request;
 					var integer v_aeAnncIndex := -1;
 					var template PrimitiveContent v_primitiveContent;
-					const  charstring v_cseId := PX_CSE_ID;
+					const  charstring v_cseId := oct2char(unichar2oct(PX_CSE_ID));
 					template XSD.AnyURI v_link := pattern "{v_cseId}/S*";
 					template XSD.ID v_resourceID := pattern "S*";
 					
@@ -6220,8 +6220,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							  //Check that the resource has NOT been udpated
 							  if(ischosen(v_primitiveContentRetrieveResource.group_)) {
-							   if(v_primitiveContentRetrieveResource.group_.maxNrOfMembers == 0){
-								 setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated")
+							   if(not ispresent(v_primitiveContentRetrieveResource.group_.maxNrOfMembers)){
+								 setverdict(fail, __SCOPE__ & ": Error: maxNrOfMembers attribute deleted")
 								}
 							}
 						}
@@ -6246,8 +6246,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 						  	//Check that the resource has NOT been udpated
 						  	if(ischosen(v_primitiveContentRetrieveResource.accessControlPolicy)) {
-							   	if(v_primitiveContentRetrieveResource.accessControlPolicy.selfPrivileges == v_selfPrivileges) {
-									setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated")
+							   	if(not ispresent(v_primitiveContentRetrieveResource.accessControlPolicy.selfPrivileges)) {
+									setverdict(fail, __SCOPE__ & ": Error: selfPrivileges attribute deleted")
 								}
 							}	
 						}
@@ -6271,8 +6271,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
 							  //Check that the resource has NOT been udpated
 							  if(ischosen(v_primitiveContentRetrieveResource.subscription)) {
-							   if(v_primitiveContentRetrieveResource.subscription.notificationURI == {"NullTarget"}){
-								 setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated")
+							   if(not ispresent(v_primitiveContentRetrieveResource.subscription.notificationURI)){
+								 setverdict(fail, __SCOPE__ & ": Error: notificationURI attribute deleted")
 								}
 						   }
 						}
@@ -6618,6 +6618,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var AcpType v_accessControlPolicyIDs_1 := {"NotInitialized_1"};
 						var AcpType v_accessControlPolicyIDs_2 := {"NotInitialized_2"};
+						var RequestPrimitive v_requestPrimitive;
 						var ResponsePrimitive v_responsePrimitive;
 
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
@@ -6631,10 +6632,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							v_requestPrimitive := f_getRequestPrimitive(v_ae1);
 							//Check attribute 1
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
 								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
-									if(v_responsePrimitive.primitiveContent.container.accessControlPolicyIDs != v_accessControlPolicyIDs_2){
+									if(v_responsePrimitive.primitiveContent.container.accessControlPolicyIDs != v_requestPrimitive.primitiveContent.container.accessControlPolicyIDs){
 										setverdict(fail, __SCOPE__ & ": Error: AccessControlPolicyIDs attribute not updated correctly")
 									}
 								}
@@ -6770,6 +6772,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AcpType v_accessControlPolicyIDs_2 := {"NotInitialized_2"};
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var RequestPrimitive v_requestPrimitive;
 						var ResponsePrimitive v_responsePrimitive;
 						v_createRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_1;
 						v_updateRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_2;
@@ -6780,10 +6783,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							v_requestPrimitive := f_getRequestPrimitive(v_ae1);
 							//Check attribute 1
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
 								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
-									if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != v_accessControlPolicyIDs_2){
+									if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != v_requestPrimitive.primitiveContent.subscription.accessControlPolicyIDs){
 										setverdict(fail, __SCOPE__ & ": Error: AccessControlPolicyIDs attribute not updated correctly")
 									}
 								}
@@ -7410,6 +7414,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var ListOfURIs v_membersAccessControlPolicyIDs := {"NotInitialized"};
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
+						var RequestPrimitive v_updateRequestPrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						v_updateRequest.primitiveContent.group_.membersAccessControlPolicyIDs := v_membersAccessControlPolicyIDs;
 						v_ae1.start(f_CSE_DMR_UPD_015(int9, m_createGroupBase, v_updateRequest, true));//Group
@@ -7418,10 +7423,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							 v_updateRequestPrimitive := f_getRequestPrimitive(v_ae1);	
 							 //Check attribute 1
 							 if(ispresent(v_responsePrimitive.primitiveContent)) {
 								 if(ischosen(v_responsePrimitive.primitiveContent.group_)) {
-									 if(v_responsePrimitive.primitiveContent.group_.membersAccessControlPolicyIDs != v_membersAccessControlPolicyIDs){
+									 if(v_responsePrimitive.primitiveContent.group_.membersAccessControlPolicyIDs != valueof(v_updateRequestPrimitive.primitiveContent.group_.membersAccessControlPolicyIDs)){
 										 setverdict(fail, __SCOPE__ & ": Error: Members Access Control Policy IDs attribute not updated correctly")
 									 }
 								 }
@@ -7430,7 +7436,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 	 
 							//Check that the resource has been udpated correctly
 							if(ischosen(v_primitiveContentRetrieveResource.group_)) {
-							   if(v_primitiveContentRetrieveResource.group_.membersAccessControlPolicyIDs != v_membersAccessControlPolicyIDs){
+							   if(v_primitiveContentRetrieveResource.group_.membersAccessControlPolicyIDs != valueof(v_updateRequestPrimitive.primitiveContent.group_.membersAccessControlPolicyIDs)){
 								setverdict(fail, __SCOPE__ & ": Error: Members Access Control Policy IDs attribute not updated correctly")
 							  	}
 							}
@@ -7480,7 +7486,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_CSR_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7546,7 +7552,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_AE_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateAeBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7614,7 +7620,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_CNT_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7648,7 +7654,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_ACP_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7748,7 +7754,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_SUB_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7785,6 +7791,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var ListOfURIs v_notificationURI := {"NotReachableNotificationURI"};
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var RequestPrimitive v_updateRequestPrimitive;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						
@@ -7796,10 +7803,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							v_updateRequestPrimitive := f_getRequestPrimitive(v_ae1);	
 							//Check attribute 1
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
 								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
-									if(v_responsePrimitive.primitiveContent.subscription.notificationURI != v_notificationURI){
+									if(v_responsePrimitive.primitiveContent.subscription.notificationURI != v_updateRequestPrimitive.primitiveContent.subscription.notificationURI){
 										setverdict(fail, __SCOPE__ & ": Error: Notification URI attribute not updated correctly")
 									}
 								}
@@ -7808,7 +7816,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 							
 							//Check that the resource has been udpated correctly
 							if(ischosen(v_primitiveContentRetrieveResource.subscription)) {
-							  if(v_primitiveContentRetrieveResource.subscription.notificationURI != v_notificationURI){
+							  if(v_primitiveContentRetrieveResource.subscription.notificationURI != v_updateRequestPrimitive.primitiveContent.subscription.notificationURI){
 								setverdict(fail, __SCOPE__ & ": Error: Notification URI attribute not updated correctly")
 							  }
 							}
@@ -7852,7 +7860,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_DMR_UPD_016_GRP_ET() runs on Tester system CseSystem {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var Timestamp v_expirationTime := "21001231T012345";
+						var Timestamp v_expirationTime := "20301231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7922,6 +7930,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var ListOfURIs v_memberIDs := {"NotInitialized"};
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
+						var RequestPrimitive v_updateRequestPrimitive;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
 						v_updateRequest.primitiveContent.group_.memberIDs := v_memberIDs;
@@ -7932,10 +7941,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 
 
 						if(v_verdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							v_updateRequestPrimitive := f_getRequestPrimitive(v_ae1);	
 							//Check attribute 1
 							if(ispresent(v_responsePrimitive.primitiveContent)) {
 								if(ischosen(v_responsePrimitive.primitiveContent.group_)) {
-									if(v_responsePrimitive.primitiveContent.group_.memberIDs != v_memberIDs){
+									if(v_responsePrimitive.primitiveContent.group_.memberIDs != v_updateRequestPrimitive.primitiveContent.group_.memberIDs){
 										setverdict(fail, __SCOPE__ & ": Error: Member IDs attribute not updated correctly")
 									}
 								}
@@ -7944,7 +7954,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 							
 							//Check that the resource has been udpated correctly
 							if(ischosen(v_primitiveContentRetrieveResource.group_)) {
-							  if(v_primitiveContentRetrieveResource.group_.memberIDs != v_memberIDs){
+							  if(v_primitiveContentRetrieveResource.group_.memberIDs != v_updateRequestPrimitive.primitiveContent.group_.memberIDs){
 								setverdict(fail, __SCOPE__ & ": Error: Member IDs attribute not updated correctly")
 							  }
 							}
diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn
index 6afe2af5d59d77bc99d3bf2c9d13426130ac3da8..0a28580f4e7400d21704cea5199ac0ecc4a0aecd 100644
--- a/OneM2M_Testcases_CSE_Release_2.ttcn
+++ b/OneM2M_Testcases_CSE_Release_2.ttcn
@@ -1415,7 +1415,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var Timestamp v_expirationTime_1 := "20301231T012345";
-						var Timestamp v_expirationTime_2 := "20401020T012345";
+						var Timestamp v_expirationTime_2 := "20301231T012340";
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -1445,7 +1445,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var verdicttype v_verdict;
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var Timestamp v_expirationTime_1 := "20301231T012345";
-						var Timestamp v_expirationTime_2 := "20401020T012345";
+						var Timestamp v_expirationTime_2 := "20301231T012340";
 						var ResponsePrimitive v_responsePrimitive;
 
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
@@ -1567,7 +1567,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						
 						var Timestamp v_expirationTime_1 := "20301231T012345";
-						var Timestamp v_expirationTime_2 := "20401020T012345";
+						var Timestamp v_expirationTime_2 := "20301231T012340";
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -3364,6 +3364,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 					var template RequestPrimitive v_req2;
 					var MsgIn v_resp1, v_resp3;
 					var ResponsePrimitive v_resp2;
+					var RequestID v_expectedRequestIdentifier;
 					
 					// Test control
 		
@@ -3390,7 +3391,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2)));
 					
 					v_req2.from_ := PX_TS_CSE1.cseId;
-					v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*";
+					v_expectedRequestIdentifier := valueof(v_req2.requestIdentifier);
+					v_req2.requestIdentifier :=  pattern "{v_expectedRequestIdentifier}*";
 					
 					tc_ac.start;
 					alt {
@@ -3475,6 +3477,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 					var template RequestPrimitive v_req2;
 					var MsgIn v_resp1, v_resp3;
 					var ResponsePrimitive v_resp2;
+					var RequestID v_expectedRequestIdentifier;
 					
 					// Test control
 		
@@ -3497,7 +3500,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					
 					vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2)));
 					v_req2.from_ := PX_TS_CSE1.cseId;
-					v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*";
+					v_expectedRequestIdentifier := valueof(v_req2.requestIdentifier);
+					v_req2.requestIdentifier := pattern "{v_expectedRequestIdentifier}*";
 					
 					v_req1 := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
 					f_send(e_mcaPort, m_request(v_req1));
@@ -3583,7 +3587,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					var RequestPrimitive v_req3;
 					var MsgIn v_resp1, v_resp3;
 					var ResponsePrimitive v_resp2;//Response to a Notify Request
-		
+					var RequestID v_expectedRequestIdentifier;
+					
 					// Test control
 	
 	
@@ -3609,7 +3614,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					
 					vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2)));
 					v_req2.from_ := PX_TS_CSE1.cseId;
-					v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*";
+					v_expectedRequestIdentifier := valueof(v_req2.requestIdentifier);
+					v_req2.requestIdentifier := pattern "{v_expectedRequestIdentifier}*";
 					
 					tc_ac.start;
 					alt {
diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn
index 362ad7809bd3e94b782106dce693e5980526a5fd..e9fdcbed76d119a01065f03bd97c17a4d6783b7d 100644
--- a/OneM2M_Testcases_CSE_Release_3.ttcn
+++ b/OneM2M_Testcases_CSE_Release_3.ttcn
@@ -12105,7 +12105,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var template PrimitiveContent v_updateResponse := { accessControlPolicy := mw_contentAcpBase};
-						const charstring v_cse1Id := PX_TS_CSE1.cseId;
+						const XSD.ID v_cse1Id := PX_TS_CSE1.cseId;
 						template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*";
 
 						v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId};
@@ -12125,7 +12125,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var template PrimitiveContent v_updateResponse := { container := mw_contentContainerBase};
-						const charstring v_cse1Id := PX_TS_CSE1.cseId;
+						const XSD.ID v_cse1Id := PX_TS_CSE1.cseId;
 						template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*";
 
 						v_updateRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId};
@@ -12145,7 +12145,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;	
 						var template PrimitiveContent v_updateResponse := { group_ := mw_contentGroupBase};
-						const charstring v_cse1Id := PX_TS_CSE1.cseId;
+						const XSD.ID v_cse1Id := PX_TS_CSE1.cseId;
 						template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*";
 						
 						v_updateRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId};
@@ -12164,7 +12164,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc;
 						var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase;	
 						var template PrimitiveContent v_updateResponse := { timeSeries := mw_contentTimeSeriesBase};
-						const charstring v_cse1Id := PX_TS_CSE1.cseId;
+						const XSD.ID v_cse1Id := PX_TS_CSE1.cseId;
 						template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*";
 						
 						v_updateRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId};
@@ -13387,7 +13387,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 								setverdict(inconc, __SCOPE__ & ": missingDataList attribute not present");
 							} else {
 								if(ischosen(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList.alt_)) {
-									if(f_getTime(v_missingDataPointTimestamp) < f_getTime(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList.alt_[0])) {
+									if(f_getTime(oct2char(unichar2oct(v_missingDataPointTimestamp))) < f_getTime(oct2char(unichar2oct(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList.alt_[0])))) {
 										setverdict(pass, __SCOPE__ & ": missingData point inserted in missingDataList");
 									} else {
 										setverdict(fail, __SCOPE__ & ": missingData point not inserted in missingDataList");
@@ -15044,7 +15044,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					var integer v_resourceSemanticMashupJobProfileIndex := -1;
 					var RequestPrimitive v_requestMashupInstance;
 					//member filter query to identify a non existing member
-					var XSD.String v_memberFilter := "SELECT \?name WHERE { \?x foaf:name  \?name FILTER regex(\?name, \^mem\, \i\ }"; 
+					var XSD.String v_memberFilter := "SELECT \?name WHERE { \?x foaf:name  \?name FILTER regex(\?name, \^mem, i}"; 
 					var template RequestPrimitive v_createRequestJobProfile := m_createSemanticMashupJobProfileBase;
 				   
 					// Test control
@@ -16508,7 +16508,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndexJobProfileIndex := -1;
 					var RequestPrimitive v_updateRequest;
-					var Sparql v_invalidMemberFilter := "{SELECT \?name WHERE { \?x foaf:name  \?name FILTER regex(\?name, \^mem\, \i\ }";
+					var Sparql v_invalidMemberFilter := "{SELECT \?name WHERE { \?x foaf:name  \?name FILTER regex(\?name, \^mem, i}";
 											   
 					// Test control
                 
@@ -17847,7 +17847,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					p_createRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := c_validDescriptor;
 					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex);
 
-					v_retrieveRequest := m_retrieveFilterCriteria(f_getResourceAddress(v_aeIndex), f_getOriginator(v_aeIndex), v_filterCriteria);
+					v_retrieveRequest := valueof(m_retrieveFilterCriteria(f_getResourceAddress(v_aeIndex), f_getOriginator(v_aeIndex), v_filterCriteria));
 					v_retrieveRequest.semanticQueryIndicator := true;
 					v_retrieveRequest.resultContent := int10;	//ResultContent = 10 (Semantic Content)
 					
@@ -17916,7 +17916,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					p_createRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := c_validDescriptor;
 					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex);
 
-					v_retrieveRequest := m_retrieveFilterCriteria(f_getResourceAddress(v_aeIndex), f_getOriginator(v_aeIndex), v_filterCriteria);
+					v_retrieveRequest := valueof(m_retrieveFilterCriteria(f_getResourceAddress(v_aeIndex), f_getOriginator(v_aeIndex), v_filterCriteria));
 					v_retrieveRequest.semanticQueryIndicator := true;
 					v_retrieveRequest.resultContent := int10;	//ResultContent = 10 (Semantic Content)
 					
@@ -18278,7 +18278,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					mcnPort.send(
 											m_t8Request(
 																	m_t8_request_get(
-																										m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations"),
+																										m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/configurations"),
 																										{ 
 																											{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																											{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18312,7 +18312,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					mcnPort.send(
 											m_t8Request(
 																	m_t8_request_get(
-																										m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations/cf_001"),
+																										m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/configurations/cf_001"),
 																										{ 
 																											{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																											{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18348,7 +18348,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					mcnPort.send(
 											m_t8Request(
 																	m_t8_request_post(
-																										m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations"),
+																										m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/configurations"),
 																										{ 
 																											{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																											{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18403,7 +18403,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					mcnPort.send(
 											m_t8Request(
 																	m_t8_request_delete(
-																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & v_location),
+																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/configurations" & "/" & v_location),
 																											{ 
 																												{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																												{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18442,7 +18442,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					mcnPort.send(
 											m_t8Request(
 																	m_t8_request_delete(
-																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & v_location),
+																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/configurations" & "/" & v_location),
 																											{ 
 																												{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																												{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18486,7 +18486,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					mcnPort.send(
 											m_t8Request(
 																	m_t8_request_patch(
-																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & v_location),
+																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/configurations" & "/" & v_location),
 																											{ 
 																												{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																												{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18525,7 +18525,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						mcnPort.send(
 												m_t8Request(
 																		m_t8_request_post(
-																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations"),
+																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/configurations"),
 																											{ 
 																												{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																												{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18566,7 +18566,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						mcnPort.send(
 												m_t8Request(
 																		m_t8_request_delete(
-																												m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & p_location),
+																												m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/configurations" & "/" & p_location),
 																												{ 
 																													{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																													{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18596,7 +18596,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						mcnPort.send(
 												m_t8Request(
 																		m_t8_request_get(
-																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & p_location),
+																											m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/configurations" & "/" & p_location),
 																											{ 
 																												{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																												{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18635,7 +18635,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					mcnPort.send(
 											m_t8Request(
 																	m_t8_request_get(
-																										m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions"),
+																										m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"),
 																										{ 
 																											{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																											{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18669,7 +18669,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					mcnPort.send(
 											m_t8Request(
 																	m_t8_request_get(
-																										m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions/cf_001"),
+																										m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions/cf_001"),
 																										{ 
 																											{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																											{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18705,7 +18705,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					mcnPort.send(
 											m_t8Request(
 																	m_t8_request_post(
-																										m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions"),
+																										m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"),
 																										{ 
 																											{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																											{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18855,7 +18855,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						mcnPort.send(
 												m_t8Request(
 																		m_t8_request_post(
-																											m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions"),
+																											m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"),
 																											{ 
 																												{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																												{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18896,7 +18896,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						mcnPort.send(
 												m_t8Request(
 																		m_t8_request_delete(
-																												m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions" & "/" & p_location),
+																												m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions" & "/" & p_location),
 																												{ 
 																													{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																													{ "User-Agent", "oneM2M Test Adapter - TTF001" },
@@ -18926,7 +18926,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 						mcnPort.send(
 												m_t8Request(
 																		m_t8_request_get(
-																											m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions" & "/" & p_location),
+																											m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions" & "/" & p_location),
 																											{ 
 																												{ "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, 
 																												{ "User-Agent", "oneM2M Test Adapter - TTF001" },
diff --git a/OneM2M_Testcases_CSE_Release_4.ttcn b/OneM2M_Testcases_CSE_Release_4.ttcn
index 4b1e1e0516e4b774747bf7306650f8b95b71bd12..fe05481883895a31773c58ae673b668d59e208b1 100644
--- a/OneM2M_Testcases_CSE_Release_4.ttcn
+++ b/OneM2M_Testcases_CSE_Release_4.ttcn
@@ -17840,7 +17840,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI;
 					var template T8Request v_requestPrimitive;
 					var NiddConfiguration v_niddConfiguration;
-					var RequestBody niddConfig := {individualNiddConfiguration := v_niddConfiguration};
+					var RequestBodyT8 niddConfig := {individualNiddConfiguration := v_niddConfiguration};
 
 					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
 					
@@ -17905,7 +17905,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI;
 					var template T8Request v_requestPrimitive;
 					var NiddConfiguration v_niddConfiguration;
-					var RequestBody niddConfig := {individualNiddConfiguration := v_niddConfiguration};
+					var RequestBodyT8 niddConfig := {individualNiddConfiguration := v_niddConfiguration};
 					//var template NiddConfiguration v_niddConfiguration;
 					
 					v_createServiceSubscribedNode.primitiveContent.serviceSubscribedNode.niddRequired := false;
@@ -17975,7 +17975,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI;
 					var template T8Request v_requestPrimitive;
 					var NiddConfiguration v_niddConfiguration;
-					var RequestBody niddConfig := {individualNiddConfiguration := v_niddConfiguration};
+					var RequestBodyT8 niddConfig := {individualNiddConfiguration := v_niddConfiguration};
 					var RequestHeaders v_requestHeader;
 					//var template NiddConfiguration v_niddConfiguration;
 
@@ -18046,7 +18046,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI;
 					var template T8Request v_requestPrimitive;
 					var NiddConfiguration v_niddConfiguration;
-					var RequestBody niddConfig := {individualNiddConfiguration := v_niddConfiguration};
+					var RequestBodyT8 niddConfig := {individualNiddConfiguration := v_niddConfiguration};
 					var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 					//var template NiddConfiguration v_niddConfiguration;
 					
@@ -18124,14 +18124,14 @@ module OneM2M_Testcases_CSE_Release_4 {
 				maximumPacketSize := c_maxPacketSize
 						
 			}; // Should contain ExternalId and MaxPacketsize
-			var RequestBody niddConfig :=
+			var RequestBodyT8 niddConfig :=
 			{
 				individualNiddConfiguration := v_niddConfiguration
 			};
 			var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 			var template T8Request v_requestPrimitiveNiddDownlinkDataTransfer;
 			var NiddDownlinkDataTransfer v_niddDownlinkDataTransfer;  //Should contain Notification in data field
-			var RequestBody v_niddDLDataTransferBody :=
+			var RequestBodyT8 v_niddDLDataTransferBody :=
 			{
 				individualNiddDownlinkDataDelivery := v_niddDownlinkDataTransfer
 			};
@@ -18236,14 +18236,14 @@ module OneM2M_Testcases_CSE_Release_4 {
 				maximumPacketSize := c_maxPacketSize
 						
 			}; // Should contain ExternalId and MaxPacketsize
-			var RequestBody niddConfig :=
+			var RequestBodyT8 niddConfig :=
 			{
 				individualNiddConfiguration := v_niddConfiguration
 			};
 			var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 			var template T8Request v_requestPrimitiveNiddDownlinkDataTransfer;
 			var NiddDownlinkDataTransfer v_niddDownlinkDataTransfer;  //Should contain Notification in data field
-			var RequestBody v_niddDLDataTransferBody :=
+			var RequestBodyT8 v_niddDLDataTransferBody :=
 			{
 				individualNiddDownlinkDataDelivery := v_niddDownlinkDataTransfer
 			};
@@ -18340,7 +18340,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 				maximumPacketSize := c_maxPacketSize
 						
 			}; // Should contain ExternalId and MaxPacketsize
-			var RequestBody niddConfig :=
+			var RequestBodyT8 niddConfig :=
 			{
 				individualNiddConfiguration := v_niddConfiguration
 			};
@@ -18353,14 +18353,14 @@ module OneM2M_Testcases_CSE_Release_4 {
 			{
 				data := v_chr1
 			};
-			var RequestBody niddUplink :=
+			var RequestBodyT8 niddUplink :=
 			{
 				niddUplinkDataNotification := v_niddUplinkDataNotification
 			};
 			var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 			var template T8Request v_requestPrimitiveNiddDownlinkDataTransfer;
 			var NiddDownlinkDataTransfer v_niddDownlinkDataTransfer;  //Should contain Notification in data field
-			var RequestBody v_niddDLDataTransferBody :=
+			var RequestBodyT8 v_niddDLDataTransferBody :=
 			{
 				individualNiddDownlinkDataDelivery := v_niddDownlinkDataTransfer
 			};
@@ -18431,7 +18431,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 				maximumPacketSize := c_maxPacketSize
 						
 			}; // Should contain ExternalId and MaxPacketsize
-			var RequestBody niddConfig :=
+			var RequestBodyT8 niddConfig :=
 			{
 				individualNiddConfiguration := v_niddConfiguration
 			};
@@ -18444,21 +18444,21 @@ module OneM2M_Testcases_CSE_Release_4 {
 			{
 				data := v_chr1
 			};
-			var RequestBody niddUplink :=
+			var RequestBodyT8 niddUplink :=
 			{
 				niddUplinkDataNotification := v_niddUplinkDataNotification
 			};
 			var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 			var template T8Request v_requestPrimitiveNiddDownlinkDataTransfer;
 			var NiddDownlinkDataTransfer v_niddDownlinkDataTransfer;  //Should contain Notification in data field
-			var RequestBody v_niddDLDataTransferBody :=
+			var RequestBodyT8 v_niddDLDataTransferBody :=
 			{
 				individualNiddDownlinkDataDelivery := v_niddDownlinkDataTransfer
 			};
 					 
 			var template T8Request v_requestPrimitiveNiddDownlinkDataDeliveryStatusNotification;
 			var NiddDownlinkDataDeliveryStatusNotification v_niddDownlinkDataDeliveryStatusNotification;  //Should contain Notification in data field
-			var RequestBody v_niddDLDataStatusNotificationBody :=
+			var RequestBodyT8 v_niddDLDataStatusNotificationBody :=
 			{
 				niddDownlinkDataDeliveryStatusNotification := v_niddDownlinkDataDeliveryStatusNotification
 			};
@@ -18529,7 +18529,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 				maximumPacketSize := c_maxPacketSize
 						
 			}; // Should contain ExternalId and MaxPacketsize
-			var RequestBody niddConfig :=
+			var RequestBodyT8 niddConfig :=
 			{
 				individualNiddConfiguration := v_niddConfiguration
 			};
@@ -18542,7 +18542,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 			{
 				data := v_chr1
 			};
-			var RequestBody niddUplink :=
+			var RequestBodyT8 niddUplink :=
 			{
 				niddUplinkDataNotification := v_niddUplinkDataNotification
 			};