diff --git a/proto/analytics_frontend.proto b/proto/analytics_frontend.proto
index 6af761ae51f332fc5df849e431663acd46b7888f..070d0b957294f6627885cb8ea6c4fb68e6f1945a 100644
--- a/proto/analytics_frontend.proto
+++ b/proto/analytics_frontend.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
 package device;
 
 import "context.proto";
-import "kpi_manager.proto";
+import "kpi_management.proto";
 import "kpi_sample_types.proto";
 
 service AnalyticsFrontendService {
@@ -21,12 +21,12 @@ enum AnalyzerMode {
 }
 
 message Analyzer {
-  repeated kpi_manager.KpiId kpi_id = 1; // The KPI Ids to be processed by the analyzer
-  AnalyzerMode               mode   = 2; // Operation mode of the analyzer
-  float batch_min_duration_s        = 3; // In batch mode, min duration to collect before executing batch
-  float batch_max_duration_s        = 4; // In batch mode, max duration collected to execute the batch
-  uint  batch_min_size              = 5; // In batch mode, min number of samples to collect before executing batch
-  uint  batch_max_size              = 6; // In batch mode, max number of samples collected to execute the batch
+  repeated kpi_management.KpiId kpi_id               = 1; // The KPI Ids to be processed by the analyzer
+  AnalyzerMode                  mode                 = 2; // Operation mode of the analyzer
+  float                         batch_min_duration_s = 3; // In batch mode, min duration to collect before executing batch
+  float                         batch_max_duration_s = 4; // In batch mode, max duration collected to execute the batch
+  uint64                        batch_min_size       = 5; // In batch mode, min number of samples to collect before executing batch
+  uint64                        batch_max_size       = 6; // In batch mode, max number of samples collected to execute the batch
 }
 
 message AnalyzerFilter {
@@ -34,7 +34,7 @@ message AnalyzerFilter {
   // An empty list means: any value is accepted.
   // All fields empty means: list all Analyzers
   repeated AnalyzerId                     analyzer_id    = 1;
-  repeated kpi_manager.KpiId              kpi_id          = 2;
+  repeated kpi_management.KpiId           kpi_id          = 2;
   repeated kpi_sample_types.KpiSampleType kpi_sample_type = 3;
   repeated context.DeviceId               device_id       = 4;
   repeated context.EndPointId             endpoint_id     = 5;
diff --git a/proto/device.proto b/proto/device.proto
index 98cca8ce937d4bccdb5076a7d26e9a27388641be..519bdeae90ba74a8ae18d90facbf02663f2a0797 100644
--- a/proto/device.proto
+++ b/proto/device.proto
@@ -17,7 +17,7 @@ package device;
 
 import "context.proto";
 //import "monitoring.proto";
-import "kpi_manager.proto";
+import "kpi_management.proto";
 
 service DeviceService {
   rpc AddDevice       (context.Device    ) returns (context.DeviceId    ) {}
@@ -28,8 +28,8 @@ service DeviceService {
 }
 
 message MonitoringSettings {
-  kpi_manager.KpiId kpi_id = 1;
-  kpi_manager.KpiDescriptor kpi_descriptor = 2;
+  kpi_management.KpiId kpi_id = 1;
+  kpi_management.KpiDescriptor kpi_descriptor = 2;
   float sampling_duration_s = 3;
   float sampling_interval_s = 4;
 }
diff --git a/proto/kpi_manager.proto b/proto/kpi_management.proto
similarity index 99%
rename from proto/kpi_manager.proto
rename to proto/kpi_management.proto
index ad48eb84ff7433d48ebcd5ebd902f0bea7d28504..a2a8f9d7252f1286f184b9e5563258fc1491b6f0 100644
--- a/proto/kpi_manager.proto
+++ b/proto/kpi_management.proto
@@ -13,7 +13,7 @@
 // limitations under the License.
 
 syntax = "proto3";
-package kpi_manager;
+package kpi_management;
 
 import "context.proto";
 import "kpi_sample_types.proto";
@@ -25,7 +25,6 @@ service KpiManagerService{
   rpc SelectKpiDescriptor (KpiDescriptorFilter) returns (KpiDescriptorList   ) {} // Stable and final
 }
 
-
 message KpiId {
   context.Uuid kpi_id = 1;
 }
diff --git a/proto/monitoring.proto b/proto/monitoring.proto
index 2706988aa474b88f237017d72e468a34e4945af9..e316fbdc14807b847ac6d8034c524d993ab91130 100755
--- a/proto/monitoring.proto
+++ b/proto/monitoring.proto
@@ -16,7 +16,7 @@ syntax = "proto3";
 package monitoring;
 
 import "context.proto";
-import "kpi_manager.proto";
+import "kpi_management.proto";
 //import "kpi_sample_types.proto";
 
 service MonitoringService {
@@ -43,14 +43,14 @@ service MonitoringService {
 
 
 message MonitorKpiRequest {
-  kpi_manager.KpiId kpi_id  = 1;
+  kpi_management.KpiId kpi_id  = 1;
   float monitoring_window_s = 2;
   float sampling_rate_s     = 3;
   // Pending add field to reflect Available Device Protocols
 }
 
 message KpiQuery {
-  repeated kpi_manager.KpiId    kpi_ids             = 1;
+  repeated kpi_management.KpiId    kpi_ids             = 1;
   float                         monitoring_window_s = 2;
   uint32                        last_n_samples      = 3;  // used when you want something like "get the last N many samples
   context.Timestamp             start_timestamp     = 4;  // used when you want something like "get the samples since X date/time"
@@ -64,7 +64,7 @@ message RawKpi { // cell
 }
 
 message RawKpiList { // column
-  kpi_manager.KpiId  kpi_id    = 1;
+  kpi_management.KpiId  kpi_id    = 1;
   repeated RawKpi    raw_kpis  = 2;
 }
 
@@ -75,7 +75,7 @@ message RawKpiTable { // table
 
 
 message Kpi {
-  kpi_manager.KpiId kpi_id    = 1;
+  kpi_management.KpiId kpi_id    = 1;
   context.Timestamp timestamp = 2;
   KpiValue          kpi_value = 3;
 }
@@ -109,7 +109,7 @@ message KpiList {
 
 message SubsDescriptor{
   SubscriptionID    subs_id             = 1;
-  kpi_manager.KpiId kpi_id              = 2;
+  kpi_management.KpiId kpi_id              = 2;
   float             sampling_duration_s = 3;
   float             sampling_interval_s = 4;
   context.Timestamp start_timestamp     = 5;  // used when you want something like "get the samples since X date/time"
@@ -134,7 +134,7 @@ message AlarmDescriptor {
   AlarmID                     alarm_id              = 1;
   string                      alarm_description     = 2;
   string                      name                  = 3;
-  kpi_manager.KpiId           kpi_id                = 4;
+  kpi_management.KpiId           kpi_id                = 4;
   KpiValueRange               kpi_value_range       = 5;
   context.Timestamp           timestamp             = 6;
 }
diff --git a/proto/optical_attack_detector.proto b/proto/optical_attack_detector.proto
index 0d3ed58de81283e3f77fb013bed77ede14c7e849..61f93c299c98f7f723915c7bb445871d4708ee4d 100644
--- a/proto/optical_attack_detector.proto
+++ b/proto/optical_attack_detector.proto
@@ -18,7 +18,7 @@ package optical_attack_detector;
 
 import "context.proto";
 //import "monitoring.proto";
-import "kpi_manager.proto";
+import "kpi_management.proto";
 
 service OpticalAttackDetectorService {
   
@@ -29,5 +29,5 @@ service OpticalAttackDetectorService {
 
 message DetectionRequest {
   context.ServiceId service_id = 1;
-  kpi_manager.KpiId  kpi_id     = 2;
+  kpi_management.KpiId  kpi_id     = 2;
 }
diff --git a/proto/policy_condition.proto b/proto/policy_condition.proto
index c0af929efdbdbd6f237d6a6aba471952da1d2d6a..8f1211208eaa64dda72933edbd657ee69e0ef618 100644
--- a/proto/policy_condition.proto
+++ b/proto/policy_condition.proto
@@ -16,11 +16,11 @@ syntax = "proto3";
 package policy;
 
 import "monitoring.proto";
-import "kpi_manager.proto";
+import "kpi_management.proto";
 
 // Condition
 message PolicyRuleCondition {
-  kpi_manager.KpiId kpiId = 1;
+  kpi_management.KpiId kpiId = 1;
   NumericalOperator numericalOperator = 2;
   monitoring.KpiValue kpiValue = 3;
 }
diff --git a/proto/telemetry_frontend.proto b/proto/telemetry_frontend.proto
index 48bfd7a0e17501a5fb78fa5e180b11b79fdd735d..ffc851a4c11eba8054527eaf82ece202b3381499 100644
--- a/proto/telemetry_frontend.proto
+++ b/proto/telemetry_frontend.proto
@@ -2,8 +2,7 @@ syntax = "proto3";
 package device;
 
 import "context.proto";
-import "kpi_manager.proto";
-import "kpi_sample_types.proto";
+import "kpi_management.proto";
 
 service TelemetryFrontendService {
   rpc StartCollector  (Collector      ) returns (CollectorId  ) {}
@@ -16,25 +15,18 @@ message CollectorId {
 }
 
 message Collector {
-  CollectorId collector_id = 1;     // The Collector ID
-  kpi_manager.KpiId kpi_id = 2;     // The KPI Id to be associated to the collected samples
-  float duration_s         = 3;     // Terminate data collection after duration[seconds]; duration==0 means indefinitely
-  float interval_s         = 4;     // Interval between collected samples
+  CollectorId          collector_id     = 1;     // The Collector ID
+  kpi_management.KpiId kpi_id           = 2;     // The KPI Id to be associated to the collected samples
+  float                duration_s       = 3;     // Terminate data collection after duration[seconds]; duration==0 means indefinitely
+  float                interval_s       = 4;     // Interval between collected samples
 }
 
 message CollectorFilter {
   // Collector that fulfill the filter are those that match ALL the following fields.
   // An empty list means: any value is accepted.
   // All fields empty means: list all Collectors
-  repeated CollectorId                    collector_id    = 1;
-  repeated kpi_manager.KpiId              kpi_id          = 2;
-  // repeated kpi_sample_types.KpiSampleType kpi_sample_type = 3;
-  // repeated context.DeviceId               device_id       = 4;
-  // repeated context.EndPointId             endpoint_id     = 5;
-  // repeated context.ServiceId              service_id      = 6;
-  // repeated context.SliceId                slice_id        = 7;
-  // repeated context.ConnectionId           connection_id   = 8;
-  // repeated context.LinkId                 link_id         = 9;
+  repeated CollectorId          collector_id    = 1;
+  repeated kpi_management.KpiId kpi_id          = 2;
 }
 
 message CollectorList {
diff --git a/scripts/run_tests_locally-kpi-DB.sh b/scripts/run_tests_locally-kpi-DB.sh
index aa976762072a15d5481e41c3cfa45fe4a876c0cd..75d92206106859991624c18d09c29a3637e9d1e4 100755
--- a/scripts/run_tests_locally-kpi-DB.sh
+++ b/scripts/run_tests_locally-kpi-DB.sh
@@ -25,4 +25,4 @@ cd $PROJECTDIR/src
 
 RCFILE=$PROJECTDIR/coverage/.coveragerc
 python3 -m pytest --log-level=INFO --log-cli-level=INFO --verbose \
-    kpi_manager/service/database/KpiDBtests.py
\ No newline at end of file
+    kpi_management/kpi_manager/database/tests/KpiDBtests.py
\ No newline at end of file
diff --git a/scripts/run_tests_locally-kpi-manager.sh b/scripts/run_tests_locally-kpi-manager.sh
index be69980e05f2b4f922a970df77f7d15b4a178fcc..17c0c02ac19e806033eb1be34c38c7c6429a6d5e 100755
--- a/scripts/run_tests_locally-kpi-manager.sh
+++ b/scripts/run_tests_locally-kpi-manager.sh
@@ -25,4 +25,4 @@ cd $PROJECTDIR/src
 
 RCFILE=$PROJECTDIR/coverage/.coveragerc
 python3 -m pytest --log-level=INFO --log-cli-level=INFO --verbose \
-    kpi_manager/tests/test_kpi_manager.py
\ No newline at end of file
+    kpi_management/kpi_manager/tests/test_kpi_manager.py
\ No newline at end of file
diff --git a/src/kpi_manager/Dockerfile b/src/kpi_management/Dockerfile
similarity index 91%
rename from src/kpi_manager/Dockerfile
rename to src/kpi_management/Dockerfile
index d3d962b9fedd249e2a9bfe43a54dd558a43e4563..0369fc0c8d9068d959a4b9a00f218b45ad3b7d46 100644
--- a/src/kpi_manager/Dockerfile
+++ b/src/kpi_management/Dockerfile
@@ -54,9 +54,9 @@ RUN rm *.proto
 RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \;
 
 # Create component sub-folders, get specific Python packages
-RUN mkdir -p /var/teraflow/kpi_manager
-WORKDIR /var/teraflow/kpi_manager
-COPY src/kpi_manager/requirements.in requirements.in
+RUN mkdir -p /var/teraflow/kpi_management
+WORKDIR /var/teraflow/kpi_management
+COPY src/kpi_management/requirements.in requirements.in
 RUN pip-compile --quiet --output-file=requirements.txt requirements.in
 RUN python3 -m pip install -r requirements.txt
 
@@ -65,7 +65,7 @@ WORKDIR /var/teraflow
 COPY src/context/. context/
 COPY src/device/. device/
 COPY src/monitoring/. monitoring/
-COPY src/kpi_manager/. kpi_manager/
+COPY src/kpi_management/. kpi_management/
 
 # Start the service
-ENTRYPOINT ["python", "-m", "kpi_manager.service"]
+ENTRYPOINT ["python", "-m", "kpi_management.service"]
diff --git a/src/kpi_manager/README.md b/src/kpi_management/README.md
similarity index 57%
rename from src/kpi_manager/README.md
rename to src/kpi_management/README.md
index 88c52bb4f23472b02d335cea64b3709a45e6a6bd..b73f0e8af20aa6579297111d9d667b18b277ab55 100644
--- a/src/kpi_manager/README.md
+++ b/src/kpi_management/README.md
@@ -1,19 +1,21 @@
-# How to locally run and test KPI Manager service
+# How to locally run and test KPI management service
+
+## ----- Update Required (Files structure has been changed) -----
 
 ### Pre-requisets 
-The following requirements should be fulfilled before the execuation of KPI Manager service.
+The following requirements should be fulfilled before the execuation of KPI management service.
 
-1. verify that [kpi_manager.proto](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/proto/kpi_manager.proto) file exists and grpcs file are generated sucessfully. 
-2. virtual enviornment exist with all the required packages listed in ["requirements.in"](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_manager/requirements.in) are installed sucessfully.
+1. verify that [kpi_management.proto](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/proto/kpi_management.proto) file exists and grpcs file are generated sucessfully. 
+2. virtual enviornment exist with all the required packages listed in ["requirements.in"](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_management/requirements.in) are installed sucessfully.
 3. verify the creation of required database and table.
-[KPI DB test](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_manager/service/database/KpiDBtests.py) python file enlist the functions to create tables and database.
-[KPI Engine](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_manager/service/database/KpiEngine.py) contains the DB string, update the string as per your deployment.
+[KPI DB test](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_management/service/database/KpiDBtests.py) python file enlist the functions to create tables and database.
+[KPI Engine](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_management/service/database/KpiEngine.py) contains the DB string, update the string as per your deployment.
 
 ### Messages format templates
-["Messages"](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_manager/tests/test_messages.py) python file enlist the basic gRPC messages format used during the testing.
+["Messages"](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_management/tests/test_messages.py) python file enlist the basic gRPC messages format used during the testing.
 
 ### Test file
-["KPI manager test"](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_manager/tests/test_kpi_manager.py) python file enlist the different tests conducted during the experiment.
+["KPI management test"](https://labs.etsi.org/rep/tfs/controller/-/blob/feat/71-cttc-separation-of-monitoring/src/kpi_management/tests/test_kpi_management.py) python file enlist the different tests conducted during the experiment.
 
 ### Flow of execution (Kpi Maanager Service functions)
 1. Call the `create_database()` and `create_tables()` functions from `Kpi_DB` class to create the required database and table if they don't exist.
diff --git a/src/kpi_manager/__init__.py b/src/kpi_management/__init__.py
similarity index 100%
rename from src/kpi_manager/__init__.py
rename to src/kpi_management/__init__.py
diff --git a/src/kpi_manager/client/__init__.py b/src/kpi_management/kpi_manager/__init__.py
similarity index 100%
rename from src/kpi_manager/client/__init__.py
rename to src/kpi_management/kpi_manager/__init__.py
diff --git a/src/kpi_manager/client/KpiManagerClient.py b/src/kpi_management/kpi_manager/client/KpiManagerClient.py
similarity index 95%
rename from src/kpi_manager/client/KpiManagerClient.py
rename to src/kpi_management/kpi_manager/client/KpiManagerClient.py
index 30b1720fb892c599abd5b206d7478873e72cc5fd..140381d3a6c55c2edd997fdabf21da276b122e6c 100755
--- a/src/kpi_manager/client/KpiManagerClient.py
+++ b/src/kpi_management/kpi_manager/client/KpiManagerClient.py
@@ -19,8 +19,8 @@ from common.Settings import get_service_host, get_service_port_grpc
 from common.proto.context_pb2 import Empty
 from common.tools.grpc.Tools import grpc_message_to_json_string
 from common.tools.client.RetryDecorator import retry, delay_exponential
-from common.proto.kpi_manager_pb2_grpc import KpiManagerServiceStub
-from common.proto.kpi_manager_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilter, KpiDescriptorList
+from common.proto.kpi_management_pb2_grpc import KpiManagerServiceStub
+from common.proto.kpi_management_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilter, KpiDescriptorList
 
 LOGGER = logging.getLogger(__name__)
 MAX_RETRIES = 10
diff --git a/src/kpi_manager/service/__init__.py b/src/kpi_management/kpi_manager/client/__init__.py
similarity index 100%
rename from src/kpi_manager/service/__init__.py
rename to src/kpi_management/kpi_manager/client/__init__.py
diff --git a/src/kpi_manager/service/database/__init__.py b/src/kpi_management/kpi_manager/database/__init__.py
similarity index 100%
rename from src/kpi_manager/service/database/__init__.py
rename to src/kpi_management/kpi_manager/database/__init__.py
diff --git a/src/kpi_manager/service/database/KpiEngine.py b/src/kpi_management/kpi_manager/database/service/KpiEngine.py
similarity index 100%
rename from src/kpi_manager/service/database/KpiEngine.py
rename to src/kpi_management/kpi_manager/database/service/KpiEngine.py
diff --git a/src/kpi_manager/service/database/KpiModel.py b/src/kpi_management/kpi_manager/database/service/KpiModel.py
similarity index 56%
rename from src/kpi_manager/service/database/KpiModel.py
rename to src/kpi_management/kpi_manager/database/service/KpiModel.py
index 5bfc5525b464f671abfc236ffea6e7a7c63d84e9..846f738f94cad77d0449c3abc0dc4554902b3aca 100644
--- a/src/kpi_manager/service/database/KpiModel.py
+++ b/src/kpi_management/kpi_manager/database/service/KpiModel.py
@@ -31,14 +31,14 @@ class Kpi(Base):
     __tablename__ = 'kpi'
 
     kpi_id          = Column(UUID(as_uuid=False), primary_key=True)
-    kpi_description = Column(Text, unique=True)
-    kpi_sample_type = Column(Integer)
-    device_id       = Column(String)
-    endpoint_id     = Column(String)
-    service_id      = Column(String)
-    slice_id        = Column(String)
-    connection_id   = Column(String)
-    link_id         = Column(String)
+    kpi_description = Column(Text,    nullable=False)
+    kpi_sample_type = Column(Integer, nullable=False)
+    device_id       = Column(String,  nullable=False)
+    endpoint_id     = Column(String,  nullable=False)
+    service_id      = Column(String,  nullable=False)
+    slice_id        = Column(String,  nullable=False)
+    connection_id   = Column(String,  nullable=False)
+    link_id         = Column(String,  nullable=False)
 
     # helps in logging the information
     def __repr__(self):
@@ -47,3 +47,22 @@ class Kpi(Base):
                 f"endpoint_id='{self.endpoint_id}', service_id='{self.service_id}', "
                 f"slice_id='{self.slice_id}', connection_id='{self.connection_id}', "
                 f"link_id='{self.link_id}')>")
+
+    @classmethod
+    def create_row_from_kpiDescriptor(cls, request):
+        """
+        Create an instance of Kpi from a request object.
+        Args: request: The request object containing the data.
+        Returns: An instance of Kpi initialized with data from the request.
+        """
+        return cls(
+            kpi_id=request.kpi_id.kpi_id.uuid,
+            kpi_description=request.kpi_description,
+            kpi_sample_type=request.kpi_sample_type,
+            device_id=request.device_id.device_uuid.uuid,
+            endpoint_id=request.endpoint_id.endpoint_uuid.uuid,
+            service_id=request.service_id.service_uuid.uuid,
+            slice_id=request.slice_id.slice_uuid.uuid,
+            connection_id=request.connection_id.connection_uuid.uuid,
+            link_id=request.link_id.link_uuid.uuid
+        )
\ No newline at end of file
diff --git a/src/kpi_manager/service/database/Kpi_DB.py b/src/kpi_management/kpi_manager/database/service/Kpi_DB.py
similarity index 96%
rename from src/kpi_manager/service/database/Kpi_DB.py
rename to src/kpi_management/kpi_manager/database/service/Kpi_DB.py
index eafa38aad48bac663f2af8651bd1e99b191265a7..847e4b70a2adb2fa046d6bf16adcf6fc0d9f6168 100644
--- a/src/kpi_manager/service/database/Kpi_DB.py
+++ b/src/kpi_management/kpi_manager/database/service/Kpi_DB.py
@@ -17,8 +17,8 @@ import sqlalchemy
 import sqlalchemy_utils
 from sqlalchemy.orm import sessionmaker
 from sqlalchemy.ext.declarative import declarative_base
-from kpi_manager.service.database.KpiEngine import KpiEngine
-from kpi_manager.service.database.KpiModel import Kpi
+from kpi_management.kpi_manager.database.service.KpiEngine import KpiEngine
+from kpi_management.kpi_manager.database.service.KpiModel import Kpi
 
 LOGGER = logging.getLogger(__name__)
 DB_NAME = "kpi"
@@ -31,7 +31,7 @@ class Kpi_DB:
             return False
         self.db_name = DB_NAME
         # self.drop_database(self.db_engine)          # added to test
-        # self.create_database(self.db_engine)         # to add database
+        # self.create_database(self.db_engine)        # to add database 
         self.Session = sessionmaker(bind=self.db_engine)
 
     @staticmethod
diff --git a/src/kpi_manager/tests/__init__.py b/src/kpi_management/kpi_manager/database/service/__init__.py
similarity index 100%
rename from src/kpi_manager/tests/__init__.py
rename to src/kpi_management/kpi_manager/database/service/__init__.py
diff --git a/src/kpi_manager/service/database/KpiDBtests.py b/src/kpi_management/kpi_manager/database/tests/KpiDBtests.py
similarity index 83%
rename from src/kpi_manager/service/database/KpiDBtests.py
rename to src/kpi_management/kpi_manager/database/tests/KpiDBtests.py
index 022a7633d7c7bf50f3dcd8e9a2fa3ec2970fd4db..24313e138b53ec8238719863049c0077a4ac551c 100644
--- a/src/kpi_manager/service/database/KpiDBtests.py
+++ b/src/kpi_management/kpi_manager/database/tests/KpiDBtests.py
@@ -14,15 +14,10 @@
 
 
 import logging
-from kpi_manager.service.database.Kpi_DB import Kpi_DB
+from kpi_management.kpi_manager.database.service.Kpi_DB import Kpi_DB
 
 LOGGER = logging.getLogger(__name__)
 
-
-def test_create_db_object():
-    LOGGER.info('>>> test_create_db_object : START<<< ')
-    kpiDBobj = Kpi_DB()
-
 def test_verify_Tables():
     LOGGER.info('>>> test_verify_Tables : START <<< ')
     kpiDBobj = Kpi_DB()
diff --git a/src/kpi_manager/service/KpiManagerService.py b/src/kpi_management/kpi_manager/service/KpiManagerService.py
similarity index 78%
rename from src/kpi_manager/service/KpiManagerService.py
rename to src/kpi_management/kpi_manager/service/KpiManagerService.py
index dbbcec2cf0e017b5797348578b3537da1420ecbc..d4a8a8104cc0117f42670917b9ef551e16f9cbb1 100755
--- a/src/kpi_manager/service/KpiManagerService.py
+++ b/src/kpi_management/kpi_manager/service/KpiManagerService.py
@@ -14,11 +14,9 @@
 
 from common.Constants import ServiceNameEnum
 from common.Settings import get_service_port_grpc
-# from common.proto.monitoring_pb2_grpc import add_MonitoringServiceServicer_to_server
-from common.proto.kpi_manager_pb2_grpc import add_KpiManagerServiceServicer_to_server
+from common.proto.kpi_management_pb2_grpc import add_KpiManagerServiceServicer_to_server
 from common.tools.service.GenericGrpcService import GenericGrpcService
-from kpi_manager.service.KpiManagerServiceServicerImpl import KpiManagerServiceServicerImpl
-# from monitoring.service.MonitoringServiceServicerImpl import MonitoringServiceServicerImpl
+from kpi_management.kpi_manager.service.KpiManagerServiceServicerImpl import KpiManagerServiceServicerImpl
 from monitoring.service.NameMapping import NameMapping
 
 class KpiManagerService(GenericGrpcService):
diff --git a/src/kpi_manager/service/KpiManagerServiceServicerImpl.py b/src/kpi_management/kpi_manager/service/KpiManagerServiceServicerImpl.py
similarity index 84%
rename from src/kpi_manager/service/KpiManagerServiceServicerImpl.py
rename to src/kpi_management/kpi_manager/service/KpiManagerServiceServicerImpl.py
index 4b2e9fc3fe89d5011c16cc43fea026e5a23d6b1a..3d96c98dde9599d93db113a7543896e70e2fcb8f 100644
--- a/src/kpi_manager/service/KpiManagerServiceServicerImpl.py
+++ b/src/kpi_management/kpi_manager/service/KpiManagerServiceServicerImpl.py
@@ -17,13 +17,13 @@ import logging, grpc
 import sqlalchemy, sqlalchemy_utils
 from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method
 from common.proto.context_pb2 import Empty
-from common.proto.kpi_manager_pb2_grpc import KpiManagerServiceServicer
-from common.proto.kpi_manager_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilter, KpiDescriptorList
+from common.proto.kpi_management_pb2_grpc import KpiManagerServiceServicer
+from common.proto.kpi_management_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilter, KpiDescriptorList
 from monitoring.service.NameMapping import NameMapping
 # from monitoring.service import ManagementDBTools
 
-from kpi_manager.service.database.Kpi_DB import Kpi_DB
-from kpi_manager.service.database.KpiModel import Kpi as KpiModel
+from kpi_management.kpi_manager.database.service.Kpi_DB import Kpi_DB
+from kpi_management.kpi_manager.database.service.KpiModel import Kpi as KpiModel
 # from telemetry.database.TelemetryModel import Kpi as KpiModel
 from common.proto.context_pb2 import DeviceId, LinkId, ServiceId, SliceId,\
                              ConnectionId, EndPointId
@@ -44,16 +44,17 @@ class KpiManagerServiceServicerImpl(KpiManagerServiceServicer):
         response = KpiId()
         LOGGER.info("Received gRPC message object: {:}".format(request))
         try:
-            kpi_to_insert                 = KpiModel()
-            kpi_to_insert.kpi_id          = request.kpi_id.kpi_id.uuid
-            kpi_to_insert.kpi_description = request.kpi_description
-            kpi_to_insert.kpi_sample_type = request.kpi_sample_type
-            kpi_to_insert.device_id       = request.device_id.device_uuid.uuid
-            kpi_to_insert.endpoint_id     = request.endpoint_id.endpoint_uuid.uuid 
-            kpi_to_insert.service_id      = request.service_id.service_uuid.uuid 
-            kpi_to_insert.slice_id        = request.slice_id.slice_uuid.uuid 
-            kpi_to_insert.connection_id   = request.connection_id.connection_uuid.uuid
-            kpi_to_insert.link_id         = request.link_id.link_uuid.uuid
+            # kpi_to_insert                 = KpiModel()
+            # kpi_to_insert.kpi_id          = request.kpi_id.kpi_id.uuid
+            # kpi_to_insert.kpi_description = request.kpi_description
+            # kpi_to_insert.kpi_sample_type = request.kpi_sample_type
+            # kpi_to_insert.device_id       = request.device_id.device_uuid.uuid
+            # kpi_to_insert.endpoint_id     = request.endpoint_id.endpoint_uuid.uuid 
+            # kpi_to_insert.service_id      = request.service_id.service_uuid.uuid 
+            # kpi_to_insert.slice_id        = request.slice_id.slice_uuid.uuid 
+            # kpi_to_insert.connection_id   = request.connection_id.connection_uuid.uuid
+            # kpi_to_insert.link_id         = request.link_id.link_uuid.uuid
+            kpi_to_insert = KpiModel.create_row_from_kpiDescriptor(request)
             if(self.Kpi_DBobj.add_row_to_db(kpi_to_insert)):
                 response.kpi_id.uuid = request.kpi_id.kpi_id.uuid
                 # LOGGER.info("Added Row: {:}".format(response))
diff --git a/src/kpi_management/kpi_manager/service/__init__.py b/src/kpi_management/kpi_manager/service/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612
--- /dev/null
+++ b/src/kpi_management/kpi_manager/service/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/src/kpi_manager/tests/test_kpi_manager.py b/src/kpi_management/kpi_manager/tests/test_kpi_manager.py
similarity index 83%
rename from src/kpi_manager/tests/test_kpi_manager.py
rename to src/kpi_management/kpi_manager/tests/test_kpi_manager.py
index 680847005586a57cab5f758f42109f8b45943f1a..ca5f6af6f7a8d85679a0e6912590b3caa0774be5 100755
--- a/src/kpi_manager/tests/test_kpi_manager.py
+++ b/src/kpi_management/kpi_manager/tests/test_kpi_manager.py
@@ -23,17 +23,17 @@ from typing import Union
 
 from common.proto.context_pb2 import ConfigActionEnum, Context, ContextId, DeviceOperationalStatusEnum, EventTypeEnum, DeviceEvent, Device, Empty, Topology, TopologyId
 from common.Constants import ServiceNameEnum
-from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME, ServiceNameEnum
+# from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME, ServiceNameEnum
 from common.Settings import (
     ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, get_service_port_grpc)
 from common.tests.MockServicerImpl_Context import MockServicerImpl_Context
 from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server
-from common.proto.kpi_sample_types_pb2 import KpiSampleType
-from common.tools.object_factory.Context import json_context, json_context_id
-from common.tools.object_factory.Topology import json_topology, json_topology_id
+# from common.proto.kpi_sample_types_pb2 import KpiSampleType
+# from common.tools.object_factory.Context import json_context, json_context_id
+# from common.tools.object_factory.Topology import json_topology, json_topology_id
 # from common.proto.monitoring_pb2 import KpiId, KpiDescriptor, SubsDescriptor, SubsList, AlarmID, \
 #     AlarmDescriptor, AlarmList, KpiDescriptorList, SubsResponse, AlarmResponse, RawKpiTable #, Kpi, KpiList
-from common.proto.kpi_manager_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilter, KpiDescriptorList
+from common.proto.kpi_management_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilter, KpiDescriptorList
 from common.tools.service.GenericGrpcService import GenericGrpcService
 from context.client.ContextClient import ContextClient
 
@@ -43,17 +43,16 @@ from device.service.driver_api.DriverInstanceCache import DriverInstanceCache
 from device.service.DeviceService import DeviceService
 from device.client.DeviceClient import DeviceClient
 
-from kpi_manager.tests.test_messages import create_kpi_descriptor_request, create_kpi_id_request, \
-                                        create_kpi_filter_request_a, create_kpi_descriptor_request_a
+from kpi_management.kpi_manager.tests.test_messages import create_kpi_descriptor_request
 # from monitoring.service.MonitoringService import MonitoringService
-from kpi_manager.service.KpiManagerService import KpiManagerService
+from kpi_management.kpi_manager.service.KpiManagerService import KpiManagerService
 # from monitoring.client.MonitoringClient import MonitoringClient
-from kpi_manager.client.KpiManagerClient import KpiManagerClient
+from kpi_management.kpi_manager.client.KpiManagerClient import KpiManagerClient
 
-from kpi_manager.service.KpiManagerServiceServicerImpl import KpiManagerServiceServicerImpl
+from kpi_management.kpi_manager.service.KpiManagerServiceServicerImpl import KpiManagerServiceServicerImpl
 
-from monitoring.service.ManagementDBTools import ManagementDB
-from monitoring.service.MetricsDBTools import MetricsDB
+# from monitoring.service.ManagementDBTools import ManagementDB
+# from monitoring.service.MetricsDBTools import MetricsDB
 from monitoring.service.NameMapping import NameMapping
 
 os.environ['DEVICE_EMULATED_ONLY'] = 'TRUE'
@@ -210,17 +209,36 @@ def kpi_manager_client(kpi_manager_service : KpiManagerService): # pylint: disab
 # Tests Implementation of Kpi Manager
 ###########################
 
-# ---------- 2nd Iteration Tests -----------------
+# ---------- 3rd Iteration Tests ----------------
 def test_SetKpiDescriptor(kpi_manager_client):
     LOGGER.info(" >>> test_SetKpiDescriptor: START <<< ")
-    with open("kpi_manager/tests/KPI_configs.json", 'r') as file:
-        data = json.load(file)
-        _descriptors = data.get('KPIs', [])
-    for _descritor_name in _descriptors:
-        response = kpi_manager_client.SetKpiDescriptor(create_kpi_descriptor_request_a(_descritor_name))
-        LOGGER.info("Response gRPC message object: {:}".format(response))
+    response = kpi_manager_client.SetKpiDescriptor(create_kpi_descriptor_request())
+    LOGGER.info("Response gRPC message object: {:}".format(response))
     assert isinstance(response, KpiId)
 
+def test_DeleteKpiDescriptor(kpi_manager_client):
+    LOGGER.info(" >>> test_DeleteKpiDescriptor: START <<< ")
+    # adding KPI
+    response = kpi_manager_client.SetKpiDescriptor(create_kpi_descriptor_request())
+    # deleting KPI
+    del_response = kpi_manager_client.DeleteKpiDescriptor(response)
+    # verifing KPI
+    kpi_manager_client.GetKpiDescriptor(response)
+    LOGGER.info("Response of delete method gRPC message object: {:}".format(del_response))
+    assert isinstance(del_response, Empty)
+
+
+# ---------- 2nd Iteration Tests -----------------
+# def test_SetKpiDescriptor(kpi_manager_client):
+#     LOGGER.info(" >>> test_SetKpiDescriptor: START <<< ")
+#     with open("kpi_manager/tests/KPI_configs.json", 'r') as file:
+#         data = json.load(file)
+#         _descriptors = data.get('KPIs', [])
+#     for _descritor_name in _descriptors:
+#         response = kpi_manager_client.SetKpiDescriptor(create_kpi_descriptor_request_a(_descritor_name))
+#         LOGGER.info("Response gRPC message object: {:}".format(response))
+#     assert isinstance(response, KpiId)
+
 # def test_GetKpiDescriptor(kpi_manager_client):
 #     LOGGER.info(" >>> test_GetKpiDescriptor: START <<< ")
 #     response = kpi_manager_client.GetKpiDescriptor(create_kpi_id_request())
diff --git a/src/kpi_management/kpi_manager/tests/test_messages.py b/src/kpi_management/kpi_manager/tests/test_messages.py
new file mode 100644
index 0000000000000000000000000000000000000000..7c2933b7a874e5c501358ed8808ed9da95f41dcb
--- /dev/null
+++ b/src/kpi_management/kpi_manager/tests/test_messages.py
@@ -0,0 +1,30 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import uuid
+from common.proto import kpi_management_pb2
+from common.proto.kpi_sample_types_pb2 import KpiSampleType
+
+def create_kpi_descriptor_request(descriptor_name: str = "Test_name"):
+    _create_kpi_request                                    = kpi_management_pb2.KpiDescriptor()
+    _create_kpi_request.kpi_id.kpi_id.uuid                 = str(uuid.uuid4())
+    _create_kpi_request.kpi_description                    = descriptor_name
+    _create_kpi_request.kpi_sample_type                    = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED
+    _create_kpi_request.device_id.device_uuid.uuid         = 'DEV1'     # pylint: disable=maybe-no-member
+    _create_kpi_request.service_id.service_uuid.uuid       = 'SERV1'    # pylint: disable=maybe-no-member
+    _create_kpi_request.slice_id.slice_uuid.uuid           = 'SLC1'     # pylint: disable=maybe-no-member
+    _create_kpi_request.endpoint_id.endpoint_uuid.uuid     = 'END1'     # pylint: disable=maybe-no-member
+    _create_kpi_request.connection_id.connection_uuid.uuid = 'CON1'     # pylint: disable=maybe-no-member
+    _create_kpi_request.link_id.link_uuid.uuid             = 'LNK1'     # pylint: disable=maybe-no-member
+    return _create_kpi_request
\ No newline at end of file
diff --git a/src/kpi_management/kpi_value_api/__init__.py b/src/kpi_management/kpi_value_api/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612
--- /dev/null
+++ b/src/kpi_management/kpi_value_api/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/src/kpi_management/kpi_value_api/client/__init__.py b/src/kpi_management/kpi_value_api/client/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612
--- /dev/null
+++ b/src/kpi_management/kpi_value_api/client/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/src/kpi_management/kpi_value_api/service/__init__.py b/src/kpi_management/kpi_value_api/service/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612
--- /dev/null
+++ b/src/kpi_management/kpi_value_api/service/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/src/kpi_management/kpi_value_writer/__init__.py b/src/kpi_management/kpi_value_writer/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612
--- /dev/null
+++ b/src/kpi_management/kpi_value_writer/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/src/kpi_manager/service/KpiValueComposer.py b/src/kpi_management/kpi_value_writer/service/KpiValueComposer.py
similarity index 97%
rename from src/kpi_manager/service/KpiValueComposer.py
rename to src/kpi_management/kpi_value_writer/service/KpiValueComposer.py
index bb2b6ebf3494130bf86d4f5d415c643c35fb20e5..61e55812108023524c2e6fd60fc8a2b4c4968115 100644
--- a/src/kpi_manager/service/KpiValueComposer.py
+++ b/src/kpi_management/kpi_value_writer/service/KpiValueComposer.py
@@ -20,8 +20,8 @@ import threading
 from confluent_kafka import KafkaError
 from confluent_kafka import Producer as KafkaProducer
 from confluent_kafka import Consumer as KafkaConsumer
-from kpi_manager.service.database.Kpi_DB import Kpi_DB
-from kpi_manager.service.database.KpiModel import Kpi as KpiModel
+from kpi_management.service.database.Kpi_DB import Kpi_DB
+from kpi_management.service.database.KpiModel import Kpi as KpiModel
 
 LOGGER             = logging.getLogger(__name__)
 # KAFKA_SERVER_IP    = '10.152.183.175:30092'
diff --git a/src/kpi_manager/service/KpiWriter.py b/src/kpi_management/kpi_value_writer/service/KpiWriter.py
similarity index 100%
rename from src/kpi_manager/service/KpiWriter.py
rename to src/kpi_management/kpi_value_writer/service/KpiWriter.py
diff --git a/src/kpi_management/kpi_value_writer/service/__init__.py b/src/kpi_management/kpi_value_writer/service/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612
--- /dev/null
+++ b/src/kpi_management/kpi_value_writer/service/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/src/kpi_manager/requirements.in b/src/kpi_management/requirements.in
similarity index 100%
rename from src/kpi_manager/requirements.in
rename to src/kpi_management/requirements.in
diff --git a/src/kpi_management/service/__init__.py b/src/kpi_management/service/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612
--- /dev/null
+++ b/src/kpi_management/service/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/src/kpi_manager/service/__main__.py b/src/kpi_management/service/__main__.py
similarity index 100%
rename from src/kpi_manager/service/__main__.py
rename to src/kpi_management/service/__main__.py
diff --git a/src/kpi_management/service/database/__init__.py b/src/kpi_management/service/database/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612
--- /dev/null
+++ b/src/kpi_management/service/database/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/src/kpi_manager/service/database/__main__.py b/src/kpi_management/service/database/__main__.py
similarity index 100%
rename from src/kpi_manager/service/database/__main__.py
rename to src/kpi_management/service/database/__main__.py
diff --git a/src/kpi_manager/tests/KPI_configs.json b/src/kpi_management/tests/KPI_configs.json
similarity index 100%
rename from src/kpi_manager/tests/KPI_configs.json
rename to src/kpi_management/tests/KPI_configs.json
diff --git a/src/kpi_management/tests/__init__.py b/src/kpi_management/tests/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612
--- /dev/null
+++ b/src/kpi_management/tests/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
diff --git a/src/kpi_manager/tests/test_kpi_composer.py b/src/kpi_management/tests/test_kpi_composer.py
similarity index 100%
rename from src/kpi_manager/tests/test_kpi_composer.py
rename to src/kpi_management/tests/test_kpi_composer.py
diff --git a/src/kpi_manager/tests/test_kpi_writer.py b/src/kpi_management/tests/test_kpi_writer.py
similarity index 100%
rename from src/kpi_manager/tests/test_kpi_writer.py
rename to src/kpi_management/tests/test_kpi_writer.py
diff --git a/src/kpi_manager/tests/test_messages.py b/src/kpi_management/tests/test_messages.py
similarity index 100%
rename from src/kpi_manager/tests/test_messages.py
rename to src/kpi_management/tests/test_messages.py
diff --git a/src/monitoring/client/MonitoringClient.py b/src/monitoring/client/MonitoringClient.py
index 493e96ca8e866ec1cf31d7d91e8cdef4afb99fbe..0486b8083a797327ab39b013667cec4b51f80cf6 100644
--- a/src/monitoring/client/MonitoringClient.py
+++ b/src/monitoring/client/MonitoringClient.py
@@ -20,7 +20,7 @@ from common.Settings import get_service_host, get_service_port_grpc
 from common.tools.client.RetryDecorator import retry, delay_exponential
 from common.tools.grpc.Tools import grpc_message_to_json_string
 from common.proto.context_pb2 import Empty
-from common.proto.kpi_manager_pb2 import KpiId, KpiDescriptor, KpiDescriptorList
+from common.proto.kpi_management_pb2 import KpiId, KpiDescriptor, KpiDescriptorList
 from common.proto.monitoring_pb2 import Kpi, MonitorKpiRequest, \
     KpiQuery, KpiList, SubsDescriptor, SubscriptionID, SubsList, \
     SubsResponse, AlarmDescriptor, AlarmID, AlarmList, AlarmResponse, AlarmSubscription, RawKpiTable