diff --git a/README.md b/README.md
index 9e9d0078c5724ab06a49ddd4de21b9d6ee0045b4..847575d5d5faea20c882c266c5f62526a09acc04 100644
--- a/README.md
+++ b/README.md
@@ -91,11 +91,27 @@ A simple showcase how the controller can be addressed after
   <p> Detailed view of plugin mechanism</p>
 </div>
 
+### Nucleus
+
 The `goSDN` controllers core - also called `nucleus` - is a lightweight library
 that manages principal network domains and provides southbound interface
 operations for managed network elements.
 
-In addition, we provide a simple Northbound-API (gRPC) for the controller [right here](https://code.fbi.h-da.de/danet/gosdn/-/tree/master/controller/api).
+### Principal Networking Domain (PND)
+
+The PND is the single source of truth within a network. Its state is held and
+maintained by the controller. Any configuration of an MNE has to be applied by
+the PND.
+
+### Managed Network Element (MNE)
+
+Any network element directly configured by `goSDN`
+
+### Northbound Interface (NBI)
+
+The NBI is implemented using gRPC which means one can interact with the controller with any language that supports gRPC when using our own [proto definitions](https://code.fbi.h-da.de/danet/gosdn/-/tree/master/api/proto/gosdn).
+
+In addition, we provide a simple abstraction layer of the Northbound-API to use with the controller in Go [right here](https://code.fbi.h-da.de/danet/gosdn/-/tree/master/controller/api).
 
 To use the API, you can build a login method as is done in the `inventory-manager` in `utils.go`.
 You log in, create a session context with the returned token, then you can simply make API calls with this context.
@@ -120,7 +136,7 @@ func createContextWithAuthorization(sessionToken string) context.Context {
 }
 ```
 
-The code in your app:
+An example on how the code in your app to register a MNE in the controller could look like:
 ```golang
 import "code.fbi.h-da.de/danet/gosdn/controller/api"
 
@@ -130,20 +146,11 @@ ctx := createContextWithAuthorization(sessionToken)
 _, err := api.AddNetworkElement(i.sessionContext, i.controllerAddress, networkElement.Name, networkElement.UUID, &transportOptions, pluginUUID, pndUUID, []string{})
 ```
 
+The gRPC services can also be reached using HTTP requests via the gRPC-Gateway. The fitting OpenAPI definitions can be found [here](https://code.fbi.h-da.de/danet/gosdn/-/tree/master/api/openapiv2?ref_type=heads).
 
-The gRPC services can also be reached using HTTP requests via the gRPC-Gateway. The fitting OpenAPI definitions can be found [here](https://code.fbi.h-da.de/danet/gosdn/-/tree/master/api/openapiv2?ref_type=heads). Note, that this is experimental and tested less well. If you want to use the controller in secure mode which implies it's mandatory to login and provide the received token in other requests via the HTTP header with the key-value pair:
+Note, that this is experimental and tested less well. If you want to use the controller in secure mode it is mandatory to login and provide the received token in other requests via the HTTP header with the key-value pair:
 `"authorize: token"`.
 
-### Principal Networking Domain (PND)
-
-The PND is the single source of truth within a network. Its state is held and
-maintained by the controller. Any configuration of an MNE has to be applied by
-the PND.
-
-### Managed Network Element (MNE)
-
-Any network element directly configured by `goSDN`
-
 ---
 ## Launch goSDN Controller local
 In this chapter, you learn how to launch the goSDN controller.