diff --git a/configs/clients.toml b/configs/clients.toml
index 55587b67e38a2e99c7b8de177075aa628ac0f818..ef551bf2ed1f85fb42a152bea10da5586c48726a 100644
--- a/configs/clients.toml
+++ b/configs/clients.toml
@@ -1,3 +1,5 @@
 [[client]]
 identifier = "ciena-mcp"
 endpoint = "172.17.0.3:8080"
+gjsonDefaultPath = "data.#.object_data.tapi-object-data"
+gjsonConnectionsPath = "data.#.object_data"
diff --git a/go.mod b/go.mod
index 6931f95e021929526f4576020753dd1b053ed534..dd79e0b9f60580331c8fb96e184c765d554ff432 100644
--- a/go.mod
+++ b/go.mod
@@ -4,18 +4,19 @@ go 1.14
 
 require (
 	code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88
+	code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752
 	github.com/BurntSushi/toml v0.3.1
 	github.com/gdamore/tcell/v2 v2.0.1-0.20201017141208-acf90d56d591
 	github.com/go-openapi/runtime v0.19.22
 	github.com/go-openapi/strfmt v0.19.5
 	github.com/golang/protobuf v1.4.2
-	github.com/google/go-cmp v0.4.1 // indirect
 	github.com/neo4j/neo4j-go-driver v1.8.3
 	github.com/onsi/ginkgo v1.13.0 // indirect
+	github.com/openconfig/ygot v0.8.7
 	github.com/rivo/tview v0.0.0-20201018122409-d551c850a743
+	github.com/tidwall/gjson v1.6.3
 	github.com/sirupsen/logrus v1.4.2
 	golang.org/x/net v0.0.0-20200904194848-62affa334b73 // indirect
-	google.golang.org/genproto v0.0.0-20200519141106-08726f379972 // indirect
 	google.golang.org/grpc v1.29.1
 	google.golang.org/protobuf v1.23.0
 )
diff --git a/go.sum b/go.sum
index 068b336d320d5cb2c04c2980060b37ad15813906..6b90cf7a5ba559555977fa50e1c30c224c7bb174 100644
--- a/go.sum
+++ b/go.sum
@@ -1,6 +1,8 @@
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88 h1:cNqY3WEh+CX8+esxIwWU/uD7hRC5mPvuJmXzB07OeuA=
 code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88/go.mod h1:3jDZAOmepPl3kiukNGvPFkJEzgGczgrC3zJ2jcqVFSs=
+code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752 h1:hCeie9cCBt0gyETD0EAINuWqpEokf0ulP1Rv9F+rXB0=
+code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752/go.mod h1:EhCu5gVeMKHpjwoV5g5eycc7WcfU98jkPswLDRHQX5w=
 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
@@ -15,6 +17,7 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l
 github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
 github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY=
 github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
+github.com/cenkalti/backoff/v4 v4.0.0/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
@@ -155,6 +158,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
 github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.4.1 h1:/exdXoGamhu5ONeUJH0deniYLWYvQwW66yvlfiiKTu0=
 github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/protobuf v3.11.4+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bjm9HXyH5WHB0Akwh7URreM=
 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -175,6 +179,8 @@ github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
 github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac=
 github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
 github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
@@ -209,6 +215,17 @@ github.com/onsi/gomega v1.9.0 h1:R1uwffexN6Pr340GtYRIdZmAiN4J+iw6WG4wog1DUXg=
 github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
 github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE=
 github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
+github.com/openconfig/gnmi v0.0.0-20200414194230-1597cc0f2600/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A=
+github.com/openconfig/gnmi v0.0.0-20200508230933-d19cebf5e7be h1:VEK8utxoyZu/hkpjLxvuBmK5yW3NmBo/v/Wu5VQAJVs=
+github.com/openconfig/gnmi v0.0.0-20200508230933-d19cebf5e7be/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A=
+github.com/openconfig/goyang v0.0.0-20200115183954-d0a48929f0ea/go.mod h1:dhXaV0JgHJzdrHi2l+w0fZrwArtXL7jEFoiqLEdmkvU=
+github.com/openconfig/goyang v0.0.0-20200616001533-c0659aea65dd/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8=
+github.com/openconfig/goyang v0.0.0-20200917201611-633eccb6fa97 h1:TaCuNSX/fiTuky8ouzC+JaCJN+OSOpjtYlLrn/uXxxE=
+github.com/openconfig/goyang v0.0.0-20200917201611-633eccb6fa97/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8=
+github.com/openconfig/ygot v0.6.0/go.mod h1:o30svNf7O0xK+R35tlx95odkDmZWS9JyWWQSmIhqwAs=
+github.com/openconfig/ygot v0.8.7 h1:BKErV6vM15YGM1+XHDuLAQ938dYahzSgwlt9BIGFrdY=
+github.com/openconfig/ygot v0.8.7/go.mod h1:AqXe0HNEITTcmcYkr+yzDMY8ofitImUdfZV4IgRsJWU=
+github.com/pborman/getopt v0.0.0-20190409184431-ee0cd42419d3/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
 github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
 github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -241,8 +258,14 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/tidwall/gjson v1.6.3 h1:aHoiiem0dr7GHkW001T1SMTJ7X5PvyekH5WX0whWGnI=
