diff --git a/go.mod b/go.mod
index caf8d7d3caa880c6ef321d11e1e31f6056964cdf..cd2968495db3b9c03e9f70233a01fc605b05be7f 100644
--- a/go.mod
+++ b/go.mod
@@ -2,18 +2,15 @@ module code.fbi.h-da.de/cocsn/gosdn
 
 go 1.14
 
-replace github.com/go-openapi/runtime v0.19.21 => /Users/mk/go/src/github.com/go-openapi/runtime
+replace github.com/go-openapi/runtime v0.19.22 => /Users/mk/go/src/github.com/go-openapi/runtime/
 
 require (
-	github.com/go-openapi/errors v0.19.7
-	github.com/go-openapi/loads v0.19.5
-	github.com/go-openapi/runtime v0.19.21
-	github.com/go-openapi/spec v0.19.9
+	code.fbi.h-da.de/cocsn/swagger/apis/ciena v0.0.0-20200922140607-29b1f99d0f68
+	code.fbi.h-da.de/cocsn/yang-modules/generated/ciena v0.0.0-20200922150332-3e03fcde3e37
+	github.com/go-openapi/runtime v0.19.22
 	github.com/go-openapi/strfmt v0.19.5
-	github.com/go-openapi/swag v0.19.9
-	github.com/go-openapi/validate v0.19.11
-	github.com/jessevdk/go-flags v1.4.0
-	github.com/openconfig/goyang v0.0.0-20200917201611-633eccb6fa97
+	github.com/mattn/go-sqlite3 v1.14.3
 	github.com/openconfig/ygot v0.8.7
-	golang.org/x/net v0.0.0-20200904194848-62affa334b73
+	github.com/spf13/cobra v1.0.0
+	google.golang.org/grpc v1.32.0
 )
diff --git a/go.sum b/go.sum
index caa0017dbe2941a82bf9efe0107bf23afd59dfd2..1c38873b11957a0838a45783f678c0b55e9e6408 100644
--- a/go.sum
+++ b/go.sum
@@ -1,34 +1,55 @@
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+code.fbi.h-da.de/cocsn/swagger/apis/ciena v0.0.0-20200922140607-29b1f99d0f68 h1:6e4H/jqcQpTRBpW3w2yiTPJPTdHh5ae690CN5MYLC9M=
+code.fbi.h-da.de/cocsn/swagger/apis/ciena v0.0.0-20200922140607-29b1f99d0f68/go.mod h1:s4plD1z1S3gczXjA/DLHduyWvh7OL6c55UlCFTW0QQ4=
+code.fbi.h-da.de/cocsn/yang-modules/generated/ciena v0.0.0-20200922150332-3e03fcde3e37 h1:d8hCQXKwDTy57uyZ5wWv4bh3d3XMQ+y1cuRPm/kou1c=
+code.fbi.h-da.de/cocsn/yang-modules/generated/ciena v0.0.0-20200922150332-3e03fcde3e37/go.mod h1:6y19lLlbuhv+tqzQA05s2y7lpvR7g3ZTBOltp32Q5DY=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
 github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
 github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
-github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 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/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
 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/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
 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=
+github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
+github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
+github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
+github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
 github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
 github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
+github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
 github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
 github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
@@ -41,9 +62,8 @@ github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQH
 github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
 github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
 github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
+github.com/go-openapi/errors v0.19.6 h1:xZMThgv5SQ7SMbWtKFkCf9bBdvR2iEyw9k3zGZONuys=
 github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
-github.com/go-openapi/errors v0.19.7 h1:Lcq+o0mSwCLKACMxZhreVHigB9ebghJ/lrmeaqASbjo=
-github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
 github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
 github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
 github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
@@ -52,9 +72,8 @@ github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34
 github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
 github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
 github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
+github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
 github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/jsonreference v0.19.4 h1:3Vw+rh13uq2JFNxgnMTGE1rnoieU9FmyE1gvnyylsYg=
-github.com/go-openapi/jsonreference v0.19.4/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
 github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
