diff --git a/nucleus/southbound.go b/nucleus/southbound.go
index 1e27e79103a4c24ca9b9a9bbc203134618501770..2a31d78f270f01e0cb153cdca907ee9422cfbc25 100644
--- a/nucleus/southbound.go
+++ b/nucleus/southbound.go
@@ -12,9 +12,12 @@ import (
 // SouthboundInterface provides an
 // interface for SBI implementations
 type SouthboundInterface interface {
-	// Deprecated
+	// deprecated
 	SbiIdentifier() string
 
+	// SetNode injects SBI specific model
+	// representation to the transport.
+	// Needed for type assertion.
 	SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error
 	Schema() *ytypes.Schema
 }
@@ -22,11 +25,19 @@ type SouthboundInterface interface {
 type Tapi struct {
 }
 
+// OpenConfig is the implementation of an OpenConfig SBI.
+// The struct holds the YANG schema and a function that
+// returns an SBI specific SetNode function.
 type OpenConfig struct {
+	// deprecated
 	transport Transport
-	schema    *ytypes.Schema
+
+	schema *ytypes.Schema
 }
 
+// SbiIdentifier returns the string representation of
+// the SBI
+// deprecated
 func (oc *OpenConfig) SbiIdentifier() string {
 	return "openconfig"
 }
@@ -39,7 +50,10 @@ func (oc *OpenConfig) Schema() *ytypes.Schema {
 	return schema
 }
 
-func (oc *OpenConfig)SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
+// SetNode injects OpenConfig specific model
+// representation to the transport.
+// Needed for type assertion.
+func (oc *OpenConfig) SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
 	return func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
 		if err := ytypes.SetNode(schema, root.(*openconfig.Device), path, val, opts...); err != nil {
 			return err
@@ -48,9 +62,14 @@ func (oc *OpenConfig)SetNode() func(schema *yang.Entry, root interface{}, path *
 	}
 }
 
+// deprecated
+// Use for prototyping only.
+// Use OpenConfig instead
 type AristaOC struct {
+	// deprecated
 	transport Transport
-	schema    *ytypes.Schema
+
+	schema *ytypes.Schema
 }
 
 func (oc *AristaOC) SbiIdentifier() string {
@@ -65,7 +84,10 @@ func (oc *AristaOC) Schema() *ytypes.Schema {
 	return schema
 }
 
-func (oc *AristaOC)SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
+// SetNode injects AristaOC specific model
+// representation to the transport.
+// Needed for type assertion.
+func (oc *AristaOC) SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
 	return func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
 		if err := ytypes.SetNode(schema, root.(*arista.Device), path, val, opts...); err != nil {
 			return err