+github.com/tidwall/gjson v1.6.3/go.mod h1:BaHyNc5bjzYkPqgLq7mdVzeiRtULKULXLgZFKsxEHI0=
+github.com/tidwall/match v1.0.1 h1:PnKP62LPNxHKTwvHHZZzdOAOCtsJTjo6dZLCwpKm5xc=
+github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E=
 github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
+github.com/tidwall/pretty v1.0.2 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU=
+github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
 github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
 github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
@@ -258,6 +281,7 @@ golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaE
 golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -274,7 +298,9 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
 golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM=
 golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200904194848-62affa334b73 h1:MXfv8rhZWmFeqX3GNZRsd6vOLoaCHjYEX3qkRo3YBUA=
@@ -339,6 +365,7 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi
 google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=
 google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
diff --git a/nucleus/interfaces/clientConfig.go b/nucleus/interfaces/clientConfig.go
index 5a2782e10fb6503eabff8db25aec83af35ac1960..b90df804102925a958eea25977486e275ebd48c3 100644
--- a/nucleus/interfaces/clientConfig.go
+++ b/nucleus/interfaces/clientConfig.go
@@ -3,8 +3,10 @@ package interfaces
 // ClientConfig contains SBI client
 // configuration parameters
 type ClientConfig struct {
-	Identifier string `toml:"identifier"`
-	Endpoint   string `toml:"endpoint"`
-	Username   string `toml:"username"`
-	Password   string `toml:"password"`
+	Identifier           string `toml:"identifier"`
+	Endpoint             string `toml:"endpoint"`
+	Username             string `toml:"username"`
+	Password             string `toml:"password"`
+	GjsonDefaultPath     string `toml:"gjsonDefaultPath"`
+	GjsonConnectionsPath string `toml:"gjsonConnectionsPath"`
 }
diff --git a/sbi/restconf/client/ciena/client.go b/sbi/restconf/client/ciena/client.go
index 6ca23972c29f3a41470f4c2e484ab12145cd7fcc..7b994496a17a145ce2b6ed5c207e0fb55b8b8435 100644
--- a/sbi/restconf/client/ciena/client.go
+++ b/sbi/restconf/client/ciena/client.go
@@ -6,12 +6,17 @@ import (
 	"code.fbi.h-da.de/cocsn/gosdn/nucleus/interfaces"
 	"code.fbi.h-da.de/cocsn/gosdn/sbi/restconf/util"
 	apiclient "code.fbi.h-da.de/cocsn/swagger/apis/mcp/client"
+	"code.fbi.h-da.de/cocsn/yang-modules/generated/tapi"
 	"crypto/tls"
+	"encoding/json"
 	"github.com/go-openapi/runtime"
 	httptransport "github.com/go-openapi/runtime/client"
 	"github.com/go-openapi/strfmt"
+	"github.com/openconfig/ygot/ygot"
+	"github.com/tidwall/gjson"
 	log "github.com/sirupsen/logrus"
 	"net/http"
+	"strings"
 )
 
 //MCPClient handles requests to a Ciena MCP RESTCONF endpoint
@@ -21,6 +26,7 @@ type MCPClient struct {
 	database  *database.Database
 	buffer    *bytes.Buffer
 	config    *interfaces.ClientConfig
+	device    ygot.GoStruct
 }
 
 // GetConfig returns a ClientConfig struct containing
@@ -49,6 +55,7 @@ func NewMCPClient(endpoint, username, password string, database *database.Databa
 		database:  database,
 		buffer:    buffer,
 		config:    config,
+		device:    &tapi.Device{},
 	}
 }
 
