diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 82fcaf906da5580052ff6c9c82db022638242a65..819b32ab929575b37606c587be7091308499e421 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -2341,7 +2341,9 @@ module OneM2M_Functions {
 							v_myResource.remoteCSE.trigger_Recipient_ID:= omit;
 						}*/
 						v_myResource.remoteCSE.nodeLink := omit;
-				    
+						v_myResource.remoteCSE.cSEBase := p_resource.remoteCSE.cSEBase;
+						v_myResource.remoteCSE.cSE_ID := p_resource.remoteCSE.cSE_ID;
+						v_myResource.remoteCSE.requestReachability := p_resource.remoteCSE.requestReachability;
 					}
 				} else if (p_resourceType == int10002 and ispresent (p_resource)) { //AE Annc
 					if(ischosen(p_resource.aEAnnc)) {
@@ -2403,18 +2405,22 @@ module OneM2M_Functions {
 				   if(ischosen (p_resource.accessControlPolicy)){
 						v_myResource.accessControlPolicy := valueof(p_resource.accessControlPolicy);
 					
-					v_myResource.accessControlPolicy.resourceName := "accessControlPolicy" & int2str(v_resourceIndex);
-					v_myResource.accessControlPolicy.resourceType := p_resourceType;
-					v_myResource.accessControlPolicy.resourceID := "accessControlPolicy" & int2str(v_resourceIndex);
-					v_myResource.accessControlPolicy.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
-					v_myResource.accessControlPolicy.creationTime := fx_generateTimestamp();
-					if(not(ispresent(p_resource.accessControlPolicy.expirationTime))) {
-						v_myResource.accessControlPolicy.expirationTime := "20301231T012345";
-					}
-					v_myResource.accessControlPolicy.lastModifiedTime := v_myResource.accessControlPolicy.creationTime;											
-					v_myResource.accessControlPolicy.announceTo := omit;	
-					v_myResource.accessControlPolicy.announcedAttribute := omit;
-					
+						if(not(ispresent(p_resource.accessControlPolicy.resourceName))) {
+							v_myResource.accessControlPolicy.resourceName := "accessControlPolicy" & int2str(v_resourceIndex);
+						}
+						
+						v_myResource.accessControlPolicy.resourceType := p_resourceType;
+						v_myResource.accessControlPolicy.resourceID := "accessControlPolicy" & int2str(v_resourceIndex);
+						v_myResource.accessControlPolicy.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
+						v_myResource.accessControlPolicy.creationTime := fx_generateTimestamp();
+						if(not(ispresent(p_resource.accessControlPolicy.expirationTime))) {
+							v_myResource.accessControlPolicy.expirationTime := "20301231T012345";
+						}
+						v_myResource.accessControlPolicy.lastModifiedTime := v_myResource.accessControlPolicy.creationTime;											
+						v_myResource.accessControlPolicy.announceTo := omit;	
+						v_myResource.accessControlPolicy.announcedAttribute := omit;
+						v_myResource.accessControlPolicy.privileges := p_resource.accessControlPolicy.privileges;
+						v_myResource.accessControlPolicy.selfPrivileges := p_resource.accessControlPolicy.selfPrivileges;
 				   }
 				} else if(p_resourceType == int2 and ispresent(p_resource)) {//AE
 					if(ischosen(p_resource.aE)){
@@ -2429,9 +2435,13 @@ module OneM2M_Functions {
 						}
 						v_myResource.aE.resourceID := "ae" & int2str(v_resourceIndex);
 						v_myResource.aE.aE_ID := v_myResource.aE.resourceID;
-						v_myResource.aE.resourceName := "ae" & int2str(v_resourceIndex);
+						if(not(ispresent(p_resource.aE.resourceName))) {
+							v_myResource.aE.resourceName := "ae" & int2str(v_resourceIndex);
+						}
+						v_myResource.aE.app_ID := p_resource.aE.app_ID;
+						v_myResource.aE.requestReachability := p_resource.aE.requestReachability;
 					}
-				} else if(p_resourceType == int3 and ispresent(p_resource)) {
+				} else if(p_resourceType == int3 and ispresent(p_resource)) { //Container
 					if(ischosen(p_resource.container)){
 						v_myResource.container := valueof(p_resource.container);
 						v_myResource.container.resourceType := p_resourceType;
@@ -2443,14 +2453,21 @@ module OneM2M_Functions {
 							v_myResource.container.expirationTime := "20301231T012345";
 						}
 						v_myResource.container.resourceID := "cnt" & int2str(v_resourceIndex);
-						v_myResource.container.resourceName := "cnt" & int2str(v_resourceIndex);
+						if(not(ispresent(p_resource.container.resourceName))) {
+							v_myResource.container.resourceName := "cnt" & int2str(v_resourceIndex);
+						}
+						v_myResource.container.stateTag := 0;
+						v_myResource.container.currentNrOfInstances := 0;
+						v_myResource.container.currentByteSize := 0;
 					}
 										
-				} else if(p_resourceType == int4 and ispresent(p_resource)) {
+				} else if(p_resourceType == int4 and ispresent(p_resource)) { //ContentInstance
 					if(ischosen(p_resource.contentInstance)){
 						v_myResource.contentInstance := valueof(p_resource.contentInstance);
-						v_myResource.contentInstance.resourceID := "cnt" & int2str(v_resourceIndex);
-						v_myResource.contentInstance.resourceName := "cnt" & int2str(v_resourceIndex);
+						v_myResource.contentInstance.resourceID := "cin" & int2str(v_resourceIndex);
+						if(not(ispresent(p_resource.contentInstance.resourceName))) {
+							v_myResource.contentInstance.resourceName := "cin" & int2str(v_resourceIndex);
+						}
 						v_myResource.contentInstance.resourceType := p_resourceType;
       					v_myResource.contentInstance.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
 						v_myResource.contentInstance.creationTime := fx_generateTimestamp();
@@ -2463,7 +2480,24 @@ module OneM2M_Functions {
 						v_myResource.contentInstance.content := p_resource.contentInstance.content;
 					}
 										
-				}	
+				} else if(p_resourceType == int23 and ispresent(p_resource)) { //Subscription
+					if(ischosen(p_resource.subscription)){
+						v_myResource.subscription := valueof(p_resource.subscription);
+						v_myResource.subscription.resourceID := "sub" & int2str(v_resourceIndex);
+						if(not(ispresent(p_resource.subscription.resourceName))) {
+							v_myResource.subscription.resourceName := "sub" & int2str(v_resourceIndex);
+						}
+						v_myResource.subscription.resourceType := p_resourceType;
+						v_myResource.subscription.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource);
+						v_myResource.subscription.creationTime := fx_generateTimestamp();
+						v_myResource.subscription.lastModifiedTime := v_myResource.container.creationTime;											
+						if(not(ispresent(p_resource.subscription.expirationTime))) {
+							v_myResource.subscription.expirationTime := "20301231T012345";
+						}
+						v_myResource.subscription.notificationURI := p_resource.subscription.notificationURI;
+				}
+										
+			}
 				return v_myResource;
 				
 			}//End of function		
