diff --git a/netconf/capabilities.py b/netconf/capabilities.py
index 86873f8..f7c2c5a 100755
--- a/netconf/capabilities.py
+++ b/netconf/capabilities.py
@@ -19,9 +19,143 @@
 class Capabilities:
 
     def __init__(self):
-        self.server_caps = (C.NETCONF_BASE_10, C.NETCONF_BASE_11)
+        self.server_caps = self._get_server_capabilities()
         self.client_caps = set()
 
     def add_client_capability(self, cap):
         self.client_caps.add(cap)
 
+    #TODO:  This will be automatically generated from the voltha proto files
+    def _get_server_capabilities(self):
+        return (
+            C.NETCONF_BASE_10,
+            C.NETCONF_BASE_11,
+            "urn:opencord:params:xml:ns:voltha:ietf-voltha",
+            "urn:opencord:params:xml:ns:voltha:ietf-openflow_13",
+            "urn:opencord:params:xml:ns:voltha:ietf-meta",
+            "urn:opencord:params:xml:ns:voltha:ietf-logical_device",
+            "urn:opencord:params:xml:ns:voltha:ietf-health",
+            "urn:opencord:params:xml:ns:voltha:ietf-device",
+            "urn:opencord:params:xml:ns:voltha:ietf-empty",
+            "urn:opencord:params:xml:ns:voltha:ietf-common",
+            "urn:opencord:params:xml:ns:voltha:ietf-any",
+            "urn:opencord:params:xml:ns:voltha:ietf-adapter"
+        )
+
+    #TODO:  A schema exchange will also need to happen
+
+    description = """
+
+    Option 1:  Client already have the yang model for voltha and adapters:
+        <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <capabilities>
+                <capability>
+                    urn:ietf:params:netconf:base:1.1
+                </capability>
+                <capability>
+                    urn:cord:voltha:1.0
+                </capability>
+                <capability>
+                    urn:cord:voltha:adpater_x:1.0
+                </capability>
+
+
+    Option 2: NETCONF-MONITORING - schema exchanges
+
+        server expose capabilities
+
+            <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+                <capabilities>
+                    <capability>
+                        urn:ietf:params:netconf:base:1.1
+                    </capability>
+                    <capability>
+                        urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04
+                    </capability>
+
+        client request schemas
+
+            <rpc message-id="101"
+                 xmlns="urn:ietf:params:xml:ns:netconf:base:1.1">
+                <get>
+                    <filter type="subtree">
+                        <netconf-state xmlns=
+                            "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring">
+                             <schemas/>
+                        </netconf-state>
+                    </filter>
+                </get>
+            </rpc>
+
+        server sends back schemas
+
+            <rpc-reply message-id="101"
+                       xmlns="urn:ietf:params:xml:ns:netconf:base:1.1">
+                  <data>
+                        <netconf-state
+                            xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring">
+                            <schemas>
+                                <schema>
+                                    <identifier>voltha</identifier>
+                                    <version>1.0</version>
+                                    <format>yang</format>
+                                    <namespace>urn:cord:voltha</namespace>
+                                    <location>NETCONF</location>
+                                </schema>
+                                <schema>
+                                    <identifier>adapter_x</identifier>
+                                    <version>x_release</version>
+                                    <format>yang</format>
+                                    <namespace>urn:cord:voltha:adapter_x</namespace>
+                                    <location>NETCONF</location>
+                                </schema>
+                            </schemas>
+                        </netconf-state>
+                  </data>
+            </rpc-reply>
+
+
+        client requests each schema instance
+
+            <rpc message-id="102"
+                xmlns="urn:ietf:params:xml:ns:netconf:base:1.1">
+                <get-schema
+                    xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring">
+                    <identifer>voltha</identifer>
+                    <version>1.0</version>
+                </get-schema>
+             </rpc>
+
+             <rpc-reply message-id="102"
+                xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+                <data
+                    xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring">
+                    module voltha {
+                        //default format (yang) returned
+                        //voltha version 0.1 yang module
+                        //contents here ...
+                    }
+                </data>
+             </rpc-reply>
+
+
+    GETTING DATA
+
+    Use filter:
+        1) namespace filter
+            <filter type="subtree">
+                <top xmlns="http://example.com/schema/1.2/config"/>
+            </filter>
+
+         2) <filter type="subtree">
+                <adapters xmlns="urn:cord:voltha:adapter_x">
+                    <adapter>
+                        <id>uuid</id>
+                        <config/>
+                    </adapter>
+                </adapters>
+            </filter>
+
+            /voltha/adapters/<adapter>/[<id>, <vendor>, <version>, <config>, <additonal_desc>]
+
+    """
\ No newline at end of file
