diff --git a/src/telemetry/backend/requirements.in b/src/telemetry/backend/requirements.in
index a9e9b0afa630f6048dcf78ea05e39facfccdd7d8..617121b4491694b208e6e6c5c63038864dc32d45 100644
--- a/src/telemetry/backend/requirements.in
+++ b/src/telemetry/backend/requirements.in
@@ -14,8 +14,10 @@
 
 anytree==2.8.0
 confluent-kafka==2.3.*
+pyang==2.6.*
+git+https://github.com/robshakir/pyangbind.git
 libyang==2.8.4
 numpy==2.0.1
 APScheduler==3.10.1
 deepdiff==6.7.*
-pygnmi==0.8.14
\ No newline at end of file
+pygnmi==0.8.14
diff --git a/src/telemetry/backend/service/ErrorMessages.py b/src/telemetry/backend/service/ErrorMessages.py
new file mode 100644
index 0000000000000000000000000000000000000000..317de8cf600b387340dfe72788c63334b5c2ba50
--- /dev/null
+++ b/src/telemetry/backend/service/ErrorMessages.py
@@ -0,0 +1,40 @@
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (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.
+
+_DEVICE_ID          = 'DeviceId({device_uuid:s})'
+_ENDPOINT_ID        = 'EndpointId({endpoint_uuid:s})'
+_KPI                = 'Kpi({kpi_uuid:s})'
+_DEVICE_ENDPOINT_ID = _DEVICE_ID + '/' + _ENDPOINT_ID
+_RESOURCE           = 'Resource({resource_data:s})'
+_RESOURCE_KEY       = 'Resource(key={resource_key:s})'
+_RESOURCE_KEY_VALUE = 'Resource(key={resource_key:s}, value={resource_value:s})'
+_SUBSCRIPTION       = 'Subscription(key={subscr_key:s}, duration={subscr_duration:s}, interval={subscr_interval:s})'
+_SAMPLE_TYPE        = 'SampleType({sample_type_id:s}/{sample_type_name:s})'
+_ERROR              = 'Error({error:s})'
+
+ERROR_MISSING_DRIVER = _DEVICE_ID + ' has not been added to this Device instance'
+ERROR_MISSING_KPI    = _KPI + ' not found'
+
+ERROR_BAD_RESOURCE   = _DEVICE_ID + ': GetConfig retrieved malformed ' + _RESOURCE
+ERROR_UNSUP_RESOURCE = _DEVICE_ID + ': GetConfig retrieved unsupported ' + _RESOURCE
+
+ERROR_GET            = _DEVICE_ID + ': Unable to Get ' + _RESOURCE_KEY + '; ' + _ERROR
+ERROR_GET_INIT       = _DEVICE_ID + ': Unable to Get Initial ' + _RESOURCE_KEY + '; ' + _ERROR
+ERROR_DELETE         = _DEVICE_ID + ': Unable to Delete ' + _RESOURCE_KEY_VALUE + '; ' + _ERROR
+ERROR_SET            = _DEVICE_ID + ': Unable to Set ' + _RESOURCE_KEY_VALUE + '; ' + _ERROR
+
+ERROR_SAMPLETYPE     = _DEVICE_ENDPOINT_ID + ': ' + _SAMPLE_TYPE + ' not supported'
+
+ERROR_SUBSCRIBE      = _DEVICE_ID + ': Unable to Subscribe ' + _SUBSCRIPTION + '; ' + _ERROR
+ERROR_UNSUBSCRIBE    = _DEVICE_ID + ': Unable to Unsubscribe ' + _SUBSCRIPTION + '; ' + _ERROR
diff --git a/src/telemetry/backend/service/collectors/__init__.py b/src/telemetry/backend/service/collectors/__init__.py
index 2d19a10a623c3c2c68e2d219b4cf3ecfe131ca28..084207f5107322636ef0bee4ff1b7ed3e5efc6df 100644
--- a/src/telemetry/backend/service/collectors/__init__.py
+++ b/src/telemetry/backend/service/collectors/__init__.py
@@ -25,7 +25,6 @@ DRIVERS.append(
         # TODO: multi-filter is not working
         {
             FilterFieldEnum.DEVICE_TYPE: [
-                DeviceTypeEnum.EMULATED_P4_SWITCH,
                 DeviceTypeEnum.EMULATED_PACKET_ROUTER,
                 DeviceTypeEnum.EMULATED_PACKET_SWITCH,
             ],
diff --git a/src/telemetry/backend/service/collectors/gnmi_openconfig/clone-yang-models.sh b/src/telemetry/backend/service/collectors/gnmi_openconfig/clone-yang-models.sh
index eb97607847387beb2a1cb7cbe3f72fd29afed56e..10029b405e3f47f53df013a47ba3650f7fc027de 100755
--- a/src/telemetry/backend/service/collectors/gnmi_openconfig/clone-yang-models.sh
+++ b/src/telemetry/backend/service/collectors/gnmi_openconfig/clone-yang-models.sh
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-BASE_PATH=~/tfs-ctrl/src/telemetry/backend/collectors/gnmi_openconfig
+BASE_PATH=~/tfs-ctrl/src/telemetry/backend/service/collectors/gnmi_openconfig
 GIT_BASE_PATH=${BASE_PATH}/git/openconfig
 
 rm -rf ${GIT_BASE_PATH}
diff --git a/src/telemetry/backend/service/collectors/gnmi_openconfig/handlers/YangHandler.py b/src/telemetry/backend/service/collectors/gnmi_openconfig/handlers/YangHandler.py
index e7cff19eb901be4a85d4e31f8de9070fe5a7c277..15d9afac44af047f21a11a5241227889125ec984 100644
--- a/src/telemetry/backend/service/collectors/gnmi_openconfig/handlers/YangHandler.py
+++ b/src/telemetry/backend/service/collectors/gnmi_openconfig/handlers/YangHandler.py
@@ -42,10 +42,11 @@ YANG_MODULES = [
     'openconfig-types',
     'openconfig-policy-types',
     'openconfig-mpls-types',
+    'openconfig-ospf-types',
     'openconfig-network-instance-types',
     'openconfig-network-instance',
 
-    'openconfig-platform',
+    # 'openconfig-platform',
     'openconfig-platform-controller-card',
     'openconfig-platform-cpu',
     'openconfig-platform-ext',
diff --git a/src/telemetry/backend/service/collectors/gnmi_openconfig/handlers/__init__.py b/src/telemetry/backend/service/collectors/gnmi_openconfig/handlers/__init__.py
index 0c803bb161d1303399cf9a3235e0b4874435922b..e230e12344c30c5596e7725c38122ccd4ff00177 100644
--- a/src/telemetry/backend/service/collectors/gnmi_openconfig/handlers/__init__.py
+++ b/src/telemetry/backend/service/collectors/gnmi_openconfig/handlers/__init__.py
@@ -15,16 +15,16 @@
 import logging
 from typing import Any, Dict, List, Optional, Tuple, Union
 from telemetry.backend.service.collector_api._Collector import RESOURCE_ENDPOINTS, RESOURCE_INTERFACES, RESOURCE_NETWORK_INSTANCES
-from ._Handler import _Handler
-from .Component import ComponentHandler
-from .Interface import InterfaceHandler
-from .InterfaceCounter import InterfaceCounterHandler
-from .NetworkInstance import NetworkInstanceHandler
-from .NetworkInstanceInterface import NetworkInstanceInterfaceHandler
-from .NetworkInstanceProtocol import NetworkInstanceProtocolHandler
+from ._Handler                   import _Handler
+from .Component                  import ComponentHandler
+from .Interface                  import InterfaceHandler
+from .InterfaceCounter           import InterfaceCounterHandler
+from .NetworkInstance            import NetworkInstanceHandler
+from .NetworkInstanceInterface   import NetworkInstanceInterfaceHandler
+from .NetworkInstanceProtocol    import NetworkInstanceProtocolHandler
 from .NetworkInstanceStaticRoute import NetworkInstanceStaticRouteHandler
-from .Tools import get_schema
-from .YangHandler import YangHandler
+from .Tools                      import get_schema
+from .YangHandler                import YangHandler
 
 LOGGER = logging.getLogger(__name__)
 
diff --git a/src/telemetry/backend/tests/gnmi_openconfig/messages_gnmi-openconfig.py b/src/telemetry/backend/tests/gnmi_openconfig/messages_gnmi_openconfig.py
similarity index 92%
rename from src/telemetry/backend/tests/gnmi_openconfig/messages_gnmi-openconfig.py
rename to src/telemetry/backend/tests/gnmi_openconfig/messages_gnmi_openconfig.py
index 99ea4bfbb96099620b296bc46f0f0660170e0553..09bc9088abe13fcc3b3d2b18c74c213bf6422ceb 100644
--- a/src/telemetry/backend/tests/gnmi_openconfig/messages_gnmi-openconfig.py
+++ b/src/telemetry/backend/tests/gnmi_openconfig/messages_gnmi_openconfig.py
@@ -22,7 +22,7 @@ def _create_kpi_pkt_recevied(
     device_uuid     : uuid.UUID     = uuid.UUID("a8695f53-ba2e-57bd-b586-edf2b5e054b1"),
     endpoint_uuid   : uuid.UUID     = uuid.UUID("c51c2784-0377-5851-993b-46804c89cfc9")
     ):
-    _create_kpi_descriptor(
+    return _create_kpi_descriptor(
         descriptor_name = descriptor_name,
         sample_type     = sample_type,
         device_uuid     = device_uuid,
@@ -35,7 +35,7 @@ def _create_kpi_pkt_transmitted(
     device_uuid     : uuid.UUID     = uuid.UUID("a8695f53-ba2e-57bd-b586-edf2b5e054b1"),
     endpoint_uuid   : uuid.UUID     = uuid.UUID("c51c2784-0377-5851-993b-46804c89cfc9")
     ):
-    _create_kpi_descriptor(
+    return _create_kpi_descriptor(
         descriptor_name = descriptor_name,
         sample_type     = sample_type,
         device_uuid     = device_uuid,
@@ -54,10 +54,10 @@ def _create_kpi_descriptor(
     # _create_kpi_request.kpi_id.kpi_id.uuid                 = "f974b6cc-095f-4767-b8c1-3457b383fb99"
     _create_kpi_request.kpi_description                    = descriptor_name
     _create_kpi_request.kpi_sample_type                    = sample_type
-    _create_kpi_request.device_id.device_uuid.uuid         = device_uuid
+    _create_kpi_request.device_id.device_uuid.uuid         = str(device_uuid)
     _create_kpi_request.service_id.service_uuid.uuid       = 'SERVICE_ID_2'
     _create_kpi_request.slice_id.slice_uuid.uuid           = 'SLICE_1'
-    _create_kpi_request.endpoint_id.endpoint_uuid.uuid     = endpoint_uuid
+    _create_kpi_request.endpoint_id.endpoint_uuid.uuid     = str(endpoint_uuid)
     _create_kpi_request.connection_id.connection_uuid.uuid = 'CONN_3' 
     _create_kpi_request.link_id.link_uuid.uuid             = 'LINK_5' 
     return _create_kpi_request
diff --git a/src/telemetry/backend/tests/gnmi_openconfig/test_gnmi_openconfig_collector.py b/src/telemetry/backend/tests/gnmi_openconfig/test_gnmi_openconfig_collector.py
index c29798ccd8354479867dc50d17928048f00bd696..8f9061bb250c5c9c2f48956945bd7b0ae658a02b 100644
--- a/src/telemetry/backend/tests/gnmi_openconfig/test_gnmi_openconfig_collector.py
+++ b/src/telemetry/backend/tests/gnmi_openconfig/test_gnmi_openconfig_collector.py
@@ -23,14 +23,15 @@ from common.proto.context_pb2 import EndPointId, DeviceId, TopologyId, ContextId
 from src.telemetry.backend.service.collectors.gnmi_openconfig.GnmiOpenConfigCollector import GnmiOpenConfigCollector
 from .storage.Storage import Storage
 from common.proto.kpi_manager_pb2 import KpiDescriptor
-from device.service.monitoring.ResourceKeyMapper import ResourceKeyMapper
 
 from telemetry.backend.service.collector_api._Collector import RESOURCE_ENDPOINTS, RESOURCE_INTERFACES, RESOURCE_NETWORK_INSTANCES
 from .tools.manage_config import (
     check_config_endpoints, check_config_interfaces, check_config_network_instances, get_config
 )
-# from .messages_gnmi-openconfig import _create_kpi_pkt_recevied, _create_kpi_pkt_transmitted
 
+from .messages_gnmi_openconfig import (
+    _create_kpi_pkt_recevied, _create_kpi_pkt_transmitted
+)
 
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.DEBUG)