@@ -2510,8 +2544,47 @@ module OneM2M_Functions {
 					}
 
 				} else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.container) and (ischosen(p_resource.container))) {//Container
+					if(ispresent(p_resource.container.expirationTime)) {
+						vc_localResourcesList[p_localResourceIndex].resource.container.expirationTime := p_resource.container.expirationTime;
+					}
+					if(ispresent(p_resource.container.labels)) {
+						vc_localResourcesList[p_localResourceIndex].resource.container.labels := p_resource.container.labels;
+					}
+					if(ispresent(p_resource.container.announceTo)) {
+						vc_localResourcesList[p_localResourceIndex].resource.container.announceTo := p_resource.container.announceTo;
+					}
+					if(ispresent(p_resource.container.announcedAttribute)) {
+						vc_localResourcesList[p_localResourceIndex].resource.container.announcedAttribute := p_resource.container.announcedAttribute;
+					}
+				}  else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.contentInstance) and (ischosen(p_resource.contentInstance))) {//ContentInstance
+					if(ispresent(p_resource.contentInstance.expirationTime)) {
+						vc_localResourcesList[p_localResourceIndex].resource.contentInstance.expirationTime := p_resource.contentInstance.expirationTime;
+					}
+					if(ispresent(p_resource.contentInstance.labels)) {
+						vc_localResourcesList[p_localResourceIndex].resource.contentInstance.labels := p_resource.contentInstance.labels;
+					}
+					if(ispresent(p_resource.contentInstance.announceTo)) {
+						vc_localResourcesList[p_localResourceIndex].resource.contentInstance.announceTo := p_resource.contentInstance.announceTo;
+					}
+					if(ispresent(p_resource.contentInstance.announcedAttribute)) {
+						vc_localResourcesList[p_localResourceIndex].resource.contentInstance.announcedAttribute := p_resource.contentInstance.announcedAttribute;
+					}
+				} else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.subscription) and (ischosen(p_resource.subscription))) {//Subscription
+					if(ispresent(p_resource.subscription.expirationTime)) {
+						vc_localResourcesList[p_localResourceIndex].resource.subscription.expirationTime := p_resource.subscription.expirationTime;
+					}
+					if(ispresent(p_resource.subscription.labels)) {
+						vc_localResourcesList[p_localResourceIndex].resource.subscription.labels := p_resource.subscription.labels;
+					}
+					if(ispresent(p_resource.subscription.announceTo)) {
+						vc_localResourcesList[p_localResourceIndex].resource.subscription.announceTo := p_resource.subscription.announceTo;
+					}
+					if(ispresent(p_resource.subscription.announcedAttribute)) {
+						vc_localResourcesList[p_localResourceIndex].resource.subscription.announcedAttribute := p_resource.subscription.announcedAttribute;
+					}
 				}
 				
+				
 			}//End of function	
 
 			/**