diff --git a/osm_pla/server/server.py b/osm_pla/server/server.py
index a1b7b64..2258ed9 100644
--- a/osm_pla/server/server.py
+++ b/osm_pla/server/server.py
@@ -159,9 +159,11 @@
 
          return tuples with mappings {<adjusted id>: <original id>} and {<original id>: <adjusted id>}
         """
+        # TODO: Change for multiple DF support
+        ns_df = nsd.get('df', [{}])[0]
         next_idx = itertools.count()
-        member_vnf_index2mzn = {e['member-vnf-index']: 'VNF' + str(next(next_idx)) for e in
-                                nsd['constituent-vnfd']}
+        member_vnf_index2mzn = {e['id']: 'VNF' + str(next(next_idx)) for e in
+                                ns_df.get('vnf-profile', [])}
 
         # reverse the name map dictionary, used when the placement result is remapped
         mzn_name2member_vnf_index = {v: k for k, v in member_vnf_index2mzn.items()}
@@ -184,11 +186,13 @@
             nsd = self._get_nsd(nslcmop['operationParams']['nsdId'])
             member_vnf_index2mzn, mzn2member_vnf_index = self._create_vnf_id_maps(nsd)
             # adjust vnf identifiers
-            for e in nsd['constituent-vnfd']:
-                e['member-vnf-index'] = member_vnf_index2mzn[e['member-vnf-index']]
-            for vld in nsd['vld']:
-                for cp_ref in vld['vnfd-connection-point-ref']:
-                    cp_ref['member-vnf-index-ref'] = member_vnf_index2mzn[cp_ref['member-vnf-index-ref']]
+            # TODO: Change for multiple DF support
+            ns_df = nsd.get('df', [{}])[0]
+            for vnf_profile in ns_df.get('vnf-profile', []):
+                vnf_profile['id'] = member_vnf_index2mzn[vnf_profile['id']]
+                for vlc in vnf_profile.get('virtual-link-connectivity', []):
+                    for ccpd in vlc.get('constituent-cpd-id', []):
+                        ccpd['constituent-base-element-id'] = member_vnf_index2mzn[ccpd['constituent-base-element-id']]
             self.log.info("adjusted nsd: {}".format(nsd))
             projects = self._get_projects()
             self.log.info("projects: {}".format(projects))
@@ -199,7 +203,7 @@
             vims_information = {_['name']: _['_id'] for _ in vim_accounts_data}
             price_list = self._get_vnf_price_list(Server.vnf_price_list_file, projects[nslcmop_project])
             pil_info = self._get_pil_info(Server.pil_price_list_file)
-            pinnings = nslcmop['operationParams'].get('vnf')
+            pinnings = nslcmop['operationParams'].get('vnf', [])
             # remap member-vnf-index values according to id map
             for pinning in pinnings:
                 pinning['member-vnf-index'] = member_vnf_index2mzn[pinning['member-vnf-index']]
