diff --git a/cliInterface/gosdnCLI.pb.go b/api/proto/gosdnCLI.pb.go
similarity index 100%
rename from cliInterface/gosdnCLI.pb.go
rename to api/proto/gosdnCLI.pb.go
diff --git a/cliInterface/gosdnCLI.proto b/api/proto/gosdnCLI.proto
similarity index 100%
rename from cliInterface/gosdnCLI.proto
rename to api/proto/gosdnCLI.proto
diff --git a/cliInterface/gosdnCLI_grpc.pb.go b/api/proto/gosdnCLI_grpc.pb.go
similarity index 100%
rename from cliInterface/gosdnCLI_grpc.pb.go
rename to api/proto/gosdnCLI_grpc.pb.go
diff --git a/gosdn-cli/gosdn-cli.go b/cmd/gosdn-cli/main.go
similarity index 98%
rename from gosdn-cli/gosdn-cli.go
rename to cmd/gosdn-cli/main.go
index bc6763c5b5777705815f93144674c4bc3a9dd4fb..9c8875cc6d90e1c9c3f81edd01f203cee6dcb317 100644
--- a/gosdn-cli/gosdn-cli.go
+++ b/cmd/gosdn-cli/main.go
@@ -1,8 +1,8 @@
 package main
 
 import (
-	pb "code.fbi.h-da.de/cocsn/gosdn/cliInterface"
-	"code.fbi.h-da.de/cocsn/gosdn/log"
+	pb "code.fbi.h-da.de/cocsn/gosdn/api/proto"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/log"
 	"context"
 	"flag"
 	"fmt"
diff --git a/main.go b/cmd/gosdn/main.go
similarity index 90%
rename from main.go
rename to cmd/gosdn/main.go
index 800252d804efd745aac2b87bd45ee5ce3df6ec66..e80e9b0ae6aaceaacd56ca7599eb10f333243015 100644
--- a/main.go
+++ b/cmd/gosdn/main.go
@@ -1,8 +1,8 @@
 package main
 
 import (
-	"code.fbi.h-da.de/cocsn/gosdn/log"
-	"code.fbi.h-da.de/cocsn/gosdn/nucleus"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/log"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/nucleus"
 	"flag"
 	"log/syslog"
 )
diff --git a/clients.toml b/configs/clients.toml
similarity index 100%
rename from clients.toml
rename to configs/clients.toml
diff --git a/gosdn.toml b/configs/gosdn.toml
similarity index 71%
rename from gosdn.toml
rename to configs/gosdn.toml
index 7fe3795e751421e29f26eb7e02d9dc3571163a61..26d755b34702b3733efb841a7d0e3148e4d0a30c 100644
--- a/gosdn.toml
+++ b/configs/gosdn.toml
@@ -1,4 +1,4 @@
 #example gosdn.toml
 CliSocket       = "localhost:55055"
 DatabaseSocket  = "bolt://141.100.70.170:7687"
-ConfigPath      = "./gosdn.toml"
\ No newline at end of file
+ConfigPath      = "./configs/gosdn.toml"
diff --git a/database/database.go b/internal/database/client.go
similarity index 99%
rename from database/database.go
rename to internal/database/client.go
index 69efde8c303e1092eda2b8390fa70e6599d84c35..35ed1bd39f4b583d0494875a63a49ddbc82a8bc3 100644
--- a/database/database.go
+++ b/internal/database/client.go
@@ -1,7 +1,7 @@
 package database
 
 import (
-	"code.fbi.h-da.de/cocsn/gosdn/log"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/log"
 	"errors"
 	"github.com/neo4j/neo4j-go-driver/neo4j"
 )
diff --git a/log/logger.go b/internal/log/logger.go
similarity index 100%
rename from log/logger.go
rename to internal/log/logger.go
diff --git a/log/loglevel.go b/internal/log/loglevel.go
similarity index 100%
rename from log/loglevel.go
rename to internal/log/loglevel.go
diff --git a/nucleus/cli-handling.go b/internal/nucleus/cli-handling.go
similarity index 93%
rename from nucleus/cli-handling.go
rename to internal/nucleus/cli-handling.go
index 9c5886980801ba10d37d52ae46f7b90bfdad1575..7e4c4824be65ccd8980219023d2ba4aab7a608b7 100644
--- a/nucleus/cli-handling.go
+++ b/internal/nucleus/cli-handling.go
@@ -7,9 +7,9 @@
 package nucleus
 
 import (
-	pb "code.fbi.h-da.de/cocsn/gosdn/cliInterface"
-	"code.fbi.h-da.de/cocsn/gosdn/log"
-	"code.fbi.h-da.de/cocsn/gosdn/restconf/client/ciena"
+	pb "code.fbi.h-da.de/cocsn/gosdn/api/proto"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/log"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/restconf/client/ciena"
 	"context"
 	"google.golang.org/grpc"
 	"net"
diff --git a/nucleus/controller.go b/internal/nucleus/controller.go
similarity index 89%
rename from nucleus/controller.go
rename to internal/nucleus/controller.go
index f5f0997efec9bb4272b25f7cf4475e0bdbc06f7c..594c3782dda47ca1f7d120a48d22f7e4147145c9 100644
--- a/nucleus/controller.go
+++ b/internal/nucleus/controller.go
@@ -1,10 +1,10 @@
 package nucleus
 
 import (
-	"code.fbi.h-da.de/cocsn/gosdn/database"
-	"code.fbi.h-da.de/cocsn/gosdn/log"
-	"code.fbi.h-da.de/cocsn/gosdn/nucleus/interfaces"
-	"code.fbi.h-da.de/cocsn/gosdn/restconf/client/ciena"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/database"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/log"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/nucleus/interfaces"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/restconf/client/ciena"
 	"github.com/BurntSushi/toml"
 	"os"
 )
@@ -74,7 +74,7 @@ func (c *Core) Shutdown() {
 
 func (c *Core) readControllerConfig(configFileController string) error {
 	if configFileController == "" {
-		configFileController = "gosdn.toml"
+		configFileController = "configs/gosdn.toml"
 	}
 	if _, err := os.Stat(configFileController); err != nil {
 		return err
@@ -93,7 +93,7 @@ func (c *Core) readControllerConfig(configFileController string) error {
 
 func (c *Core) readClientConfig(configFileClient string) error {
 	if configFileClient == "" {
-		configFileClient = "clients.toml"
+		configFileClient = "configs/clients.toml"
 	}
 	if _, err := os.Stat(configFileClient); err != nil {
 		return err
diff --git a/nucleus/interfaces/client.go b/internal/nucleus/interfaces/client.go
similarity index 100%
rename from nucleus/interfaces/client.go
rename to internal/nucleus/interfaces/client.go
diff --git a/nucleus/interfaces/clientConfig.go b/internal/nucleus/interfaces/clientConfig.go
similarity index 100%
rename from nucleus/interfaces/clientConfig.go
rename to internal/nucleus/interfaces/clientConfig.go
diff --git a/nucleus/nucleus-core.go b/internal/nucleus/nucleus-core.go
similarity index 81%
rename from nucleus/nucleus-core.go
rename to internal/nucleus/nucleus-core.go
index 0276a4ad80b52fc325373b7c8e551512e2c098f7..4d0839d6eae29d1d3e9e5eb7ae68c02e7ee680d3 100644
--- a/nucleus/nucleus-core.go
+++ b/internal/nucleus/nucleus-core.go
@@ -1,9 +1,9 @@
 package nucleus
 
 import (
-	"code.fbi.h-da.de/cocsn/gosdn/database"
-	"code.fbi.h-da.de/cocsn/gosdn/log"
-	"code.fbi.h-da.de/cocsn/gosdn/nucleus/interfaces"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/database"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/log"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/nucleus/interfaces"
 	"time"
 )
 
diff --git a/restconf/client/ciena/client.go b/internal/restconf/client/ciena/client.go
similarity index 93%
rename from restconf/client/ciena/client.go
rename to internal/restconf/client/ciena/client.go
index 072413d144f5b6db3944cd5984201cf9a02fc3d7..9d7aa3e31be703f97c88781a36802cdc3eb7bf75 100644
--- a/restconf/client/ciena/client.go
+++ b/internal/restconf/client/ciena/client.go
@@ -2,10 +2,10 @@ package ciena
 
 import (
 	"bytes"
-	"code.fbi.h-da.de/cocsn/gosdn/database"
-	"code.fbi.h-da.de/cocsn/gosdn/log"
-	"code.fbi.h-da.de/cocsn/gosdn/nucleus/interfaces"
-	"code.fbi.h-da.de/cocsn/gosdn/restconf/util"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/database"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/log"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/nucleus/interfaces"
+	"code.fbi.h-da.de/cocsn/gosdn/internal/restconf/util"
 	apiclient "code.fbi.h-da.de/cocsn/swagger/apis/mcp/client"
 	"crypto/tls"
 	"github.com/go-openapi/runtime"
diff --git a/restconf/util/unmarshal.go b/internal/restconf/util/unmarshal.go
similarity index 100%
rename from restconf/util/unmarshal.go
rename to internal/restconf/util/unmarshal.go