@@ -66,17 +85,13 @@ github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6
 github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
 github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
 github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo=
-github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98=
-github.com/go-openapi/runtime v0.19.21 h1:81PiYus9l6fwwS4EwhJD+tQb3EPZBeWfgdAVTfFD25Q=
-github.com/go-openapi/runtime v0.19.21/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk=
 github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
 github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
 github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
 github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
 github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
+github.com/go-openapi/spec v0.19.8 h1:qAdZLh1r6QF/hI/gTq+TJTvsQUodZsM7KLqkAJdiJNg=
 github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
-github.com/go-openapi/spec v0.19.9 h1:9z9cbFuZJ7AcvOHKIY+f6Aevb4vObNDkTEyoMfO7rAc=
-github.com/go-openapi/spec v0.19.9/go.mod h1:vqK/dIdLGCosfvYsQV3WfC7N3TiZSnGY2RZKoFK7X28=
 github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
 github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
 github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
@@ -95,9 +110,8 @@ github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfT
 github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
 github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
 github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo=
+github.com/go-openapi/validate v0.19.10 h1:tG3SZ5DC5KF4cyt7nqLVcQXGj5A7mpaYkAcNPlDK+Yk=
 github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8=
-github.com/go-openapi/validate v0.19.11 h1:8lCr0b9lNWKjVjW/hSZZvltUy+bULl7vbnCTsOzlhPo=
-github.com/go-openapi/validate v0.19.11/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4=
 github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
@@ -124,10 +138,14 @@ github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWe
 github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=
 github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=
 github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
 github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
@@ -139,8 +157,8 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
 github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
@@ -150,16 +168,25 @@ github.com/google/protobuf v3.11.4+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bj
 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=
+github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
+github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
+github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
+github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
+github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
+github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
-github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
-github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
 github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
+github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
+github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
 github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
+github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
@@ -168,6 +195,7 @@ 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/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
@@ -176,39 +204,66 @@ github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8
 github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
 github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
 github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
+github.com/mattn/go-sqlite3 v1.14.3 h1:j7a/xn1U6TKA/PHHxqZuzh64CdtRc7rU9M+AvkOl5bA=
+github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI=
+github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg=
 github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
+github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
+github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
 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 h1:tADOCjwReJpTRMXVGQn1LpGaX7zU5nqr4LalWOS9Wts=
 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.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
 github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
+github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
+github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
+github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
+github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
+github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
+github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
+github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
+github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
+github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8=
+github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
+github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
+github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
 github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
@@ -219,14 +274,21 @@ github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd
 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
+github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
 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=
+github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
+github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
+go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
 go.mongodb.org/mongo-driver v1.3.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE=
 go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
+go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
+go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
+go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -235,7 +297,6 @@ golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8U
 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=
 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -243,26 +304,31 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
 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-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=
-golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -272,15 +338,16 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4=
 golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -290,6 +357,7 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn
 golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -298,12 +366,14 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98
 google.golang.org/genproto v0.0.0-20200519141106-08726f379972 h1:6ydLqG65DIMNJf6p97WudGsmd1w3Ickm/LiZnBrREPI=
 google.golang.org/genproto v0.0.0-20200519141106-08726f379972/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
 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/grpc v1.32.0 h1:zWTV+LMdc3kaiJMSTOFz2UgSBgx8RNQoTGiZu3fR9S0=
+google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -312,11 +382,14 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi
 google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
+gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/gosdn-cli/gosdn-cli.go b/gosdn-cli/gosdn-cli.go
deleted file mode 100644
index bdec44088f2fcb059c4c443e1d9ed24b00189c52..0000000000000000000000000000000000000000
--- a/gosdn-cli/gosdn-cli.go
+++ /dev/null
@@ -1,40 +0,0 @@
-package main
-
-import (
-	"context"
-	"google.golang.org/grpc"
-	"log"
-	"os"
-	pb "project-beachhead/grpc_interface"
-	"time"
-)
-
-const (
-	address     = "localhost:55055"
-	defaultName = "gosdn-cli"
-)
-
-// Based on the helloworld example of grpc.io
-
-func main() {
-	// Set up a connection to the server.
-	conn, err := grpc.Dial(address, grpc.WithInsecure(), grpc.WithBlock())
-	if err != nil {
-		log.Fatalf("did not connect: %v", err)
-	}
-	defer conn.Close()
-	c := pb.NewGreeterClient(conn)
-
-	// Contact the server and print out its response.
-	name := defaultName
-	if len(os.Args) > 1 {
-		name = os.Args[1]
-	}
-	ctx, cancel := context.WithTimeout(context.Background(), time.Second)
-	defer cancel()
-	r, err := c.SayHello(ctx, &pb.HelloRequest{Name: name})
-	if err != nil {
-		log.Fatalf("could not greet: %v", err)
-	}
-	log.Printf("Greeting: %s", r.GetMessage())
-}
diff --git a/main.go b/main.go
index c5a8894e621c297b3af6be0bfcf64a4c17219b57..e76a37526aeaf58e16c0c51dde2e5229994ee8e5 100644
--- a/main.go
+++ b/main.go
@@ -1,7 +1,7 @@
 package main
 
 import (
-	"nucleus"
+	"code.fbi.h-da.de/cocsn/gosdn/nucleus"
 )
 
 func main() {
diff --git a/nucleus/controller.go b/nucleus/controller.go
index 1c7edae0d43013e7bef2ab9f720ac0a2d12de2dd..c6d05cac579432cdc66e8ebd51f842ba94dccf8f 100644
--- a/nucleus/controller.go
+++ b/nucleus/controller.go
@@ -1,10 +1,10 @@
 package nucleus
 
 import (
+	yangPro "code.fbi.h-da.de/cocsn/yang-modules/generated/ciena"
 	"fmt"
 	"github.com/openconfig/ygot/ygot"
 	"net"
-	yangPro "gosdn/yang-processor"
 )
 
 // This is a test function in order to see how to generate JSON encoded openconfig stuff
@@ -17,11 +17,14 @@ func AssembleJSON() {
 	for _, iface := range interfaces {
 		fmt.Println(iface.Name)
 
-		i, err := d.NewInterface(iface.Name)
+		i, err := d.WaveserverInterfaces.NewLogicalInterface("en0")
 		if err != nil {
 			panic(err)
 		}
-		i.Mtu = ygot.Uint16(234)
+		i.State = &yangPro.CienaWaveserverInterfaces_WaveserverInterfaces_LogicalInterface_State{
+			AdminState:       0,
+			OperationalState: 0,
+		}
 		//i.Mtu = ygot.Uint16(iface.MTU)
 	}
 
@@ -46,4 +49,4 @@ func AssembleJSON() {
 		panic(fmt.Sprintf("Cannot unmarshal JSON: %v", err))
 	}
 
-}
\ No newline at end of file
+}
diff --git a/nucleus/nucleus-core.go b/nucleus/nucleus-core.go
index e7f60b1d0748230757b96c8ad869d772e4a340b0..4ae2dd1aa4ce4bb3f15c97a8ec91ed47de693fb9 100644
--- a/nucleus/nucleus-core.go
+++ b/nucleus/nucleus-core.go
@@ -6,7 +6,6 @@ import (
 	"google.golang.org/grpc"
 	"log"
 	"net"
-	pb "project-beachhead/grpc_interface"
 	"time"
 )
 
@@ -34,7 +33,6 @@ func getCLIGoing() {
 		log.Fatalf("failed to listen: %v", err)
 	}
 
-
 	cliControlServer := grpc.NewServer()
 
 	pb.RegisterGreeterServer(cliControlServer, &server{})
