diff --git a/common/plugins/yang/rw-cloud.tailf.yang b/common/plugins/yang/rw-cloud.tailf.yang
index 3838ab7..2d65325 100644
--- a/common/plugins/yang/rw-cloud.tailf.yang
+++ b/common/plugins/yang/rw-cloud.tailf.yang
@@ -28,14 +28,14 @@
   }
 
   import tailf-common {
-    prefix tailf;
+    prefix tailf-common;
   }
 
-  tailf:annotate "/rw-cloud:cloud/rw-cloud:account/rw-cloud:connection-status" {
-    tailf:callpoint rw_callpoint;
+  tailf-common:annotate "/rw-cloud:cloud/rw-cloud:account/rw-cloud:connection-status" {
+    tailf-common:callpoint rw_callpoint;
   }
 
-  tailf:annotate "/rw-cloud:update-cloud-status" {
-    tailf:actionpoint rw_actionpoint;
+  tailf-common:annotate "/rw-cloud:update-cloud-status" {
+    tailf-common:actionpoint rw_actionpoint;
   }
 }
diff --git a/common/plugins/yang/rw-cloud.yang b/common/plugins/yang/rw-cloud.yang
index f580e93..e4682ac 100644
--- a/common/plugins/yang/rw-cloud.yang
+++ b/common/plugins/yang/rw-cloud.yang
@@ -25,15 +25,7 @@
 
 
   import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import rw-cli-ext {
-    prefix "rwcli";
-  }
-
-  import rw-yang-types {
-    prefix "rwt";
+    prefix "rw-pb-ext";
   }
 
   import rwcal {
@@ -50,9 +42,9 @@
   }
 
   container cloud {
-    rwpb:msg-new CloudConfig;
+    rw-pb-ext:msg-new CloudConfig;
     list account {
-      rwpb:msg-new CloudAccount;
+      rw-pb-ext:msg-new CloudAccount;
       description "Configure Cloud Accounts";
 
       max-elements 16;
diff --git a/common/plugins/yang/rw-config-agent.tailf.yang b/common/plugins/yang/rw-config-agent.tailf.yang
index 85f6eca..07f0d74 100644
--- a/common/plugins/yang/rw-config-agent.tailf.yang
+++ b/common/plugins/yang/rw-config-agent.tailf.yang
@@ -28,14 +28,14 @@
   }
 
   import tailf-common {
-    prefix tailf;
+    prefix tailf-common;
   }
 
-  tailf:annotate "/rw-config-agent:config-agent/rw-config-agent:account/rw-config-agent:connection-status" {
-    tailf:callpoint rw_callpoint;
+  tailf-common:annotate "/rw-config-agent:config-agent/rw-config-agent:account/rw-config-agent:connection-status" {
+    tailf-common:callpoint rw_callpoint;
   }
 
-  tailf:annotate "/rw-config-agent:update-cfg-agent-status" {
-    tailf:actionpoint rw_actionpoint;
+  tailf-common:annotate "/rw-config-agent:update-cfg-agent-status" {
+    tailf-common:actionpoint rw_actionpoint;
   }
 }
diff --git a/common/plugins/yang/rw-sdn.tailf.yang b/common/plugins/yang/rw-sdn.tailf.yang
index 89ee4ec..c8a4d46 100644
--- a/common/plugins/yang/rw-sdn.tailf.yang
+++ b/common/plugins/yang/rw-sdn.tailf.yang
@@ -27,14 +27,14 @@
     prefix rw-sdn;
   }
   import tailf-common {
-    prefix tailf;
+    prefix tailf-common;
   }
 
-  tailf:annotate "/rw-sdn:sdn-account/rw-sdn:connection-status" {
-    tailf:callpoint rw_callpoint;
+  tailf-common:annotate "/rw-sdn:sdn-account/rw-sdn:connection-status" {
+    tailf-common:callpoint rw_callpoint;
   }
 
-  tailf:annotate "/rw-sdn:update-sdn-status" {
-    tailf:actionpoint rw_actionpoint;
+  tailf-common:annotate "/rw-sdn:update-sdn-status" {
+    tailf-common:actionpoint rw_actionpoint;
   }
 }
diff --git a/common/plugins/yang/rw-sdn.yang b/common/plugins/yang/rw-sdn.yang
index 5b82d47..0a5b228 100644
--- a/common/plugins/yang/rw-sdn.yang
+++ b/common/plugins/yang/rw-sdn.yang
@@ -25,15 +25,7 @@
 
 
   import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import rw-cli-ext {
-    prefix "rwcli";
-  }
-
-  import rw-yang-types {
-    prefix "rwt";
+    prefix "rw-pb-ext";
   }
 
   import rwsdn {
@@ -46,7 +38,7 @@
   }
 
   list sdn-account {
-    rwpb:msg-new SDNAccountConfig;
+    rw-pb-ext:msg-new SDNAccountConfig;
 
     key "name";
     leaf name {
diff --git a/examples/ping_pong_ns/CMakeLists.txt b/examples/ping_pong_ns/CMakeLists.txt
index 9667465..e373c2a 100644
--- a/examples/ping_pong_ns/CMakeLists.txt
+++ b/examples/ping_pong_ns/CMakeLists.txt
@@ -39,18 +39,18 @@
 add_custom_command(
     OUTPUT ${PACKAGE_OUTPUT}
     COMMAND ${CMAKE_CURRENT_BINARY_DIR}/generate_packages.sh
-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ping_pong_nsd.py
+    DEPENDS mano_yang rwcloud_yang ${CMAKE_CURRENT_SOURCE_DIR}/ping_pong_nsd.py
   )
 
 add_custom_target(ping_pong_pkg_gen ALL
-    DEPENDS mano_yang ${PACKAGE_OUTPUT}
+    DEPENDS mano_yang rwcloud_yang ${PACKAGE_OUTPUT}
   )
 
 install(
     FILES ${PACKAGE_OUTPUT}
     DESTINATION
       usr/rift/mano/examples/ping_pong_ns
-    COMPONENT ${PKG_LONG_NAME}
+      COMPONENT ${PKG_LONG_NAME}
     )
 
 install(
diff --git a/examples/ping_pong_ns/generate_packages.sh.in b/examples/ping_pong_ns/generate_packages.sh.in
index ae54052..5fa0a8f 100755
--- a/examples/ping_pong_ns/generate_packages.sh.in
+++ b/examples/ping_pong_ns/generate_packages.sh.in
@@ -12,9 +12,9 @@
 PING_QCOW_IMAGE=${RIFT_ROOT}/images/Fedora-x86_64-20-20131211.1-sda-ping.qcow2
 
 # These paths are needed for finding the overrides and so files
-PYTHONPATH=${PYTHONPATH}:@RIFT_SUBMODULE_SOURCE_ROOT@/rwvcs/ra:@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang
-PYTHON3PATH=${PYTHON3PATH}:@RIFT_SUBMODULE_SOURCE_ROOT@/rwvcs/ra:@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang
-LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang
+PYTHONPATH=@RIFT_SUBMODULE_SOURCE_ROOT@/rwvcs/ra:@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang:${PYTHONPATH}
+PYTHON3PATH=@RIFT_SUBMODULE_SOURCE_ROOT@/rwvcs/ra:@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang:${PYTHON3PATH}
+LD_LIBRARY_PATH=@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang:@RIFT_SUBMODULE_BINARY_ROOT@/common/plugins/yang:${LD_LIBRARY_PATH}
 
 #Rift Logos
 PING_VNFD_LOGO=${SOURCE_DIR}/rift_logo.png
diff --git a/examples/ping_pong_ns/rift/mano/examples/ping_pong_nsd.py b/examples/ping_pong_ns/rift/mano/examples/ping_pong_nsd.py
index bb834ed..5348e00 100755
--- a/examples/ping_pong_ns/rift/mano/examples/ping_pong_nsd.py
+++ b/examples/ping_pong_ns/rift/mano/examples/ping_pong_nsd.py
@@ -37,7 +37,7 @@
     RwVnfdYang,
     VnfdYang,
     RwYang,
-    )
+)
 
 
 try:
diff --git a/models/openmano/python/rift/openmano/rift2openmano.py b/models/openmano/python/rift/openmano/rift2openmano.py
index 275d41d..6cc13a7 100755
--- a/models/openmano/python/rift/openmano/rift2openmano.py
+++ b/models/openmano/python/rift/openmano/rift2openmano.py
@@ -235,7 +235,7 @@
     return vnfd_name + "__" + str(member_idx)
 
 
-def rift2openmano_nsd(rift_nsd, rift_vnfds):
+def rift2openmano_nsd(rift_nsd, rift_vnfds,openmano_vnfd_ids):
     for vnfd_id in rift_nsd.vnfd_ids:
         if vnfd_id not in rift_vnfds:
             raise VNFNotFoundError("VNF id %s not provided" % vnfd_id)
@@ -251,7 +251,14 @@
         vnfd_id = vnfd.vnfd_id_ref
         rift_vnfd = rift_vnfds[vnfd_id]
         member_idx = vnfd.member_vnf_index
-        topology["nodes"][rift_vnfd.name + "__" + str(member_idx)] = {
+        openmano_vnfd_id = openmano_vnfd_ids.get(vnfd_id,None)
+        if openmano_vnfd_id:
+            topology["nodes"][rift_vnfd.name + "__" + str(member_idx)] = {
+                "type": "VNF",
+                "vnf_id": openmano_vnfd_id
+                }
+        else:
+            topology["nodes"][rift_vnfd.name + "__" + str(member_idx)] = {
                 "type": "VNF",
                 "VNF model": rift_vnfd.name
                 }
diff --git a/models/openmano/src/CMakeLists.txt b/models/openmano/src/CMakeLists.txt
index 949bb8b..d5ad460 100644
--- a/models/openmano/src/CMakeLists.txt
+++ b/models/openmano/src/CMakeLists.txt
@@ -40,6 +40,8 @@
     ${CMAKE_CURRENT_BINARY_DIR}/generate_tidgen_packages.sh
 
   DEPENDS
+    mano_yang
+    rwcloud_yang
     ${RIFT_SUBMODULE_SOURCE_ROOT}/models/openmano/test/tidgen_ns_2sriov.yaml
     ${RIFT_SUBMODULE_SOURCE_ROOT}/models/openmano/test/tidgen_ns_4sriov.yaml
     ${RIFT_SUBMODULE_SOURCE_ROOT}/models/openmano/test/tidgen_vnf_2sriov.yaml
@@ -54,6 +56,7 @@
 add_custom_target(tidgen ALL
   DEPENDS
     mano_yang
+    rwcloud_yang
     ${CMAKE_CURRENT_BINARY_DIR}/2tidgenMWC_2sriov.tar.gz
     ${CMAKE_CURRENT_BINARY_DIR}/tidgenMWC_2sriov.tar.gz
     ${CMAKE_CURRENT_BINARY_DIR}/2tidgenMWC_4sriov.tar.gz
@@ -75,8 +78,7 @@
     ${CMAKE_CURRENT_BINARY_DIR}/2tidgenMWC_2sriov_no_ctrlnet.tar.gz
     ${CMAKE_CURRENT_BINARY_DIR}/tidgenMWC_2sriov_no_ctrlnet.tar.gz
 
-    
-  DESTINATION
+ DESTINATION
     usr/rift/mano/examples/tidgen_ns
     COMPONENT ${PKG_LONG_NAME}
   )
diff --git a/models/openmano/src/generate_tidgen_packages.sh.in b/models/openmano/src/generate_tidgen_packages.sh.in
index 208d2cd..3c50cef 100755
--- a/models/openmano/src/generate_tidgen_packages.sh.in
+++ b/models/openmano/src/generate_tidgen_packages.sh.in
@@ -9,7 +9,7 @@
 # These paths are needed for finding the overrides and so files
 PYTHONPATH=${PYTHONPATH}:@RIFT_SUBMODULE_SOURCE_ROOT@/rwvcs/ra:@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang
 PYTHON3PATH=${PYTHON3PATH}:@RIFT_SUBMODULE_SOURCE_ROOT@/rwvcs/ra:@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang
-LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang
+LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:@RIFT_SUBMODULE_BINARY_ROOT@/models/plugins/yang:@RIFT_SUBMODULE_BINARY_ROOT@/common/plugins/yang
 
 # Remove any old directories
 rm -rf ${BINARY_DIR}/2tidgenMWC_4sriov
diff --git a/models/plugins/yang/CMakeLists.txt b/models/plugins/yang/CMakeLists.txt
index 782415b..2f6e964 100644
--- a/models/plugins/yang/CMakeLists.txt
+++ b/models/plugins/yang/CMakeLists.txt
@@ -51,6 +51,9 @@
     rwcloud_yang_gen
     rwconfig_agent_yang_gen
     mano-types_yang_gen
+  DEPENDS
+    rwcloud_yang
+    rwconfig_agent_yang
   )
 
 #rift_gen_yang_tree(mano-pyang-trees
diff --git a/models/plugins/yang/rw-nsr.yang b/models/plugins/yang/rw-nsr.yang
index d73e7fa..ae2c92a 100644
--- a/models/plugins/yang/rw-nsr.yang
+++ b/models/plugins/yang/rw-nsr.yang
@@ -40,7 +40,7 @@
   }
 
   import rw-config-agent {
-    prefix "rw-ca";
+    prefix "rw-config-agent";
   }
 
   import rw-sdn {
@@ -172,7 +172,7 @@
           The configuration for this VNF will be driven using the specified config
           agent account";
         type leafref {
-          path "/rw-ca:config-agent/rw-ca:account/rw-ca:name";
+          path "/rw-config-agent:config-agent/rw-config-agent:account/rw-config-agent:name";
         }
       }
     }
diff --git a/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/openmano_nsm.py b/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/openmano_nsm.py
index c3b1603..17a13a3 100644
--- a/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/openmano_nsm.py
+++ b/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/openmano_nsm.py
@@ -102,7 +102,6 @@
             if action == rwdts.QueryAction.READ:
                 schema = RwVnfrYang.YangData_RwVnfr_VnfrConsole_Vnfr_Vdur.schema()
                 path_entry = schema.keyspec_to_entry(ks_path)
-                self._log.debug("VDU Opdata path is {}".format(path_entry))
 
                 try:
                     console_url = yield from self._loop.run_in_executor(
@@ -275,13 +274,17 @@
         return {v.rift_vnfd_id: v.vnfd for v in self._vnfrs}
 
     @property
+    def vnfr_ids(self):
+        return {v.rift_vnfd_id: v.openmano_vnfd_id for v in self._vnfrs}
+
+    @property
     def vnfrs(self):
         return self._vnfrs
 
     @property
     def openmano_nsd_yaml(self):
         self._log.debug("Converting nsd %s from rift to openmano", self.nsd.id)
-        openmano_nsd = rift2openmano.rift2openmano_nsd(self.nsd, self.vnfds)
+        openmano_nsd = rift2openmano.rift2openmano_nsd(self.nsd, self.vnfds,self.vnfr_ids)
         return yaml.safe_dump(openmano_nsd, default_flow_style=False)
 
 