@@ -57,8 +64,25 @@ func NewMCPClient(endpoint, username, password string, database *database.Databa
 func (c *MCPClient) GetConnections() error {
 	defer c.buffer.Reset()
 	_, err := c.client.TapiConnectivityCore.GetTapiCoreContextConnection(nil)
-	c.database.StoreConnections(c.buffer.String())
-	log.Debug(c.buffer.Next(25))
+	if err != nil {
+		return err
+	}
+
+	json := preformatJSON(c.buffer.String(), c.config.GjsonConnectionsPath)
+
+	for _, jsonEntry := range json.Array() {
+		dest := &tapi.TapiCommon_Context_ConnectivityContext_Connection{}
+		if err := tapi.Unmarshal([]byte(jsonEntry.String()), dest); err != nil {
+			//TODO: think about a way how to handle this.
+			//logging every error is kinda ugly, since ciena tapi throws a
+			//lot of them.
+			log.Info(err)
+		}
+		log.Info(*dest.Uuid)
+	}
+
+	// c.database.StoreConnections(c.buffer.String())
+	// log.Debug(c.buffer.Next(25))
 	return err
 }
 
@@ -67,8 +91,25 @@ func (c *MCPClient) GetConnections() error {
 func (c *MCPClient) GetLinks() error {
 	defer c.buffer.Reset()
 	_, err := c.client.TapiTopologyCore.GetTapiCoreContextTopologyMcpBaseTopologyLink(nil)
-	c.database.StoreLinks(c.buffer.String())
-	log.Debug(c.buffer.Next(25))
+	if err != nil {
+		return err
+	}
+
+	json := preformatJSON(c.buffer.String(), c.config.GjsonDefaultPath)
+
+	for _, jsonEntry := range json.Array() {
+		dest := &tapi.TapiCommon_Context_TopologyContext_Topology_Link{}
+		if err := tapi.Unmarshal([]byte(jsonEntry.String()), dest); err != nil {
+			//TODO: think about a way how to handle this.
+			//logging every error is kinda ugly, since ciena tapi throws a
+			//lot of them.
+			log.Info(err)
+		}
+		log.Info(*dest.Uuid)
+	}
+
+	// c.database.StoreLinks(c.buffer.String())
+	// log.Debug(c.buffer.Next(25))
 	return err
 }
 
@@ -77,8 +118,25 @@ func (c *MCPClient) GetLinks() error {
 func (c *MCPClient) GetNodes() error {
 	defer c.buffer.Reset()
 	_, err := c.client.TapiTopologyCore.GetTapiCoreContextTopologyMcpBaseTopologyNode(nil)
-	c.database.StoreNodes(c.buffer.String())
-	log.Debug(c.buffer.Next(25))
+	if err != nil {
+		return err
+	}
+
+	json := preformatJSON(c.buffer.String(), c.config.GjsonDefaultPath)
+
+	for _, jsonEntry := range json.Array() {
+		dest := &tapi.TapiCommon_Context_TopologyContext_Topology_Node{}
+		if err := tapi.Unmarshal([]byte(jsonEntry.String()), dest); err != nil {
+			//TODO: think about a way how to handle this.
+			//logging every error is kinda ugly, since ciena tapi throws a
+			//lot of them.
+			log.Info(err)
+		}
+		log.Info(*dest.Uuid)
+	}
+
+	// c.database.StoreNodes(c.buffer.String())
+	// log.Debug(c.buffer.Next(25))
 	return err
 }
 
@@ -87,7 +145,75 @@ func (c *MCPClient) GetNodes() error {
 func (c *MCPClient) GetNodeEdgePoints() error {
 	defer c.buffer.Reset()
 	_, err := c.client.TapiTopologyCore.GetTapiCoreContextTopologyMcpBaseTopologyNodeEdgePoint(nil)
+	if err != nil {
+		return err
+	}
+	//TODO: there is no tapi ygot struct that fits the ciena node-edge-point
+	dest := &tapi.TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint{}
+	if err := tapi.Unmarshal(c.buffer.Bytes(), dest); err != nil {
+		return err
+	}
 	c.database.StoreNodeEdgePoints(c.buffer.String())
 	log.Debug(c.buffer.Next(25))
 	return err
 }
+
+//preformatJSON preformats the recieved JSON for further processing
+func preformatJSON(jsn string, path string) *gjson.Result {
+	//TODO: move this!
+	modifierName := "uppercase"
+	gjson.AddModifier(modifierName, func(jsonString, arg string) string {
+		var jsonMap interface{}
+		err := json.Unmarshal([]byte(jsonString), &jsonMap)
+		if err != nil {
+			log.Info("failed unmarshal for JSON")
+		}
+
+		jsonMap = uppercaseJSONValues(jsonMap)
+		result, err := json.Marshal(jsonMap)
+		if err != nil {
+			log.Info("failed marshal for JSON")
+		}
+		return string(result)
+	})
+
+	formattedJSON := gjson.Get(jsn, path+"|@"+modifierName)
+	return &formattedJSON
+}
+
+//uppercaseJSONValues takes a interface{} created with json.Unmarshal() and changes the containing
+//string values to uppercase
+//returns a interface{} which can be changed back into a JSON string via
+//json.Marshal()
+func uppercaseJSONValues(jsonMap interface{}) interface{} {
+	switch jsonMap := jsonMap.(type) {
+	//check if []interface{} and go through every entry recursively
+	case []interface{}:
+		for i := range jsonMap {
+			jsonMap[i] = uppercaseJSONValues(jsonMap[i])
+		}
+		return jsonMap
+	//check if map[string]interface, handle ciena tapi json specific fixes
+	//and go on recursively
+	case map[string]interface{}:
+		tmpInterfaceMap := make(map[string]interface{}, len(jsonMap))
+		for k, v := range jsonMap {
+			//TODO: maybe we can uppercase them too, but for now:
+			//DO NOT uppercase uuid's
+			if strings.Contains(k, "uuid") {
+				tmpInterfaceMap[k] = v
+			} else {
+				tmpInterfaceMap[k] = uppercaseJSONValues(v)
+			}
+		}
+		return tmpInterfaceMap
+	//ygot: requires enums in uppercase and since CIENA TAPI does sometimes
+	//provide faulty JSON values we need to uppercase them before we process
+	//them further
+	case string:
+		return strings.ToUpper(jsonMap)
+	//default: do nothing (like for bool or other stuff)
+	default:
+		return jsonMap
+	}
+}