@@ -52,7 +50,7 @@ func getCLIGoing() {
 
 func StartUp() {
 
-	log.Println ("This is the network superintendent...")
+	log.Println("This is the network superintendent...")
 	log.Println("Starting my ducks")
 	// Start the GRCP CLI
 	go getCLIGoing()
@@ -64,18 +62,14 @@ func StartUp() {
  * nucleus.Run() is the "main loop" of the controller
  */
 
-
 func Run() {
 	isRunning := true
 
-
 	// Test ygot
 	AssembleJSON()
 
-
-
 	for isRunning {
-		time.Sleep(10*time.Second)
+		time.Sleep(10 * time.Second)
 		isRunning = false
 	}
 
diff --git a/restconf/bin/server/handler/interfaceHandler.go b/restconf/bin/server/handler/interfaceHandler.go
deleted file mode 100644
index 8c6baab44a55e9450ff353b546fd0205b6474ce5..0000000000000000000000000000000000000000
--- a/restconf/bin/server/handler/interfaceHandler.go
+++ /dev/null
@@ -1,41 +0,0 @@
-package handler
-
-import (
-	"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server/operations/ciena_waveserver_interfaces"
-	"github.com/go-openapi/runtime/middleware"
-)
-
-func Ifh(ciena_waveserver_interfaces.GetDataWaveserverInterfacesParams) middleware.Responder {
-	return ciena_waveserver_interfaces.NewGetDataWaveserverInterfacesOK().WithPayload(
-		&ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBody{
-			Data: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyData{
-				WaveserverInterfaces: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfaces{
-					ACL:              nil,
-					LogicalInterface: nil,
-					PhysicalInterface: []*ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0{
-						{
-							ID: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0ID{
-								Description: "",
-								Ifindex:     2,
-								Name:        "ifp0-ilan-1",
-								Type:        "ILAN",
-							},
-							Name: "ifp0-ilan-1",
-							Properties: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0Properties{
-								Ethernet: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0PropertiesEthernet{
-									AutoNegotiation: true,
-									Duplex:          "full",
-									FlowControl:     true,
-									Speed:           "1G",
-								},
-								Management: nil,
-							},
-							State: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesOKBodyDataWaveserverInterfacesPhysicalInterfaceItems0State{
-								AdminState: "disabled",
-							}},
-					},
-				},
-			},
-		},
-	)
-}
diff --git a/restconf/bin/server/handler/logicalInterfaceHandler.go b/restconf/bin/server/handler/logicalInterfaceHandler.go
deleted file mode 100644
index 070b8c0a5f0eea07e9a7d5f6931114fa0853cdb0..0000000000000000000000000000000000000000
--- a/restconf/bin/server/handler/logicalInterfaceHandler.go
+++ /dev/null
@@ -1,31 +0,0 @@
-package handler
-
-import (
-	"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server/operations/ciena_waveserver_interfaces"
-	"github.com/go-openapi/runtime/middleware"
-)
-
-func Lifh(ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceParams) middleware.Responder {
-	return ciena_waveserver_interfaces.NewGetDataWaveserverInterfacesLogicalInterfaceOK().WithPayload(
-		&ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBody{
-			Data: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyData{
-				LogicalInterface: []*ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyDataLogicalInterfaceItems0{
-					{
-						ID: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyDataLogicalInterfaceItems0ID{
-							Ifindex: 0,
-							Name:    "en0",
-						},
-						Index: 0,
-						Properties: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyDataLogicalInterfaceItems0Properties{
-							IPV4: nil,
-						},
-						State: &ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceOKBodyDataLogicalInterfaceItems0State{
-							AdminState:       "disabled",
-							OperationalState: "disabled",
-						},
-					},
-				},
-			},
-		},
-	)
-}
diff --git a/restconf/bin/server/no-passphrase.key b/restconf/bin/server/no-passphrase.key
deleted file mode 100644
index b10d714ab5590def1d99c2d12fad273022745fec..0000000000000000000000000000000000000000
--- a/restconf/bin/server/no-passphrase.key
+++ /dev/null
@@ -1,52 +0,0 @@
------BEGIN PRIVATE KEY-----
-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
-Eki1r2A2/QhegKD6wDe3vebCz4ko
------END PRIVATE KEY-----
diff --git a/restconf/bin/server/server b/restconf/bin/server/server
deleted file mode 100755
index 7b94457c352566ba1b745fde2f54816b8e00009b..0000000000000000000000000000000000000000
Binary files a/restconf/bin/server/server and /dev/null differ
diff --git a/restconf/bin/server/server.go b/restconf/bin/server/server.go
deleted file mode 100644
index 701f4c40e5a7878e862652c5703c3c91580cd9ec..0000000000000000000000000000000000000000
--- a/restconf/bin/server/server.go
+++ /dev/null
@@ -1,59 +0,0 @@
-package main
-
-import (
-	"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server"
-	"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server/operations/ciena_waveserver_interfaces"
-	"code.fbi.h-da.de/cocsn/gosdn/restconf/bin/server/handler"
-	"log"
-	"os"
-
-	"code.fbi.h-da.de/cocsn/gosdn/restconf/api/server/operations"
-	"github.com/go-openapi/loads"
-	flags "github.com/jessevdk/go-flags"
-)
-
-func main() {
-
-	swaggerSpec, err := loads.Embedded(server.SwaggerJSON, server.FlatSwaggerJSON)
-	if err != nil {
-		log.Fatalln(err)
-	}
-
-	api := operations.NewWaveserverRESTAPISwaggerDescriptionAPI(swaggerSpec)
-
-	api.CienaWaveserverInterfacesGetDataWaveserverInterfacesHandler =
-		ciena_waveserver_interfaces.GetDataWaveserverInterfacesHandlerFunc(handler.Ifh)
-
-	api.CienaWaveserverInterfacesGetDataWaveserverInterfacesLogicalInterfaceHandler =
-		ciena_waveserver_interfaces.GetDataWaveserverInterfacesLogicalInterfaceHandlerFunc(handler.Lifh)
-	srv := server.NewServer(api)
-	defer srv.Shutdown()
-
-	parser := flags.NewParser(srv, flags.Default)
-	parser.ShortDescription = "Waveserver REST API Swagger description"
-	parser.LongDescription = "\n# Welcome to the Waveserver REST API swagger interface.\n\nThis page documents the HTTPS actions supported for the objects defined in the Waveserver YANG models.\n\nSelecting a module will expand its contents and show the supported actions.\n\nEach action has a schema associated with it to help show the supported output and required input for the action.  It is also possible to test out the API by filling in the required parameters and clicking the \"Try it out!\" button.\n\nNote that PATCH, POST or DELETE calls will alter the device database from its original state! \n\nFor GET request, all YANG models are wrapped in a <data> element or \"data\" object for XML or JSON content type, respectively.\n      "
-	srv.ConfigureFlags()
-	for _, optsGroup := range api.CommandLineOptionsGroups {
-		_, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options)
-		if err != nil {
-			log.Fatalln(err)
-		}
-	}
-
-	if _, err := parser.Parse(); err != nil {
-		code := 1
-		if fe, ok := err.(*flags.Error); ok {
-			if fe.Type == flags.ErrHelp {
-				code = 0
-			}
-		}
-		os.Exit(code)
-	}
-
-	srv.ConfigureAPI()
-
-	if err := srv.Serve(); err != nil {
-		log.Fatalln(err)
-	}
-
-}
diff --git a/restconf/bin/server/unsigned.crt b/restconf/bin/server/unsigned.crt
deleted file mode 100644
index a41124a83e2cbd1d1e3382b6f8481e5eee74e0ad..0000000000000000000000000000000000000000
--- a/restconf/bin/server/unsigned.crt
+++ /dev/null
@@ -1,31 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFPjCCAyYCCQDPIiV6g8O1kzANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJk
-ZTELMAkGA1UECAwCZGUxCzAJBgNVBAcMAmRlMQswCQYDVQQKDAJkZTELMAkGA1UE
-CwwCZGUxCzAJBgNVBAMMAmRlMREwDwYJKoZIhvcNAQkBFgJkZTAeFw0yMDA5MTYw
-OTMxMTdaFw0yMTA5MTYwOTMxMTdaMGExCzAJBgNVBAYTAmRlMQswCQYDVQQIDAJk
-ZTELMAkGA1UEBwwCZGUxCzAJBgNVBAoMAmRlMQswCQYDVQQLDAJkZTELMAkGA1UE
-AwwCZGUxETAPBgkqhkiG9w0BCQEWAmRlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAnFk5BSBfewyBsPyIIvYfB7hggJS2mghkxmUf3Oj9bPyq0irddmzS
-RA3zX21fCOrjZfclKsFH8BLlucUWqWwo2zBEMlRewIp+/DgCW+1GB5gT8i7MLGQX
-m/RlzXeQzuNiM+l9e+uuBk4Sjx1jFvPLOugGlE6uMdKY5XlbRW3AxYLCzLH9I7kt
-2EgDXxWVt4pW9lelSQ5Of9dk2AgQzP+isKKdjNjLR4gM1KDkr7LZ5slYLmOCCkPA
-4IX8l/OJPePPQWiP2ihrV4nEjfT8P0jEOAGyJrSoWStqS7/K2wZ1GDZp6HbbB+6W
-6+YEpoMEmrGYpBzDW4cTaFzjxx1iP+5pa10UvqrzStmhkyHsxL7PXdoEvJw4u/iI
-+wknmX3eHm+f2Z0oEIHsjo/5EPsco8cxoMg2H8b8+LqTAiYvlbBxEKipcXFkihXu
-fnQz8DYe/FEiZWipYAF4lKtEWI++L80Y9r/5LfCS39lZM7Z+R30w2oHZt3aDMELU
-A1i3sCGH2J+hXBP7GwGhLhIi8F+e43Nsz0cS+STRNVYgT1Cu4leig5hMalHk+YQf
-UDRSgeWzXUjjYfTeFHwuT2qgqfobw9uZlCX4WlJOwXohg8sxYBANO9KlI+Qall3u
-Cv8cCQqlDV6QP4lp0mytIQeCbvUFamWcso3iZG4MWTchsX+ui+vDrcMCAwEAATAN
-BgkqhkiG9w0BAQsFAAOCAgEAcDT3NNGGn2YFDxP+kwp0id18AOeLKo/k7RYKs8OS
-H9p7m+vQdyp3rfD3BRL3bLcEfFJZrb1PK1hrhiketb1DoGM++ybsqMPhUS3/uvtn
-0ypxHuq27Xhsod+5u05/XzmeXLhJuCbc5QIfUD2U49VLAc2pscXvHgrIf19Of++x
-6C+xioNCSL881x3hYIWIm5bHfyNH6Y2Y/e/VHBAq8+4eNCa5FOKMxGa+sLsHcOdz
-XpD/D6xkznUnC8qcVxpChy+4t8EZ+ZYPhR18ahxDXdQIUjFeX7tk/3+D5UUQzHzM
-L3AiMfux8Gkyt7ix0sSJWHp8HszGYoLkEYQmpSKnZBGDWqsR/0afL92hQw51dkFd
-UfyO5Q9Q09EJmuWayM5QAB0crS+MqtqvNTD46eW1KRF2PMVOk5g8/Zgx2aDFKYJv
-emef9OxABdsC8iit6LrVa3gB7mktdzIn2Egr3WAx55/KI6wIHERzolINFSHdS6Qy
-79FJ1p205FFjGbu7f4GFHfrVd+pQPnJZ5RMecZPkDSCEfuxkwwsIj/jkQBOy8wHM
-ljfYEKP7IsQQHrEqJ589K/h/q0AJjPBCL7IXAKG9ktV0jjC41UTqiD8HgYe4nM8p
-9dCsDi3KdCfhoWbiJ4q5dtA1KZNfoj6uqBORbQmLwkhjKVb612Zy6X/IaIy+EU7Q
-cX8=
------END CERTIFICATE-----
diff --git a/restconf/bin/client/client.go b/restconf/client/ciena/client.go
similarity index 58%
rename from restconf/bin/client/client.go
rename to restconf/client/ciena/client.go
index a2ea6d0d838c3ee00c226a821c8a71516efd37f7..92d7ea3af553dac819f08374509b47dbd471a90d 100644
--- a/restconf/bin/client/client.go
+++ b/restconf/client/ciena/client.go
@@ -1,9 +1,9 @@
-package main
+package ciena
 
 import (
-	apiclient "code.fbi.h-da.de/cocsn/gosdn/restconf/api/client/ciena_waveserver_interfaces"
 	"code.fbi.h-da.de/cocsn/gosdn/restconf/util"
-	gosdnyang "code.fbi.h-da.de/cocsn/gosdn/yang-processor"
+	apiclient "code.fbi.h-da.de/cocsn/swagger/apis/ciena/client/ciena_waveserver_interfaces"
+	yang "code.fbi.h-da.de/cocsn/yang-modules/generated/ciena"
 	"crypto/tls"
 	"github.com/go-openapi/runtime"
 	httptransport "github.com/go-openapi/runtime/client"
@@ -12,24 +12,21 @@ import (
 	"net/http"
 )
 
-// hostname or IP only. No protocol prefix and no request suffix (I'm looking at you C//)
-const ENDPOINT = "developer.ciena.com"
-
-// Ciena Emulation Cloud only
-const REQUEST_PREFIX = "externalApi/o1/64/o2/58?md5=PaR-iVYPq_fTUCvlqUBoVg&expires=1600707600&path="
-const USERNAME = "dev"
-const PASSWORD = "dev131526"
+type WaveserverClient struct {
+	transport *runtime.ClientTransport
+	client    *apiclient.ClientService
+}
 
-func main() {
+func NewWaveserverClient(endpoint, requestPrefix, username, password string) WaveserverClient {
 	// create the transport
-	transport := httptransport.New(ENDPOINT, REQUEST_PREFIX+"/restconf", nil)
+	transport := httptransport.New(endpoint, requestPrefix+"/restconf", nil)
 	transport.Transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
 	transport.Debug = true
 	transport.DefaultMediaType = runtime.JSONMime
 
 	// create the API client, with the transport
 	client := apiclient.New(transport, strfmt.Default).(*apiclient.Client)
-	basicAuth := httptransport.BasicAuth(USERNAME, PASSWORD)
+	basicAuth := httptransport.BasicAuth(username, password)
 
 	// authenticate client
 	transport.DefaultAuthentication = basicAuth
@@ -42,9 +39,13 @@ func main() {
 	if err != nil {
 		log.Fatal(err)
 	}
-	logicalInterface := gosdnyang.CienaWaveserverInterfaces_WaveserverInterfaces{}
-	if err = gosdnyang.Unmarshal(buf, &logicalInterface); err != nil {
+	logicalInterface := yang.CienaWaveserverInterfaces_WaveserverInterfaces{}
+	if err = yang.Unmarshal(buf, &logicalInterface); err != nil {
 		log.Fatal(err)
 	}
 	logicalInterface.IsYANGGoStruct()
 }
+
+func (c WaveserverClient) GetConfig() string {
+	return "generic client, not implemented yet"
+}
diff --git a/restconf/client/client.go b/restconf/client/client.go
new file mode 100644
index 0000000000000000000000000000000000000000..2667095bba8befcb33c916c223357c7afdb7314d
--- /dev/null
+++ b/restconf/client/client.go
@@ -0,0 +1,25 @@
+package main
+
+import (
+	"github.com/go-openapi/runtime"
+)
+
+// hostname or IP only. No protocol prefix and no request suffix (I'm looking at you C//)
+const ENDPOINT = "developer.ciena.com"
+
+// Ciena Emulation Cloud only
+const REQUEST_PREFIX = "externalApi/o1/64/o2/58?md5=PaR-iVYPq_fTUCvlqUBoVg&expires=1600707600&path="
+const USERNAME = "dev"
+const PASSWORD = "dev131526"
+
+type Client interface {
+	GetConfig() string
+}
+
+type GenericClient struct {
+	transport *runtime.ClientTransport
+}
+
+func NewClient(endpoint, requestPrefix, username, password string) GenericClient {
+	return GenericClient{}
+}