diff --git a/nucleus/controller.go b/nucleus/controller.go
index 9de78e91939e778db1c00f1c58b40d7d9ba9c72d..47c87bf0a6edf82066ee84ed43b7cfa7ff4c60c4 100644
--- a/nucleus/controller.go
+++ b/nucleus/controller.go
@@ -52,4 +52,4 @@ func (c *Core) Shutdown() {
 	}
 	log.Info("Shutdown complete")
 	os.Exit(0)
-}
\ No newline at end of file
+}
diff --git a/nucleus/device.go b/nucleus/device.go
index bd3dcb722746e8f0b3c1379cc6daae99fbc40e4e..78bb3fae47715b982bb3fd663ccf545981be17b1 100644
--- a/nucleus/device.go
+++ b/nucleus/device.go
@@ -19,7 +19,7 @@ type Device struct {
 // use better naming in further develop
 // Also all that Interface Call specific logic belongs to SBI!
 func (d Device) Add(resp interface{}) error {
-	s, err := openconfig.Schema()
+	s, err := d.SBI.Schema()
 	if err != nil {
 		return err
 	}
diff --git a/nucleus/device_test.go b/nucleus/device_test.go
index 3f89d7d0fd7844082c76c530eed2d2acf4118007..a452c791232c5bf17f96eebb46f935261857003e 100644
--- a/nucleus/device_test.go
+++ b/nucleus/device_test.go
@@ -34,4 +34,4 @@ func TestDevice_Add(t *testing.T) {
 			log.Debug(d.SBI.SbiIdentifier())
 		})
 	}
-}
\ No newline at end of file
+}
diff --git a/nucleus/southbound.go b/nucleus/southbound.go
index a3aa5af682a41581b53ce03e69526a5e34454349..e908f41d17b114b92f3cb814ad92f0dbe41efb92 100644
--- a/nucleus/southbound.go
+++ b/nucleus/southbound.go
@@ -1,9 +1,18 @@
 package nucleus
 
+import (
+	"code.fbi.h-da.de/cocsn/gosdn/nucleus/util"
+	"code.fbi.h-da.de/cocsn/yang-models/generated/openconfig"
+	"github.com/openconfig/ygot/ytypes"
+)
+
 // SouthboundInterface provides an
 // interface for SBI implementations
 type SouthboundInterface interface {
+	// Deprecated
 	SbiIdentifier() string
+
+	Schema() (*ytypes.Schema, error)
 }
 
 type Tapi struct {
@@ -11,12 +20,17 @@ type Tapi struct {
 
 type OpenConfig struct {
 	transport Transport
+	schema    *ytypes.Schema
 }
 
 func (oc *OpenConfig) SbiIdentifier() string {
 	return "openconfig"
 }
 
+func (oc *OpenConfig) Schema() (*ytypes.Schema, error) {
+	return openconfig.Schema()
+}
+
 func (oc *OpenConfig) OpenconfigInterfaces(device Device) {
 	resp, err := oc.transport.Get(nil, nil...)
 	if err != nil {
@@ -24,3 +38,10 @@ func (oc *OpenConfig) OpenconfigInterfaces(device Device) {
 	}
 	device.Add(resp)
 }
+
+func (oc *OpenConfig) GetFullDeviceInfo(device Device) error {
+	paths := util.NewPaths()
+	paths.ParseSchema(oc.schema, "device")
+
+	return nil
+}
diff --git a/nucleus/southbound_test.go b/nucleus/southbound_test.go
index 447696fa7cb6350f089bed728ea31b5ea01af477..72536cbbb63612ae3e74312393ee4a94c462d91a 100644
--- a/nucleus/southbound_test.go
+++ b/nucleus/southbound_test.go
@@ -47,4 +47,4 @@ func TestOpenConfig_OpenconfigInterfaces(t *testing.T) {
 			oc.OpenconfigInterfaces(tt.args.device)
 		})
 	}
-}
\ No newline at end of file
+}