diff --git a/netconf/session/nc_protocol_handler.py b/netconf/session/nc_protocol_handler.py
index a08ea37..c64c2c1 100644
--- a/netconf/session/nc_protocol_handler.py
+++ b/netconf/session/nc_protocol_handler.py
@@ -180,7 +180,9 @@
                              rpc_handler=rpc_handler,
                              is_error=response.is_error,
                              response=response)
-                    self.send_rpc_reply(response.node, rpc)
+                    # self.send_rpc_reply(response.node, rpc)
+                    self.send_rpc_reply(self.get_instance(), rpc)
+
                     if response.close_session:
                         log.info('response-closing-session', response=response)
                         self.close()
@@ -230,3 +232,372 @@
             self.session.session_opened = False
             self.connected.callback(None)
             log.info('closing-client')
+
+    # Example of a properly formatted Yang-XML message
+    def get_instance(self):
+        xml_string = """
+            <data>
+             <Voltha xmlns="urn:opencord:params:xml:ns:voltha:ietf-voltha">
+             <instances>
+              <log_level>INFO</log_level>
+                <device_types>
+                  <adapter>simulated_onu</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>simulated_onu</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>tibit_onu</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>tibit_onu</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>maple_olt</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>maple_olt</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>tibit_olt</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>tibit_olt</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>broadcom_onu</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>broadcom_onu</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>simulated_olt</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>simulated_olt</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <logical_devices>
+                  <datapath_id>1</datapath_id>
+                  <root_device_id>simulated_olt_1</root_device_id>
+                  <switch_features>
+                    <auxiliary_id>0</auxiliary_id>
+                    <n_tables>2</n_tables>
+                    <datapath_id>0</datapath_id>
+                    <capabilities>15</capabilities>
+                    <n_buffers>256</n_buffers>
+                  </switch_features>
+                  <flows/>
+                  <id>simulated1</id>
+                  <flow_groups/>
+                    <ports>
+                      <device_port_no>2</device_port_no>
+                      <root_port>False</root_port>
+                      <device_id>simulated_onu_1</device_id>
+                      <id>onu1</id>
+                      <ofp_port>
+                        <hw_addr>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>1</item>
+                        </hw_addr>
+                        <curr_speed>32</curr_speed>
+                        <curr>4128</curr>
+                        <name>onu1</name>
+                        <supported>0</supported>
+                        <state>4</state>
+                        <max_speed>32</max_speed>
+                        <advertised>4128</advertised>
+                        <peer>4128</peer>
+                        <config>0</config>
+                        <port_no>1</port_no>
+                      </ofp_port>
+                    </ports>
+                    <ports>
+                      <device_port_no>2</device_port_no>
+                      <root_port>False</root_port>
+                      <device_id>simulated_onu_2</device_id>
+                      <id>onu2</id>
+                      <ofp_port>
+                        <hw_addr>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>2</item>
+                        </hw_addr>
+                        <curr_speed>32</curr_speed>
+                        <curr>4128</curr>
+                        <name>onu2</name>
+                        <supported>0</supported>
+                        <state>4</state>
+                        <max_speed>32</max_speed>
+                        <advertised>4128</advertised>
+                        <peer>4128</peer>
+                        <config>0</config>
+                        <port_no>2</port_no>
+                      </ofp_port>
+                    </ports>
+                    <ports>
+                      <device_port_no>2</device_port_no>
+                      <root_port>True</root_port>
+                      <device_id>simulated_olt_1</device_id>
+                      <id>olt1</id>
+                      <ofp_port>
+                        <hw_addr>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>129</item>
+                        </hw_addr>
+                        <curr_speed>32</curr_speed>
+                        <curr>4128</curr>
+                        <name>olt1</name>
+                        <supported>0</supported>
+                        <state>4</state>
+                        <max_speed>32</max_speed>
+                        <advertised>4128</advertised>
+                        <peer>4128</peer>
+                        <config>0</config>
+                        <port_no>129</port_no>
+                      </ofp_port>
+                    </ports>
+                  <desc>
+                    <dp_desc>n/a</dp_desc>
+                    <sw_desc>simualted pon</sw_desc>
+                    <hw_desc>simualted pon</hw_desc>
+                    <serial_num>985c4449d50a441ca843401e2f44e682</serial_num>
+                    <mfr_desc>cord porject</mfr_desc>
+                  </desc>
+                </logical_devices>
+              <devices>
+                <item>
+                  <vendor>simulated</vendor>
+                  <parent_port_no>0</parent_port_no>
+                  <software_version>1.0</software_version>
+                  <connect_status>UNKNOWN</connect_status>
+                  <type>simulated_olt</type>
+                  <adapter>simulated_olt</adapter>
+                  <vlan>0</vlan>
+                  <hardware_version>n/a</hardware_version>
+                  <flows>
+                    <items/>
+                  </flows>
+                  <ports>
+                    <item>
+                      <peers>
+                        <item>
+                          <port_no>1</port_no>
+                          <device_id>simulated_onu_1</device_id>
+                        </item>
+                        <item>
+                          <port_no>1</port_no>
+                          <device_id>simulated_onu_2</device_id>
+                        </item>
+                      </peers>
+                      <label>pon</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>PON_OLT</type>
+                      <port_no>1</port_no>
+                      <device_id>simulated_olt_1</device_id>
+                    </item>
+                    <item>
+                      <peers/>
+                      <label>eth</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>ETHERNET_NNI</type>
+                      <port_no>2</port_no>
+                      <device_id>simulated_olt_1</device_id>
+                    </item>
+                  </ports>
+                  <parent_id/>
+                  <oper_status>DISCOVERED</oper_status>
+                  <flow_groups>
+                    <items/>
+                  </flow_groups>
+                  <admin_state>UNKNOWN</admin_state>
+                  <serial_number>19addcd7305d4d4fa90300cb8e4ab9a6</serial_number>
+                  <model>n/a</model>
+                  <root>True</root>
+                  <id>simulated_olt_1</id>
+                  <firmware_version>n/a</firmware_version>
+                </item>
+                <item>
+                  <vendor>simulated</vendor>
+                  <parent_port_no>1</parent_port_no>
+                  <software_version>1.0</software_version>
+                  <connect_status>UNKNOWN</connect_status>
+                  <root>False</root>
+                  <adapter>simulated_onu</adapter>
+                  <vlan>101</vlan>
+                  <hardware_version>n/a</hardware_version>
+                  <flows>
+                    <items/>
+                  </flows>
+                  <ports>
+                    <item>
+                      <peers/>
+                      <label>eth</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>ETHERNET_UNI</type>
+                      <port_no>2</port_no>
+                      <device_id>simulated_onu_1</device_id>
+                    </item>
+                    <item>
+                      <peers>
+                        <item>
+                          <port_no>1</port_no>
+                          <device_id>simulated_olt_1</device_id>
+                        </item>
+                      </peers>
+                      <label>pon</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>PON_ONU</type>
+                      <port_no>1</port_no>
+                      <device_id>simulated_onu_1</device_id>
+                    </item>
+                  </ports>
+                  <parent_id>simulated_olt_1</parent_id>
+                  <oper_status>DISCOVERED</oper_status>
+                  <flow_groups>
+                    <items/>
+                  </flow_groups>
+                  <admin_state>UNKNOWN</admin_state>
+                  <serial_number>8ce6514e1b324d349038d9a80af04772</serial_number>
+                  <model>n/a</model>
+                  <type>simulated_onu</type>
+                  <id>simulated_onu_1</id>
+                  <firmware_version>n/a</firmware_version>
+                </item>
+                <item>
+                  <vendor>simulated</vendor>
+                  <parent_port_no>1</parent_port_no>
+                  <software_version>1.0</software_version>
+                  <connect_status>UNKNOWN</connect_status>
+                  <root>False</root>
+                  <adapter>simulated_onu</adapter>
+                  <vlan>102</vlan>
+                  <hardware_version>n/a</hardware_version>
+                  <flows>
+                    <items/>
+                  </flows>
+                  <ports>
+                    <item>
+                      <peers/>
+                      <label>eth</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>ETHERNET_UNI</type>
+                      <port_no>2</port_no>
+                      <device_id>simulated_onu_2</device_id>
+                    </item>
+                    <item>
+                      <peers>
+                        <item>
+                          <port_no>1</port_no>
+                          <device_id>simulated_olt_1</device_id>
+                        </item>
+                      </peers>
+                      <label>pon</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>PON_ONU</type>
+                      <port_no>1</port_no>
+                      <device_id>simulated_onu_2</device_id>
+                    </item>
+                  </ports>
+                  <parent_id>simulated_olt_1</parent_id>
+                  <oper_status>DISCOVERED</oper_status>
+                  <flow_groups>
+                    <items/>
+                  </flow_groups>
+                  <admin_state>UNKNOWN</admin_state>
+                  <serial_number>0dfbb5af422044639c0660b518c06519</serial_number>
+                  <model>n/a</model>
+                  <type>simulated_onu</type>
+                  <id>simulated_onu_2</id>
+                  <firmware_version>n/a</firmware_version>
+                </item>
+              </devices>
+              <instance_id>compose_voltha_1</instance_id>
+              <version>0.9.0</version>
+              <health>
+                <state>HEALTHY</state>
+              </health>
+              <device_groups>
+                <item>
+                  <logical_devices/>
+                  <id>1</id>
+                  <devices/>
+                </item>
+              </device_groups>
+              <adapters>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Voltha project</vendor>
+                  <id>simulated_onu</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Tibit Communications Inc.</vendor>
+                  <id>tibit_onu</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Voltha project</vendor>
+                  <id>maple_olt</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Tibit Communications Inc.</vendor>
+                  <id>tibit_olt</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Voltha project</vendor>
+                  <id>broadcom_onu</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Voltha project</vendor>
+                  <id>simulated_olt</id>
+                  <logical_device_ids/>
+                </item>
+              </adapters>
+             </instances>
+             </Voltha>
+            </data>
+        """
+        return etree.fromstring(xml_string)
\ No newline at end of file
