diff --git a/K8s/interfaces_definitions/vpod1.yaml b/K8s/interfaces_definitions/vpod1.yaml
deleted file mode 100644
index af8a907392691a157e6df25e4413e5d34a9a722c..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod1.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod1
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod1"
-    }'
diff --git a/K8s/interfaces_definitions/vpod10.yaml b/K8s/interfaces_definitions/vpod10.yaml
deleted file mode 100644
index 14ef5f75fd7777b87872fbbafc25fae768364c7e..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod10.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod10
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod10"
-    }'
diff --git a/K8s/interfaces_definitions/vpod2.yaml b/K8s/interfaces_definitions/vpod2.yaml
deleted file mode 100644
index 1aee3a4a7c545aef95d7543a6cf2f27e7ab314a3..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod2.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod2
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod2"
-    }'
diff --git a/K8s/interfaces_definitions/vpod3.yaml b/K8s/interfaces_definitions/vpod3.yaml
deleted file mode 100644
index af8246bcf0ab6b4443bedaec8999cfa9a481fb2b..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod3.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod3
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod3"
-    }'
diff --git a/K8s/interfaces_definitions/vpod4.yaml b/K8s/interfaces_definitions/vpod4.yaml
deleted file mode 100644
index 2fe22d6e2a7094c517ee43c12934e32969333954..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod4.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod4
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod4"
-    }'
diff --git a/K8s/interfaces_definitions/vpod5.yaml b/K8s/interfaces_definitions/vpod5.yaml
deleted file mode 100644
index 2d078669c90914c163b0e10d466a2c3cda1d7fa2..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod5.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod5
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod5"
-    }'
diff --git a/K8s/interfaces_definitions/vpod6.yaml b/K8s/interfaces_definitions/vpod6.yaml
deleted file mode 100644
index 993fd5810138393a4c150edd6d82d17d8c334124..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod6.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod6
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod6"
-    }'
diff --git a/K8s/interfaces_definitions/vpod7.yaml b/K8s/interfaces_definitions/vpod7.yaml
deleted file mode 100644
index 18e4a376e3916813e22ea5015bce7557a0ae767e..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod7.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod7
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod7"
-    }'
diff --git a/K8s/interfaces_definitions/vpod8.yaml b/K8s/interfaces_definitions/vpod8.yaml
deleted file mode 100644
index 152f3315540be4e3cc2ecfbb45a21a39e0ad802b..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod8.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod8
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod8"
-    }'
diff --git a/K8s/interfaces_definitions/vpod9.yaml b/K8s/interfaces_definitions/vpod9.yaml
deleted file mode 100644
index b7459c2fc2c210ccefffc4e89bcf45ce7fc931a4..0000000000000000000000000000000000000000
--- a/K8s/interfaces_definitions/vpod9.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: vpod9
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vpod9"
-    }'
diff --git a/K8s/provision/veth.sh b/K8s/provision/veth.sh
deleted file mode 100755
index 96fe2d97efe3badd02d9d91957fae95622e7d660..0000000000000000000000000000000000000000
--- a/K8s/provision/veth.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-ip link add dev vpod1 mtu 1400 type veth peer name vhost1 mtu 1450
-ip link add dev vpod2 mtu 1400 type veth peer name vhost2 mtu 1450
-ip link add dev vpod3 mtu 1400 type veth peer name vhost3 mtu 1450
-ip link add dev vpod4 mtu 1400 type veth peer name vhost4 mtu 1450
-ip link add dev vpod5 mtu 1400 type veth peer name vhost5 mtu 1450
-ip link add dev vpod6 mtu 1400 type veth peer name vhost6 mtu 1450
-ip link add dev vpod7 mtu 1400 type veth peer name vhost7 mtu 1450
-ip link add dev vpod8 mtu 1400 type veth peer name vhost8 mtu 1450
-ip link add dev vpod9 mtu 1400 type veth peer name vhost9 mtu 1450
-ip link add dev vpod10 mtu 1400 type veth peer name vhost10 mtu 1450
diff --git a/README.md b/README.md
index 3ca71667565ae80193302d3498a3380b15a30c29..5023b98a23b67129dfecb398492dcac30c719b77 100644
--- a/README.md
+++ b/README.md
@@ -9,11 +9,11 @@ L2S-M provides its intended functionalities using a programmable data-plane base
 
 The main K8s interface of pods remains intact (provided by a CNI plugin), retaining the compatibility with all the standard K8s elements (e.g., services, connectivity through the main interface, etc.). Moreover, the solution has the potential to be used for inter-cluster communications to support scenarios where network functions are spread through multiple distributed infrastructures (this is still a work in progress).  
 
