diff --git a/proto/compile.sh b/proto/compile.sh
index 9f0acdb050d3e4d05dd8a8e374c157e2040142c1..9a28ac860259c57a25cd304a9089451c2a08525d 100755
--- a/proto/compile.sh
+++ b/proto/compile.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-python3 -m grpc_tools.protoc -I=./ --python_out=src/ --grpc_python_out=src/ *.proto
+python3 -m grpc_tools.protoc -I=./ --python_out=../src/ --grpc_python_out=../src/ *.proto
 #requires installation of protoc-gen-uml
 export PATH=${HOME}/protoc-gen-uml/target/universal/stage/bin:$PATH
 protoc --uml_out=uml/ -I ./ *.proto
diff --git a/proto/l3_attackmitigator.proto b/proto/l3_attackmitigator.proto
index 345ac2ad116e84d1ecc46d8fe89c45e9acfa4e65..7d76408f892eb960cc61b54596c39833dbeed173 100644
--- a/proto/l3_attackmitigator.proto
+++ b/proto/l3_attackmitigator.proto
@@ -1,19 +1,16 @@
 syntax = "proto3";
 
+import "context.proto";
+
 service L3Attackmitigator{
   // Sends a greeting
-  rpc SendOutput (Output) returns (EmptyMitigator) {}
+  rpc SendOutput (L3AttackmitigatorOutput) returns (context.Empty) {}
   // Sends another greeting
-  rpc GetMitigation (EmptyMitigator) returns (EmptyMitigator) {}
-}
-
-
-message EmptyMitigator {
-	optional string message = 1;
+  rpc GetMitigation (context.Empty) returns (context.Empty) {}
 }
 
 
-message Output {
+message L3AttackmitigatorOutput {
 	float confidence = 1;
 	string timestamp = 2;
 	string ip_o = 3;	
@@ -22,7 +19,7 @@ message Output {
 	string flow_id = 6;
 	string protocol = 7;
 	string port_d = 8;
-	optional string ml_id = 9;
-	optional float time_start = 10;
-	optional float time_end = 11;
+	string ml_id = 9;
+	float time_start = 10;
+	float time_end = 11;
 }
diff --git a/proto/l3_centralizedattackdetector.proto b/proto/l3_centralizedattackdetector.proto
index 6d675f4b8bc72149d49e07b093560cf5d5195528..6a7dff8939a7c47cfde59038a21706a433c40614 100644
--- a/proto/l3_centralizedattackdetector.proto
+++ b/proto/l3_centralizedattackdetector.proto
@@ -2,12 +2,12 @@ syntax = "proto3";
 
 service L3Centralizedattackdetector {
   // Sends a greeting
-  rpc SendInput (ModelInput) returns (Empty) {}
+  rpc SendInput (L3CentralizedattackdetectorMetrics) returns (Empty) {}
   // Sends another greeting
-  rpc GetOutput (Empty) returns (ModelOutput) {}
+  rpc GetOutput (Empty) returns (L3CentralizedattackdetectorModelOutput) {}
 }
 
-message ModelInput {
+message L3CentralizedattackdetectorMetrics {
 	/*
 	Model input sent to the Inferencer by the client
 	There are currently 9 values and 
@@ -30,15 +30,15 @@ message ModelInput {
 	string port_d = 12;
 	string flow_id = 13;
 	string protocol = 14;
-	optional float time_start = 15;
-	optional float time_end = 16;
+	float time_start = 15;
+	float time_end = 16;
 }
 
 message Empty {
-	optional string message = 1;
+	string message = 1;
 }
 
-message ModelOutput {
+message L3CentralizedattackdetectorModelOutput {
 	float confidence = 1;
 	string timestamp = 2;
 	string ip_o = 3;	
@@ -47,9 +47,9 @@ message ModelOutput {
 	string flow_id = 6;
 	string protocol = 7;
 	string port_d = 8;
-	optional string ml_id = 9;
-	optional float time_start = 10;
-	optional float time_end = 11;
+	string ml_id = 9;
+	float time_start = 10;
+	float time_end = 11;
 }
 
 // Collections or streams?
diff --git a/proto/uml/Empty.png b/proto/uml/Empty.png
new file mode 100644
index 0000000000000000000000000000000000000000..eecbaabac484da77bf84ba5f1fec96c5f00ed544
Binary files /dev/null and b/proto/uml/Empty.png differ
diff --git a/proto/uml/L3AttackmitigatorOutput.png b/proto/uml/L3AttackmitigatorOutput.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe262fb4d87828ab5b5906f666589641d5f34bdd
Binary files /dev/null and b/proto/uml/L3AttackmitigatorOutput.png differ
diff --git a/proto/uml/L3CentralizedattackdetectorMetrics.png b/proto/uml/L3CentralizedattackdetectorMetrics.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b35d521382b7050d1f09310689567d2f2a7910e
Binary files /dev/null and b/proto/uml/L3CentralizedattackdetectorMetrics.png differ
diff --git a/proto/uml/L3CentralizedattackdetectorModelOutput.png b/proto/uml/L3CentralizedattackdetectorModelOutput.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d29df1fc90aaad9363f8231ccc6a8194e920cc4
Binary files /dev/null and b/proto/uml/L3CentralizedattackdetectorModelOutput.png differ
diff --git a/proto/uml/automation.png b/proto/uml/automation.png
index 22230e16556c92bd5829d4988a611fdeb8ec2688..97e733d388760d6bc32f294558b1ee7b9df8b764 100644
Binary files a/proto/uml/automation.png and b/proto/uml/automation.png differ
diff --git a/proto/uml/context.png b/proto/uml/context.png
index c71d2e63e77f68084b1ac112c7c8bbc7842dc92c..f573796944eb14557fc7db0d2b339a56f1cb4d93 100644
Binary files a/proto/uml/context.png and b/proto/uml/context.png differ
diff --git a/proto/uml/device.png b/proto/uml/device.png
new file mode 100644
index 0000000000000000000000000000000000000000..a30ec19aecdb00fbbe6db16c3c45272e4da045e1
Binary files /dev/null and b/proto/uml/device.png differ
diff --git a/proto/uml/kpi_sample_types.png b/proto/uml/kpi_sample_types.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6ebb076aaf0215c410aaa1b8b0156fb0621d8e2
Binary files /dev/null and b/proto/uml/kpi_sample_types.png differ
diff --git a/proto/uml/monitoring.png b/proto/uml/monitoring.png
index d0ffd5120ea91b1b1ba19cdd8299ed1501ebe8ae..676389fc6971457b3d0c4194484bb78b4be52404 100644
Binary files a/proto/uml/monitoring.png and b/proto/uml/monitoring.png differ
diff --git a/proto/uml/policy.png b/proto/uml/policy.png
index 76ae4611f5e41252eb09817b919326d2d16d3f57..e4f5c52848b75643c3a8272fb0223147bced5b90 100644
Binary files a/proto/uml/policy.png and b/proto/uml/policy.png differ
diff --git a/proto/uml/service.png b/proto/uml/service.png
deleted file mode 100644
index b2b12f0bbc12415f53912ce4658311eb805672c8..0000000000000000000000000000000000000000
Binary files a/proto/uml/service.png and /dev/null differ
diff --git a/proto/uml/slice.png b/proto/uml/slice.png
index 7a9335c46a2807528928b1d3df22a2b5ea5ac951..01b62425b28f6bb5319a96ddd7fc5b62ff620620 100644
Binary files a/proto/uml/slice.png and b/proto/uml/slice.png differ