diff --git a/main.go b/main.go
index e76a37526aeaf58e16c0c51dde2e5229994ee8e5..d9c5737f95394d86c41b69145fad44bdb5e9ba26 100644
--- a/main.go
+++ b/main.go
@@ -1,13 +1,34 @@
 package main
 
 import (
-	"code.fbi.h-da.de/cocsn/gosdn/nucleus"
+	"flag"
+	"gosdn/nucleus"
 )
 
+
+// Generate the code out of the yang modules
+//go:generate go run $GOPATH/src/github.com/openconfig/ygot/generator/generator.go -path=yang -output_file=yang-processor/gosdnyang.go.go -package_name=gosdnyang -generate_fakeroot -fakeroot_name=device -compress_paths=true -shorten_enum_leaf_names -exclude_modules=ietf-interfaces yang/openconfig-interfaces.yang yang/openconfig-if-ip.yang
+
+type goSDNConfiguration struct {
+	cliServerAddr4 *string
+	cliServerPort4 *int
+}
+
 func main() {
 
+	// register our supported flags
+	cliServerAddr4 := flag.String("cliServerAddr", "127.0.0.1", "The IPv4 Address of the grpcCLI.")
+	cliServerPort4 := flag.Int("cliServerPort", 55055, "The port number of the grpcCLI")
+
+	flag.Parse()
+
+	var myConfiguration = new(goSDNConfiguration)
+	myConfiguration.cliServerAddr4 = cliServerAddr4
+	myConfiguration.cliServerPort4 = cliServerPort4
+
 	// hand off to cmd for further processing
-	nucleus.Execute()
+	nucleus.StartUp()
+	nucleus.Run()
 
 	// nothing to see here, please move on!
 }
diff --git a/nucleus/controller.go b/nucleus/controller.go
index c6d05cac579432cdc66e8ebd51f842ba94dccf8f..1c7edae0d43013e7bef2ab9f720ac0a2d12de2dd 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,14 +17,11 @@ func AssembleJSON() {
 	for _, iface := range interfaces {
 		fmt.Println(iface.Name)
 
-		i, err := d.WaveserverInterfaces.NewLogicalInterface("en0")
+		i, err := d.NewInterface(iface.Name)
 		if err != nil {
 			panic(err)
 		}
-		i.State = &yangPro.CienaWaveserverInterfaces_WaveserverInterfaces_LogicalInterface_State{
-			AdminState:       0,
-			OperationalState: 0,
-		}
+		i.Mtu = ygot.Uint16(234)
 		//i.Mtu = ygot.Uint16(iface.MTU)
 	}
 
@@ -49,4 +46,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 4ae2dd1aa4ce4bb3f15c97a8ec91ed47de693fb9..d883dd132cd9f0a0bc18829be463b814b40963a0 100644
--- a/nucleus/nucleus-core.go
+++ b/nucleus/nucleus-core.go
@@ -6,6 +6,7 @@ import (
 	"google.golang.org/grpc"
 	"log"
 	"net"
+	pb "gosdn/cliInterface"
 	"time"
 )
 
@@ -65,9 +66,6 @@ func StartUp() {
 func Run() {
 	isRunning := true
 
-	// Test ygot
-	AssembleJSON()
-
 	for isRunning {
 		time.Sleep(10 * time.Second)
 		isRunning = false
diff --git a/nucleus/root.go b/nucleus/root.go
deleted file mode 100644
index c934fa7103018aebb7aac480af3a82ff17bde378..0000000000000000000000000000000000000000
--- a/nucleus/root.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package nucleus
-
-import (
-	"fmt"
-	"github.com/spf13/cobra"
-	"os"
-)
-
-
-func init() {
-	rootCmd.AddCommand(versionCmd)
-}
-
-var versionCmd = &cobra.Command{
-  Use:   "version",
-  Short: "Print the version number of goSDN",
-  Long:  `A version is a version.`,
-  Run: func(cmd *cobra.Command, args []string) {
-    fmt.Println("Beachead -- unkown HEAD")
-  },
-}
-
-var rootCmd = &cobra.Command{
-	Use:   "goSDN",
-	Short: "A yet still incomplete attempt to build an network operating system, but...:-)",
-	Long: "Incomplete network operating system. Complete documentation is available at XXX",
-	Run: func(cmd *cobra.Command, args []string) {
-		// Do Stuff Here
-		StartUp()
-		Run()
-	},
-}
-
-func Execute() {
-	if err := rootCmd.Execute(); err != nil {
-	fmt.Println(err)
-	os.Exit(1)
-	}
-}