-The figure outlines the design of L2S-M. See [how L2S-M works](https://github.com/Networks-it-uc3m/L2S-M/tree/main/K8s) to read further details on the L2S-M solution.
+The figure outlines the design of L2S-M. See [how L2S-M works](https://github.com/Networks-it-uc3m/L2S-M/tree/main/additional-info) to read further details on the L2S-M solution.
 
-If you want to learn how to install L2S-M in your cluster, see the [installation guide](https://github.com/Networks-it-uc3m/L2S-M/tree/main/operator) of this repository to start its installation.
+If you want to learn how to install L2S-M in your cluster, see the [installation guide](https://github.com/Networks-it-uc3m/L2S-M/tree/main/deployments) of this repository to start its installation.
 
-Did you already install the operator and  you cannot wait to start building your own virtual networks in your K8s cluster? Check out our [ping-pong](https://github.com/Networks-it-uc3m/L2S-M/tree/main/descriptors) example!
+Did you already install the operator and  you cannot wait to start building your own virtual networks in your K8s cluster? Check out our [ping-pong](https://github.com/Networks-it-uc3m/L2S-M/tree/main/examples/ping-pong) example!
 
 If you want more information about the original idea of L2S-M and its initial design, you can check our latest publication in the [IEEE Network journal](https://ieeexplore.ieee.org/document/9740640):
 
@@ -34,7 +34,7 @@ The solution can work jointly with L2S-M or be used standalone through the [Mult
 The solution enables the creation and deletion of virtual link-layer networks to connect application workloads running in different virtualization domains. This way, it supports inter-domain link-layer communications among remote workloads.
 
 ### Additional information about L2S-M
-In the [following section](https://github.com/Networks-it-uc3m/L2S-M/tree/main/additional%20info) of the repository, you can find a series of documents and slides that provide additional information about L2S-M, including presentations where our solution has been showcased to the public in various events.
+In the [following section](https://github.com/Networks-it-uc3m/L2S-M/tree/main/additional-info) of the repository, you can find a series of documents and slides that provide additional information about L2S-M, including presentations where our solution has been showcased to the public in various events.
 
 L2S-M has been presented in the following events:
 
diff --git a/additional info/README.md b/additional info/README.md
deleted file mode 100644
index 39f0cb5a05d19c367d587a3b3a2781b6a51ac1a7..0000000000000000000000000000000000000000
--- a/additional info/README.md	
+++ /dev/null
@@ -1 +0,0 @@
-# Additional info for L2S-M
diff --git a/additional info/OSM#13 Plenary Meeting.pdf b/additional-info/OSM#13 Plenary Meeting.pdf
similarity index 100%
rename from additional info/OSM#13 Plenary Meeting.pdf
rename to additional-info/OSM#13 Plenary Meeting.pdf
diff --git a/K8s/README.md b/additional-info/README.md
similarity index 98%
rename from K8s/README.md
rename to additional-info/README.md
index 9221c7ac0ead4b50417719bc91e76820af37b9fd..5ae597e18362e41ec9ae011e079031545c42b977 100644
--- a/K8s/README.md
+++ b/additional-info/README.md
@@ -16,4 +16,4 @@ To provide isolation among virtual networks, the operator interacts with the SDN
 
 **NOTE**: The current version of L2S-M utilizes a simple-switch implementation based on the [RYU](https://ryu.readthedocs.io/en/latest/) SDN controller. An SDN application to specifically support virtual network isolation is currently under implementation.
 
-More information on how to deploy virtualise workloads attached to virtual networks can be seen in the [ping-pong](https://github.com/Networks-it-uc3m/L2S-M/tree/main/descriptors) example.
+More information on how to deploy virtualise workloads attached to virtual networks can be seen in the [ping-pong](https://github.com/Networks-it-uc3m/L2S-M/tree/main/examples/ping-pong) example.
diff --git a/operator/src/controller/Dockerfile b/build/controller/Dockerfile
similarity index 100%
rename from operator/src/controller/Dockerfile
rename to build/controller/Dockerfile
diff --git a/operator/src/controller/l2sm-controller-app-1.0.oar b/build/controller/l2sm-controller-app-1.0.oar
similarity index 79%
rename from operator/src/controller/l2sm-controller-app-1.0.oar
rename to build/controller/l2sm-controller-app-1.0.oar
index bf5c8c35a6e611a10927b02791cbbf7a0c6cf935..9095cb99c82309d3b217c60ed8e60623d6e10b87 100644
Binary files a/operator/src/controller/l2sm-controller-app-1.0.oar and b/build/controller/l2sm-controller-app-1.0.oar differ
diff --git a/operator/src/controller/setup_controller.sh b/build/controller/setup_controller.sh
similarity index 100%
rename from operator/src/controller/setup_controller.sh
rename to build/controller/setup_controller.sh
diff --git a/operator/src/operator/Dockerfile b/build/operator/Dockerfile
similarity index 89%
rename from operator/src/operator/Dockerfile
rename to build/operator/Dockerfile
index 20b735d9f6c5eadee9a69e9142d6b10b0284ca07..e816270762863ac6d4037ca8e2665df36ee42b7d 100644
--- a/operator/src/operator/Dockerfile
+++ b/build/operator/Dockerfile
@@ -1,4 +1,4 @@
-FROM python:3.7
+FROM python:3.11.6
 RUN pip install kopf kubernetes PyMySQL cryptography requests
 COPY l2sm-operator.py /l2sm-operator.py
 CMD kopf run --standalone --all-namespaces /l2sm-operator.py
diff --git a/operator/src/operator/l2sm-operator.py b/build/operator/l2sm-operator.py
similarity index 97%
rename from operator/src/operator/l2sm-operator.py
rename to build/operator/l2sm-operator.py
index b8eef082c26e4ca51e3fcf8043de029b7ffe41fb..782ed0c55cdac57791f1ade1c567eeec813c06ca 100644
--- a/operator/src/operator/l2sm-operator.py
+++ b/build/operator/l2sm-operator.py
@@ -87,7 +87,7 @@ def build_db(body, logger, annotations, **kwargs):
     #MODIFY THE END VALUE TO ADD MORE INTERFACES
     values = []
     for i in range(1,11):
-      values.append(['vpod'+str(i), body['spec']['nodeName'], '-1', ''])
+      values.append(['veth'+str(i), body['spec']['nodeName'], '-1', ''])
     sqlInterfaces = "INSERT INTO interfaces (interface, node, network, pod) VALUES (%s, %s, %s, %s)"
     cur.executemany(sqlInterfaces, values)
     db.commit()
@@ -200,8 +200,7 @@ def pod_vn(body, name, namespace, logger, annotations, **kwargs):
 
     ret.metadata.annotations['k8s.v1.cni.cncf.io/networks'] = ', '.join(multusInt)
 
-    #PATCH NETWORK WITH ANNOTATION
-    v1.patch_namespaced_pod(name, namespace, ret)
+  
 
     #GET NETWORK ID'S
     #for j in items:
@@ -212,13 +211,13 @@ def pod_vn(body, name, namespace, logger, annotations, **kwargs):
     #    networkN = retrieve[0].strip()
     #    break
 
-    switchId = getSwitchId(cur, node)
+    switchId = getSwitchId(cur, node) # TODO: diferenciar caso en el que es un veth el conectado y el de que es una red de vdd.
 
     if switchId is None:
       logger.info(f"The l2sm switch is not connected to controller. Not connecting the pod")
       return
-    vpodPattern = re.compile(r'\d+$')
-    portNumbers = [int(vpodPattern.search(interface).group()) for interface in interface_to_attach]
+    vethPattern = re.compile(r'\d+$')
+    portNumbers = [int(vethPattern.search(interface).group()) for interface in interface_to_attach]
 
     for m in range(len(network)):
       sql = "UPDATE interfaces SET network = '%s', pod = '%s' WHERE interface = '%s' AND node = '%s'" % (network_array[m], name, interface_to_attach[m], node)
@@ -233,7 +232,8 @@ def pod_vn(body, name, namespace, logger, annotations, **kwargs):
       
       response = session.post(baseControllerUrl + '/l2sm/networks/port', json=payload)
 
-
+    #PATCH NETWORK WITH ANNOTATION
+    v1.patch_namespaced_pod(name, namespace, ret)
 
     db.commit()
     db.close()
diff --git a/operator/src/switch/Dockerfile b/build/switch/Dockerfile
similarity index 100%
rename from operator/src/switch/Dockerfile
rename to build/switch/Dockerfile
diff --git a/operator/src/switch/go.mod b/build/switch/go.mod
similarity index 100%
rename from operator/src/switch/go.mod
rename to build/switch/go.mod
diff --git a/operator/src/switch/main.go b/build/switch/main.go
similarity index 89%
rename from operator/src/switch/main.go
rename to build/switch/main.go
index c999b42345351ad68b3d45833071b5caaa3320da..aec906af66b9a0b9be1fbfbd1fc0c7e3e53957c4 100644
--- a/operator/src/switch/main.go
+++ b/build/switch/main.go
@@ -23,7 +23,7 @@ type Node struct {
 // the second one is the path to the configuration file, in reference to the code.
 func main() {
 
-	configDir, vhostNumber, nodeName, controllerIP, err := takeArguments()
+	configDir, vethNumber, nodeName, controllerIP, err := takeArguments()
 
 	if err != nil {
 		fmt.Println("Error with the arguments. Error:", err)
@@ -41,13 +41,13 @@ func main() {
 	fmt.Println("Switch initialized and connected to the controller.")
 
 	// Set all virtual interfaces up, and connect them to the tunnel bridge:
-	for i := 1; i <= vhostNumber; i++ {
-		vhost := fmt.Sprintf("vhost%d", i)
-		cmd := exec.Command("ip", "link", "set", vhost, "up") // i.e: ip link set vhost1 up
+	for i := 1; i <= vethNumber; i++ {
+		veth := fmt.Sprintf("net%d", i)
+		cmd := exec.Command("ip", "link", "set", veth, "up") // i.e: ip link set veth1 up
 		if err := cmd.Run(); err != nil {
 			fmt.Println("Error:", err)
 		}
-		exec.Command("ovs-vsctl", "add-port", "brtun", vhost).Run() // i.e: ovs-vsctl add-port brtun vhost1
+		exec.Command("ovs-vsctl", "add-port", "brtun", veth).Run() // i.e: ovs-vsctl add-port brtun veth1
 	}
 
 	err = createVxlans(configDir, nodeName)
@@ -61,7 +61,7 @@ func main() {
 func takeArguments() (string, int, string, string, error) {
 	configDir := os.Args[len(os.Args)-1]
 
-	vhostNumber := flag.Int("n_vpods", 0, "number of pod interfaces that are going to be attached to the switch")
+	vethNumber := flag.Int("n_veths", 0, "number of pod interfaces that are going to be attached to the switch")
 	nodeName := flag.String("node_name", "", "name of the node the script is executed in. Required.")
 	controllerIP := flag.String("controller_ip", "", "ip where the SDN controller is listening using the OpenFlow13 protocol. Required")
 
@@ -76,7 +76,7 @@ func takeArguments() (string, int, string, string, error) {
 		return "", 0, "", "", errors.New("Controller IP is not defined")
 	}
 
-	return configDir, *vhostNumber, *nodeName, *controllerIP, nil
+	return configDir, *vethNumber, *nodeName, *controllerIP, nil
 }
 
 func initializeSwitch(controllerIP string) error {
diff --git a/operator/src/switch/setup_switch.sh b/build/switch/setup_switch.sh
similarity index 85%
rename from operator/src/switch/setup_switch.sh
rename to build/switch/setup_switch.sh
index c0c43324b489c973451d208ea021296b0c08f362..996e62f37e85ad0926e1281047fb864ab6eb2599 100644
--- a/operator/src/switch/setup_switch.sh
+++ b/build/switch/setup_switch.sh
@@ -6,4 +6,4 @@ ovs-vsctl --db=unix:/var/run/openvswitch/db.sock --no-wait init
 
 ovs-vswitchd --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach 
 
-l2sm-br --n_vpods=$NVPODS --node_name=$NODENAME --controller_ip=$CONTROLLERIP /etc/l2sm/switchConfig.json
+l2sm-br --n_veths=$NVETHS --node_name=$NODENAME --controller_ip=$CONTROLLERIP /etc/l2sm/switchConfig.json
diff --git a/operator/src/switch/vswitch.ovsschema b/build/switch/vswitch.ovsschema
similarity index 100%
rename from operator/src/switch/vswitch.ovsschema
rename to build/switch/vswitch.ovsschema
diff --git a/operator/src/switch/sampleFile.json b/configs/sampleFile.json
similarity index 100%
rename from operator/src/switch/sampleFile.json
rename to configs/sampleFile.json
diff --git a/operator/README.md b/deployments/README.md
similarity index 68%
rename from operator/README.md
rename to deployments/README.md
index 0e410bc6864c66d7d6a7943abbbfd4fc8d75866d..d178245a186ba603ee0a545de0bb104de334b020 100644
--- a/operator/README.md
+++ b/deployments/README.md
@@ -6,33 +6,11 @@ This guide details the necessary steps to install the L2S-M Kubernetes operator
 
 1. Clone the L2S-M repository in your host. This guide will assume that all commands are executed within the L2S-M directory.
 
-2. As a prerequisite to start with the installation of L2S-M, it is necessary to set up an IP tunnel overlay among the nodes of your k8s cluster (see  [how L2S works](https://github.com/Networks-it-uc3m/L2S-M/tree/main/K8s). To do so, **the installation needs 10 vEth pairs in order to support the attachment of pods to virtual networks.**
+2. Install the Multus CNI Plugin in your K8s cluster. For more information on how to install Multus in your cluster, check their [official GitHub repository](https://github.com/k8snetworkplumbingwg/multus-cni).
 
-    This repository contains a script to generate all the necessary interfaces with their respective names. (this is the **recommended option**).
+3. The host-device CNI plugin must be able to be used in your cluster. If it is not present in your K8s distribution, you can find how to install it in your K8s cluster in their [official GitHub repository](https://github.com/containernetworking/plugins).
 
-    You can create all the vEth interfaces with the provided script using the following command:
-
-    ```bash
-    sudo sh ./K8s/provision/veth.sh 
-    ```
-
-    **IMPORTANT** In order to keep the configuration after the host has been rebooted, a cron job should be written in order to use this script to create and configure the virtual interfaces. To enable its use, open (or create) a new crontab in the host:
-
-    ```bash
-    sudo crontab -e 
-    ```
-
-    Once opened, append the following line at the end of the file:
-
-    ```bash
-    @reboot sh [directory-where-L2S-M-is-located]/L2S-M/K8s/provision/veth.sh
-    ```
-
-3. Install the Multus CNI Plugin in your K8s cluster. For more information on how to install Multus in your cluster, check their [official GitHub repository](https://github.com/k8snetworkplumbingwg/multus-cni).
-
-4. The host-device CNI plugin must be able to be used in your cluster. If it is not present in your K8s distribution, you can find how to install it in your K8s cluster in their [official GitHub repository](https://github.com/containernetworking/plugins).
-
-5. Your K8s Controller node must be able to deploy K8s pods for the operator to work. Remove its master and control-plane taints using the following command:
+4. Your K8s Control-Plane node must be able to deploy K8s pods for the operator to work. Remove its master and control-plane taints using the following command:
 ```bash
 kubectl taint nodes --all node-role.kubernetes.io/control-plane- node-role.kubernetes.io/master-
 ```
@@ -42,35 +20,17 @@ kubectl taint nodes --all node-role.kubernetes.io/control-plane- node-role.kuber
 
 1. Create the virtual interface definitions using the following command:
  ```bash
-kubectl create -f ./K8s/interfaces_definitions
+kubectl create -f ./deployments/custom-installation/interfaces_definitions
 ```
 
-**NOTE:** If you are using interfaces whose definitions are not present in the virtual interfaces definitions in the folder, you must create the corresponding virtual definition in the same fashion as the VXLANs. For example, if you want to use a VPN interface called "tun0", first write the descriptor "tun0.yaml":
-
- ```yaml
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-name: tun0
-spec:
-config: '{
-"cniVersion": "0.3.0",
-"type": "host-device",
-"device": "tun0"
-}'
-```
-Afterwards, apply the new interface definitions using kubectl:
-  ```bash
-kubectl create -f tun0.yaml
-```
 2. Create the Kubernetes account Service Account and apply their configuration by applying the following command:
  ```bash
-kubectl create -f ./operator/deploy/config/
+kubectl create -f ./deployments/config/
 ```
 
 3. Create the Kubernetes Persistent Volume by using the following kubectl command:
  ```bash
-kubectl create -f ./operator/deploy/mysql/
+kubectl create -f ./deployments/custom-installation/mysql/
 ```
 
 4. Before deploying the L2S-M operator, it is neccessary to label your master node as the "master" of the cluster. To do so, get the names of your Kubernetes nodes, select the master and apply the "master" label with the following command:
@@ -82,13 +42,13 @@ kubectl label nodes [your-master-node] dedicated=master
 5. Deploy the L2S-M Controller by using the following command: 
 
 ```bash
-kubectl create -f ./operator/deploy/controller/
+kubectl create -f ./deployments/custom-installation/deployController.yaml
 ```
  You can check that the deployment was successful if the pod enters the "running" state using the *kubectl get pods* command.
 
 6. After the previous preparation, (make sure the controller is running) you can deploy the operator in your cluster using the YAML deployment file:
  ```bash
-kubectl create -f ./operator/deploy/deployOperator.yaml
+kubectl create -f ./deployments/custom-installation/deployOperator.yaml
 ```
 
 Once these two pods are in running state, you can finally deploy the virtual switches
@@ -97,7 +57,7 @@ Once these two pods are in running state, you can finally deploy the virtual swi
 
 **First deploying the virtual OVS Daemonset:**
 ```bash
-kubectl create -f ./operator/daemonset
+kubectl create -f ./deployments/custom-installation/deploySwitch.yaml
 ```
 
 And check there is a pod running in each node, with ```kubectl get pods -o wide```
@@ -106,7 +66,7 @@ And check there is a pod running in each node, with ```kubectl get pods -o wide`
 
 In order to connect the switches between themselves, an additional configuarion must be done. A configuration file specifying which nodes we want to connect and which IP addresses their switches have will be made, and then a script will be run in each l2sm switch, using this configuration file. 
 
-  a. Create a file anywhere or use the reference in ./operator/src/switch/sampleFile.json. In this installation, this file will be used as a reference.
+  a. Create a file anywhere or use the reference in ./configs/sampleFile.json. In this installation, this file will be used as a reference.
   b. In this file, you will specify, using the template shown in the reference file, the name of the nodes in the cluster and the IP addresses of **the switches** running on them. For example:
   ```bash
   $ kubectl get pods -o wide
@@ -119,7 +79,7 @@ In order to connect the switches between themselves, an additional configuarion
   ```
   In this example we have two nodes: l2sm1 and l2sm2, with two switches, with IP addresses 10.1.14.58 and 10.1.72.111.
   
-  We want to connect them directly, so we modify the reference file, ./operator/src/switch/sampleFile.json:
+  We want to connect them directly, so we modify the reference file, ./configs/sampleFile.json:
 ```json
 [
     {
@@ -158,7 +118,7 @@ Note: Any number of nodes can be configured, as long as the entry is in this fil
 Once this file is created, we inject it to each node using the kubectl cp command:
 
 ```bash
-kubectl cp ./operator/src/switch/sampleFile.json <pod-name>:/etc/l2sm/switchConfig.json 
+kubectl cp ./configs/sampleFile.json <pod-name>:/etc/l2sm/switchConfig.json 
 ```
 And then executing the script in the switch-pod:
 ```bash
@@ -181,4 +141,4 @@ Created vxlan between node l2sm2 and node l2sm1.
 ```
 
 
-You are all set! If you want to learn how to create virtual networks and use them in your applications, [check the following section of the repository](https://github.com/Networks-it-uc3m/L2S-M/tree/main/descriptors)
+You are all set! If you want to learn how to create virtual networks and use them in your applications, [check the following section of the repository](https://github.com/Networks-it-uc3m/L2S-M/tree/release-2.0/examples/)
diff --git a/operator/deploy/config/account.yaml b/deployments/config/account.yaml
similarity index 100%
rename from operator/deploy/config/account.yaml
rename to deployments/config/account.yaml
diff --git a/operator/deploy/config/binding.yaml b/deployments/config/binding.yaml
similarity index 100%
rename from operator/deploy/config/binding.yaml
rename to deployments/config/binding.yaml
diff --git a/operator/deploy/controller/deployController.yaml b/deployments/custom-installation/deployController.yaml
similarity index 78%
rename from operator/deploy/controller/deployController.yaml
rename to deployments/custom-installation/deployController.yaml
index 9ee11157ec45e92bb2952cd1c56f92e153f14a7d..6a4277679bd389251648397d7162b08b77724d49 100644
--- a/operator/deploy/controller/deployController.yaml
+++ b/deployments/custom-installation/deployController.yaml
@@ -14,7 +14,11 @@ spec:
     spec:
       containers:
       - name: l2sm-controller
-        image: alexdecb/l2sm-controller:2.0
+        image: alexdecb/l2sm-controller:latest
+        # readinessProbe:
+        #   httpGet:
+        #     path: /onos/v1/l2sm/networks/status   
+        #     port: 8181   
         ports:
         - containerPort: 6633
         - containerPort: 8181
diff --git a/operator/deploy/deployOperator.yaml b/deployments/custom-installation/deployOperator.yaml
similarity index 96%
rename from operator/deploy/deployOperator.yaml
rename to deployments/custom-installation/deployOperator.yaml
index 32cfa2de6e4bf5f44409f74aa1ce8ea21cf658c1..f88b81f497015405513c5278b4cb3130275a8440 100644
--- a/operator/deploy/deployOperator.yaml
+++ b/deployments/custom-installation/deployOperator.yaml
@@ -16,7 +16,7 @@ spec:
     spec:
       serviceAccountName: l2sm-operator
       containers:
-      - image: alexdecb/l2sm-operator:2.0
+      - image: alexdecb/l2sm-operator:2.1
         name: l2sm-opt-pod
         env:
           - name: CONTROLLER_IP
diff --git a/operator/daemonset/l2sm-switch-amd64.yaml b/deployments/custom-installation/deploySwitch.yaml
similarity index 77%
rename from operator/daemonset/l2sm-switch-amd64.yaml
rename to deployments/custom-installation/deploySwitch.yaml
index 7643c01143b7c8d58c275ecb509d641168e41cdd..039dad11f064ee529e06ef48c9ce81ffc1777f84 100644
--- a/operator/daemonset/l2sm-switch-amd64.yaml
+++ b/deployments/custom-installation/deploySwitch.yaml
@@ -14,7 +14,7 @@ spec:
       labels:
         l2sm-component: l2sm-switch
       annotations:
-        k8s.v1.cni.cncf.io/networks: vhost1@vhost1, vhost2@vhost2, vhost3@vhost3, vhost4@vhost4, vhost5@vhost5, vhost6@vhost6, vhost7@vhost7, vhost8@vhost8, vhost9@vhost9, vhost10@vhost10
+        k8s.v1.cni.cncf.io/networks: veth1, veth2, veth3, veth4, veth5, veth6, veth7, veth8, veth9, veth10
     spec:
       tolerations:
       # this toleration is to have the daemonset runnable on master nodes
@@ -24,21 +24,21 @@ spec:
         effect: NoSchedule
       containers:
       - name: l2sm-switch
-        image: alexdecb/l2sm-switch:2.0
+        image: alexdecb/l2sm-switch:2.1
         command: ["sleep","infinity"]
+        #args: ["setup_switch.sh && sleep infinity"]
         env:
         - name: NODENAME
           valueFrom:
             fieldRef:
               fieldPath: spec.nodeName
-        - name: NVPODS
+        - name: NVETHS
           value: "10"  
         - name: CONTROLLERIP
           value: "l2sm-controller-service"
-
-        imagePullPolicy: Always
         securityContext:
           capabilities:
             add: ["NET_ADMIN"]
       nodeSelector:
         kubernetes.io/arch: amd64
+
diff --git a/K8s/interfaces_definitions/vhost1.yaml b/deployments/custom-installation/interfaces_definitions/vhost1.yaml
similarity index 56%
rename from K8s/interfaces_definitions/vhost1.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost1.yaml
index 22675e54fafbe46d4e16be4b2ed28ceec9001d39..5eed80277d2e17060a7eca49df5c16c5a65f10ea 100644
--- a/K8s/interfaces_definitions/vhost1.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost1.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost1
+  name: veth1
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost1"
+      "type": "bridge",
+      "bridge": "br1",
+      "mtu": 1400,
+      "device": "veth1"
     }'
diff --git a/K8s/interfaces_definitions/vhost10.yaml b/deployments/custom-installation/interfaces_definitions/vhost10.yaml
similarity index 55%
rename from K8s/interfaces_definitions/vhost10.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost10.yaml
index 1808449ca8c6e6c970c61852c8f259a091b48d9c..db850d1e3521c9def537de543f938859863faddb 100644
--- a/K8s/interfaces_definitions/vhost10.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost10.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost10
+  name: veth10
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost10"
+      "type": "bridge",
+      "bridge": "br10",
+      "mtu": 1400,
+      "device": "veth10"
     }'
diff --git a/K8s/interfaces_definitions/vhost2.yaml b/deployments/custom-installation/interfaces_definitions/vhost2.yaml
similarity index 56%
rename from K8s/interfaces_definitions/vhost2.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost2.yaml
index b155818d1a53c65ec41973b1264f49055e3e68e5..ebee425eab8d2688deb262d400a7c0a8a7534ec4 100644
--- a/K8s/interfaces_definitions/vhost2.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost2.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost2
+  name: veth2
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost2"
+      "type": "bridge",
+      "bridge": "br2",
+      "mtu": 1400,
+      "device": "veth2"
     }'
diff --git a/K8s/interfaces_definitions/vhost3.yaml b/deployments/custom-installation/interfaces_definitions/vhost3.yaml
similarity index 56%
rename from K8s/interfaces_definitions/vhost3.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost3.yaml
index 64e3fad24e78ee58cb6aa00c8a6c7d2203979126..984a57469a4e688885fe059edd4c8e4e7f170260 100644
--- a/K8s/interfaces_definitions/vhost3.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost3.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost3
+  name: veth3
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost3"
+      "type": "bridge",
+      "bridge": "br3",
+      "mtu": 1400,
+      "device": "veth3"
     }'
diff --git a/K8s/interfaces_definitions/vhost4.yaml b/deployments/custom-installation/interfaces_definitions/vhost4.yaml
similarity index 56%
rename from K8s/interfaces_definitions/vhost4.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost4.yaml
index 618369f46aecfacd7e10735a145cf48ff2b35738..be25ebf2cfabc4eeaa689e05c117997ff883de6f 100644
--- a/K8s/interfaces_definitions/vhost4.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost4.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost4
+  name: veth4
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost4"
+      "type": "bridge",
+      "bridge": "br4",
+      "mtu": 1400,
+      "device": "veth4"
     }'
diff --git a/K8s/interfaces_definitions/vhost5.yaml b/deployments/custom-installation/interfaces_definitions/vhost5.yaml
similarity index 56%
rename from K8s/interfaces_definitions/vhost5.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost5.yaml
index d1adb864f6f50f8468f23aed8afa0d524d8b1f0d..9742122420bcf635a91e478ccb578b2814bdd3e6 100644
--- a/K8s/interfaces_definitions/vhost5.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost5.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost5
+  name: veth5
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost5"
+      "type": "bridge",
+      "bridge": "br5",
+      "mtu": 1400,
+      "device": "veth5"
     }'
diff --git a/K8s/interfaces_definitions/vhost6.yaml b/deployments/custom-installation/interfaces_definitions/vhost6.yaml
similarity index 56%
rename from K8s/interfaces_definitions/vhost6.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost6.yaml
index 51ea0fd57575fa623445a973afba73d609267bc1..86012451b57ea4510865b89233c1ae49c2148c82 100644
--- a/K8s/interfaces_definitions/vhost6.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost6.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost6
+  name: veth6
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost6"
+      "type": "bridge",
+      "bridge": "br6",
+      "mtu": 1400,
+      "device": "veth6"
     }'
diff --git a/K8s/interfaces_definitions/vhost7.yaml b/deployments/custom-installation/interfaces_definitions/vhost7.yaml
similarity index 56%
rename from K8s/interfaces_definitions/vhost7.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost7.yaml
index 12abac872700306ea83acb3f109fe567570a813e..c6cdd78a69e830449a07e477b434f7af4ce75bb6 100644
--- a/K8s/interfaces_definitions/vhost7.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost7.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost7
+  name: veth7
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost7"
+      "type": "bridge",
+      "bridge": "br7",
+      "mtu": 1400,
+      "device": "veth7"
     }'
diff --git a/K8s/interfaces_definitions/vhost8.yaml b/deployments/custom-installation/interfaces_definitions/vhost8.yaml
similarity index 56%
rename from K8s/interfaces_definitions/vhost8.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost8.yaml
index 13df98013386c22123119611a1ba4859dcde5c32..e3b478dd85bef2539de7e684143768e5e49a6ecb 100644
--- a/K8s/interfaces_definitions/vhost8.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost8.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost8
+  name: veth8
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost8"
+      "type": "bridge",
+      "bridge": "br8",
+      "mtu": 1400,
+      "device": "veth8"
     }'
diff --git a/K8s/interfaces_definitions/vhost9.yaml b/deployments/custom-installation/interfaces_definitions/vhost9.yaml
similarity index 56%
rename from K8s/interfaces_definitions/vhost9.yaml
rename to deployments/custom-installation/interfaces_definitions/vhost9.yaml
index 0ea4af0595782f01cd3e837896fa169d2fd14a8d..5b68835638e705195e1f528cc00fe8e3bcdce8cf 100644
--- a/K8s/interfaces_definitions/vhost9.yaml
+++ b/deployments/custom-installation/interfaces_definitions/vhost9.yaml
@@ -2,10 +2,12 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: vhost9
+  name: veth9
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "vhost9"
+      "type": "bridge",
+      "bridge": "br9",
+      "mtu": 1400,
+      "device": "veth9"
     }'
diff --git a/operator/deploy/mysql/mysql-pv.yaml b/deployments/custom-installation/mysql/mysql-pv.yaml
similarity index 100%
rename from operator/deploy/mysql/mysql-pv.yaml
rename to deployments/custom-installation/mysql/mysql-pv.yaml
diff --git a/operator/deploy/mysql/mysql-pvc.yaml b/deployments/custom-installation/mysql/mysql-pvc.yaml
similarity index 100%
rename from operator/deploy/mysql/mysql-pvc.yaml
rename to deployments/custom-installation/mysql/mysql-pvc.yaml
diff --git a/deployments/l2sm-deployment.yaml b/deployments/l2sm-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5f6950b73879a9750de5a462e4ac45fea8ae0a9e
--- /dev/null
+++ b/deployments/l2sm-deployment.yaml
@@ -0,0 +1,318 @@
+
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth1
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br1",
+      "mtu": 1400,
+      "device": "veth1"
+    }'
+---
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth2
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br2",
+      "mtu": 1400,
+      "device": "veth2"
+    }'
+---
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth3
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br3",
+      "mtu": 1400,
+      "device": "veth3"
+    }'
+---
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth4
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br4",
+      "mtu": 1400,
+      "device": "veth4"
+    }'
+---
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth5
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br5",
+      "mtu": 1400,
+      "device": "veth5"
+    }'
+---
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth6
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br6",
+      "mtu": 1400,
+      "device": "veth6"
+    }'
+---
+
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth7
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br7",
+      "mtu": 1400,
+      "device": "veth7"
+    }'
+---
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth8
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br8",
+      "mtu": 1400,
+      "device": "veth8"
+    }'
+---
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth9
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br9",
+      "mtu": 1400,
+      "device": "veth9"
+    }'
+---
+apiVersion: "k8s.cni.cncf.io/v1"
+kind: NetworkAttachmentDefinition
+metadata:
+  name: veth10
+spec:
+  config: '{
+      "cniVersion": "0.3.0",
+      "type": "bridge",
+      "bridge": "br10",
+      "mtu": 1400,
+      "device": "veth10"
+    }'
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: l2sm-operator
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+  name: l2sm-operator
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: cluster-admin
+subjects:
+  - kind: ServiceAccount
+    name: l2sm-operator
+    namespace: default
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: mysql-pv
+  labels:
+    type: local
+spec:
+  storageClassName: manual
+  capacity:
+    storage: 2Gi
+  accessModes:
+    - ReadWriteOnce
+  hostPath:
+    path: "/mnt/data"
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: mysql-pv-claim
+spec:
+  storageClassName: manual
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 2Gi
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: l2sm-controller
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: l2sm-controller
+  template:
+    metadata:
+      labels:
+        app: l2sm-controller
+    spec:
+      containers:
+      - name: l2sm-controller
+        image: alexdecb/l2sm-controller:latest
+        # readinessProbe:
+        #   httpGet:
+        #     path: /onos/v1/l2sm/networks/status   
+        #     port: 8181   
+        ports:
+        - containerPort: 6633
+        - containerPort: 8181
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: l2sm-controller-service
+spec:
+  selector:
+    app: l2sm-controller
+  ports:
+  - name: of13-port
+    protocol: TCP
+    port: 6633
+    targetPort: 6633
+  - name: http-port
+    protocol: TCP
+    port: 8181
+    targetPort: 8181
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: l2sm-operator
+spec:
+  replicas: 1
+  strategy:
+    type: Recreate
+  selector:
+    matchLabels:
+      l2sm-component: l2sm-opt
+  template:
+    metadata:
+      labels:
+        l2sm-component: l2sm-opt
+    spec:
+      serviceAccountName: l2sm-operator
+      containers:
+      - image: alexdecb/l2sm-operator:2.1
+        name: l2sm-opt-pod
+        env:
+          - name: CONTROLLER_IP
+            value: l2sm-controller-service
+        #command: ["sleep","infinity"]
+      - image: mysql/mysql-server:5.7
+        name: mysql
+        env:
+          - name: MYSQL_ROOT_PASSWORD
+            value: password
+          - name: MYSQL_DATABASE
+            value: L2SM
+          - name: MYSQL_USER
+            value: l2sm
+          - name: MYSQL_PASSWORD
+            value: l2sm;
+        ports:
+          - containerPort: 3306
+            name: mysql
+        volumeMounts:
+          - name: mysql-persistent-storage
+            mountPath: /var/lib/mysql
+      volumes:
+        - name: mysql-persistent-storage
+          persistentVolumeClaim:
+            claimName: mysql-pv-claim
+      nodeSelector:
+        dedicated: master
+      tolerations:
+      - key: dedicated
+        operator: Equal
+        value: master
+        effect: NoSchedule
+---
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+  name: l2sm-switch
+  #namespace: kube-system
+  labels:
+    l2sm-component: l2sm-switch
+spec:
+  selector:
+    matchLabels:
+      l2sm-component: l2sm-switch
+  template:
+    metadata:
+      labels:
+        l2sm-component: l2sm-switch
+      annotations:
+        k8s.v1.cni.cncf.io/networks: veth1, veth2, veth3, veth4, veth5, veth6, veth7, veth8, veth9, veth10
+    spec:
+      tolerations:
+      # this toleration is to have the daemonset runnable on master nodes
+      # remove it if your masters can't run pods
+      - key: node-role.kubernetes.io/master
+        operator: Exists
+        effect: NoSchedule
+      containers:
+      - name: l2sm-switch
+        image: alexdecb/l2sm-switch:2.1
+        command: ["/bin/sh","-c"]
+        args: ["setup_switch.sh && sleep infinity"]
+        env:
+        - name: NODENAME
+          valueFrom:
+            fieldRef:
+              fieldPath: spec.nodeName
+        - name: NVETHS
+          value: "10"  
+        - name: CONTROLLERIP
+          value: "l2sm-controller-service"
+        securityContext:
+          capabilities:
+            add: ["NET_ADMIN"]
+      nodeSelector:
+        kubernetes.io/arch: amd64
+
+
diff --git a/descriptors/networks/mysecondnetwork.yaml b/descriptors/networks/mysecondnetwork.yaml
deleted file mode 100644
index 948b050fbe561c666807299a153830884df8b628..0000000000000000000000000000000000000000
--- a/descriptors/networks/mysecondnetwork.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-apiVersion: "k8s.cni.cncf.io/v1"
-kind: NetworkAttachmentDefinition
-metadata:
-  name: my-second-network
-spec:
-  config: '{
-      "cniVersion": "0.3.0",
-      "type": "host-device",
-      "device": "l2sm-vNet"
-    }'
diff --git a/descriptors/README.md b/examples/README.md
similarity index 84%
rename from descriptors/README.md
rename to examples/README.md
index d16006a39c8d79181ff789a62c59e5b826de0eca..7ba37940cbbfab9796bfb8a4fd8090e108fff174 100644
--- a/descriptors/README.md
+++ b/examples/README.md
@@ -1,23 +1,23 @@
 # L2S-M Ping Pong example
 This section of L2S-M documentation provides an example that you can use in order to learn how to create virtual networks and attach pods to them. To do so, we are going to deploy a simple ping-pong application, where we will deploy two pods attached to a virtual network and test their connectivity.
 
-All the necessary descriptors can be found in the *'./descriptors'* directory of this repository.
+All the necessary descriptors can be found in the *'./examples/ping-pong/'* directory of this repository.
 
 This guide will assume that all commands are executed within the L2S-M directory.
 
 ### Creating our first virtual network
 
-First of all, let's see the details of an L2S-M virtual network. This is the descriptor corresponding to the virtual network that will be used in this example: my-first-network
+First of all, let's see the details of an L2S-M virtual network. This is the descriptor corresponding to the virtual network that will be used in this example: ping-network
 
 ```yaml
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: my-first-network
+  name: ping-network
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
+      "type": "dummy",
       "device": "l2sm-vNet"
     }'
 ```
@@ -28,7 +28,7 @@ As you can see, L2S-M virtual networks are a [NetworkAttachmentDefinition](https
 To create the virtual network in your cluster, use the appropriate *kubectl* command as if you were building any other K8s resource:
 
 ```bash
-kubectl create -f ./descriptors/networks/myfirstnetwork.yaml
+kubectl create -f ./examples/ping-pong/network.yaml
 ```
 
 Et voilá! You have successfully created your first virtual network in your K8s cluster.
@@ -37,22 +37,23 @@ Et voilá! You have successfully created your first virtual network in your K8s
 
 After creating our first virtual network, it is time to attach some pods to it. To do so, it is as simple as adding an annotation to your deployment/pod file, just like you would do when attaching into a multus NetworkAttachmentDefinition. 
 
-For example, to add one deployment to my-first-network, enter the following annotation in your descriptor in its metadata:
+For example, to add one deployment to ping-network, enter the following annotation in your descriptor in its metadata:
 
 ```yaml
 annotations:
-  k8s.v1.cni.cncf.io/networks: my-first-network
+  k8s.v1.cni.cncf.io/networks: ping-network
 ```
 
 If you want to add your own Multus annotations, you are free to do so! L2S-M will not interfere with the standard Multus behavior, so feel free to add your additional annotations if you need them.
 
-To assist you with the deployment of your first application with L2S-M, you can use the deployments available in this repository. To deploy both "ping-pong" pods (which are simple Ubuntu alpine containers), use the following command:
+To assist you with the deployment of your first application with L2S-M, you can use the pod definitions available in this repository. To deploy both "ping-pong" pods (which are simple Ubuntu alpine containers), use the following commands:
 
 ```bash
-kubectl create -f ./descriptors/deployments/
+kubectl create -f ./examples/ping-pong/ping.yaml
+kubectl create -f ./examples/ping-pong/pong.yaml
 ```
 
-After a bit of time, check that both deployments were successfully instantiated in your cluster.
+After a bit of time, check that both pods were successfully instantiated in your cluster.
 
 ### Testing the connectivity
 
@@ -109,7 +110,7 @@ ping 192.168.12.1 -I eth0
 If you are tired of experimenting with the app, you can proceed to delete both deployments from the cluster:
 
 ```bash
-kubectl delete deploy/ping-l2sm
-kubectl delete deploy/pong-l2sm
+kubectl delete ping
+kubectl delete pong
 ```
 
diff --git a/descriptors/networks/myfirstnetwork.yaml b/examples/ping-pong/network.yaml
similarity index 74%
rename from descriptors/networks/myfirstnetwork.yaml
rename to examples/ping-pong/network.yaml
index 484df5a8ea9a1a784e598c311eda30e4b4135cfa..ccfdf50885531cbf1958a51d8c66772625cc0cb1 100644
--- a/descriptors/networks/myfirstnetwork.yaml
+++ b/examples/ping-pong/network.yaml
@@ -1,10 +1,10 @@
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
-  name: my-first-network
+  name: ping-network
 spec:
   config: '{
       "cniVersion": "0.3.0",
-      "type": "host-device",
+      "type": "dummy",
       "device": "l2sm-vNet"
     }'
diff --git a/descriptors/deployments/ping.yaml b/examples/ping-pong/ping.yaml
similarity index 79%
rename from descriptors/deployments/ping.yaml
rename to examples/ping-pong/ping.yaml
index c03b0d2696a585e0d58682d3f402776af63d223b..dc86712d2c5b12c9d86b733c8720307565f0dbf3 100644
--- a/descriptors/deployments/ping.yaml
+++ b/examples/ping-pong/ping.yaml
@@ -3,9 +3,9 @@ kind: Pod
 metadata:
   name: ping
   labels:
-    app: test2
+    app: ping-pong
   annotations:
-    k8s.v1.cni.cncf.io/networks: first-network
+    k8s.v1.cni.cncf.io/networks: ping-network
 spec:
   containers:
   - name: router
@@ -15,4 +15,4 @@ spec:
       capabilities:
         add: ["NET_ADMIN"]
   # Use this parameter if you want to place the pod in a specific node
-  nodeName: l2sm1
+  #nodeName: masterk8s
diff --git a/descriptors/deployments/pong.yaml b/examples/ping-pong/pong.yaml
similarity index 79%
rename from descriptors/deployments/pong.yaml
rename to examples/ping-pong/pong.yaml
index 7a62409855e2d67b1a02f627f327bde17386a63f..e9fa4abe7ca6f279f04c7bda03b4728149f73dff 100644
--- a/descriptors/deployments/pong.yaml
+++ b/examples/ping-pong/pong.yaml
@@ -3,9 +3,9 @@ kind: Pod
 metadata:
   name: pong
   labels:
-    app: test2
+    app: ping-pong
   annotations:
-    k8s.v1.cni.cncf.io/networks: first-network
+    k8s.v1.cni.cncf.io/networks: ping-network
 spec:
   containers:
   - name: router
@@ -15,4 +15,4 @@ spec:
       capabilities:
         add: ["NET_ADMIN"]
   # Use this parameter if you want to place the pod in a specific node
-  nodeName: l2sm2
+  #nodeName: workerk8s
diff --git a/operator/daemonset/l2sm-switch-arm64.yaml b/operator/daemonset/l2sm-switch-arm64.yaml
deleted file mode 100644
index 537a64b7205ad660f4eeb8747cc029526e6ddf3e..0000000000000000000000000000000000000000
--- a/operator/daemonset/l2sm-switch-arm64.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-apiVersion: apps/v1
-kind: DaemonSet
-metadata:
-  name: l2-ps-arm64
-  #namespace: kube-system
-  labels:
-    l2sm-component: l2-ps
-spec:
-  selector:
-    matchLabels:
-      l2sm-component: l2-ps
-  template:
-    metadata:
-      labels:
-        l2sm-component: l2-ps
-      annotations:
-        k8s.v1.cni.cncf.io/networks: vhost1@vhost1, vhost2@vhost2, vhost3@vhost3, vhost4@vhost4, vhost5@vhost5, vhost6@vhost6, vhost7@vhost7, vhost8@vhost8, vhost9@vhost9, vhost10@vhost10, vxlan1@vxlan1, vxlan2@vxlan2, vxlan3@vxlan3, vxlan4@vxlan4, vxlan5@vxlan5, vxlan6@vxlan6, vxlan7@vxlan7, vxlan8@vxlan8, vxlan9@vxlan9, vxlan10@vxlan10
-    spec:
-      tolerations:
-      # this toleration is to have the daemonset runnable on master nodes
-      # remove it if your masters can't run pods
-      - key: node-role.kubernetes.io/master
-        operator: Exists
-        effect: NoSchedule
-      containers:
-      - name: l2-ps
-        image: lewisfelix24/l2sm-ovs:latest
-        command: ["/bin/sh", "-c"]
-        args: ["ovsdb-server --remote=punix:/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile=/var/run/openvswitch/ovsdb-server.pid 
-         --detach && ovs-vsctl --db=unix:/var/run/openvswitch/db.sock --no-wait init && ovs-vswitchd --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach && 
-         ip link set vhost1 up && ip link set vhost2 up && ip link set vhost3 up && ip link set vhost4 up && ip link set vhost5 up && ip link set vhost6 up && ip link set vhost7 up && ip link set vhost8 up && 
-         ip link set vhost9 up && ip link set vhost10 up && ip link set vxlan1 up && ip link set vxlan2 up && ip link set vxlan3 up && ip link set vxlan4 up && ip link set vxlan5 up && ip link set vxlan6 up && 
-         ip link set vxlan7 up && ip link set vxlan8 up && ip link set vxlan9 up && ip link set vxlan10 up && 
-         ovs-vsctl add-br brtun && ip link set brtun up &&
-         ovs-vsctl add-port brtun vhost1 && ovs-vsctl add-port brtun vhost2 && ovs-vsctl add-port brtun vhost3 && ovs-vsctl add-port brtun vhost4 && ovs-vsctl add-port brtun vhost5 &&
-         ovs-vsctl add-port brtun vhost6 && ovs-vsctl add-port brtun vhost7 && ovs-vsctl add-port brtun vhost8 && ovs-vsctl add-port brtun vhost9 && ovs-vsctl add-port brtun vhost10 &&
-         ovs-vsctl add-port brtun vxlan1 && ovs-vsctl add-port brtun vxlan2 && ovs-vsctl add-port brtun vxlan3 && ovs-vsctl add-port brtun vxlan4 && ovs-vsctl add-port brtun vxlan5 &&
-         ovs-vsctl add-port brtun vxlan6 && ovs-vsctl add-port brtun vxlan7 && ovs-vsctl add-port brtun vxlan8 && ovs-vsctl add-port brtun vxlan9 && ovs-vsctl add-port brtun vxlan10 &&
-         /bin/sleep 3650d"]
-        imagePullPolicy: IfNotPresent
-        securityContext:
-          capabilities:
-            add: ["NET_ADMIN"]
-      nodeSelector:
-        kubernetes.io/arch: arm64