diff --git a/docs/source/conf.py b/docs/source/conf.py
index c8e8fce6579b47a3e46e46e1f852fb9bd47b3e0b..ab4270911b795f687c2ecad789d884ef3bb1664a 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -19,6 +19,7 @@ import os
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 sys.path.insert(0, os.path.abspath('../../skabase'))
+
 # -- General configuration ------------------------------------------------
 
 # If your documentation needs a minimal Sphinx version, state it here.
diff --git a/skabase/SKABaseDevice/SKABaseDevice/SKABaseDevice.py b/skabase/SKABaseDevice/SKABaseDevice/SKABaseDevice.py
index 1e54d5a93376ef50ac34457bddf358487800e220..a59eb01b4ca6fb441e631d0ee798b48483c9b741 100644
--- a/skabase/SKABaseDevice/SKABaseDevice/SKABaseDevice.py
+++ b/skabase/SKABaseDevice/SKABaseDevice/SKABaseDevice.py
@@ -31,7 +31,9 @@ from skabase.SKABaseDevice import release
 
 from skabase.faults import GroupDefinitionsError
 
-MODULE_LOGGER = logging.getLogger(__name__)
+# Initialize logging
+logging.basicConfig()
+# MODULE_LOGGER = logging.getLogger(__name__)
 
 # PROTECTED REGION END #    //  SKABaseDevice.additionnal_import
 
@@ -44,6 +46,14 @@ class SKABaseDevice(Device):
     """
     __metaclass__ = DeviceMeta
     # PROTECTED REGION ID(SKABaseDevice.class_variable) ENABLED START #
+
+    global logger
+    logger = logging.getLogger(__name__)
+    syslogs = SysLogHandler(address='/dev/log', facility='syslog')
+    formatter = logging.Formatter('%(name)s: %(levelname)s %(module)s %(message)r')
+    syslogs.setFormatter(formatter)
+    logger.addHandler(syslogs)
+
     def _get_device_json(self, args_dict):
         """
         Returns device configuration in JSON format.
@@ -67,7 +77,7 @@ class SKABaseDevice(Device):
             return device_dict
 
         except Exception as ex:
-            MODULE_LOGGER.fatal(str(ex), exc_info=True)
+            logger.fatal(str(ex), exc_info=True)
             raise
 
     def _parse_argin(self, argin, defaults=None, required=None):
@@ -83,7 +93,7 @@ class SKABaseDevice(Device):
             if argin:
                 args_dict.update(json.loads(argin))
         except ValueError as ex:
-            MODULE_LOGGER.fatal(str(ex), exc_info=True)
+            logger.fatal(str(ex), exc_info=True)
             raise
 
         missing_args = []
@@ -136,16 +146,16 @@ class SKABaseDevice(Device):
             try:
                 attr_dict['min_value'] = attrib.get_min_value()
             except AttributeError as attr_err:
-                MODULE_LOGGER.info(str(attr_err), exc_info=True)
+                logger.info(str(attr_err), exc_info=True)
             except DevFailed as derr:
-                MODULE_LOGGER.info(str(derr), exc_info=True)
+                logger.info(str(derr), exc_info=True)
 
             try:
                 attr_dict['max_value'] = attrib.get_max_value()
             except AttributeError as attr_err:
-                MODULE_LOGGER.info(str(attr_err), exc_info=True)
+                logger.info(str(attr_err), exc_info=True)
             except DevFailed as derr:
-                MODULE_LOGGER.info(str(derr), exc_info=True)
+                logger.info(str(derr), exc_info=True)
 
             attr_dict['readonly'] = (
                 attrib.get_writable() not in [AttrWriteType.READ_WRITE,
@@ -186,6 +196,60 @@ class SKABaseDevice(Device):
 
         return attributes
 
+    def dev_logging(self, dev_log_msg, dev_log_level):
+        # Element Level Logging
+        if self._element_logging_level >= int(tango.LogLevel.LOG_FATAL) and dev_log_level == int(
+                tango.LogLevel.LOG_FATAL):
+            self.fatal_stream(dev_log_msg)
+        elif self._element_logging_level >= int(tango.LogLevel.LOG_ERROR) and dev_log_level == int(
+                tango.LogLevel.LOG_ERROR):
+            self.error_stream(dev_log_msg)
+        elif self._element_logging_level >= int(tango.LogLevel.LOG_WARN) and dev_log_level == int(
+                tango.LogLevel.LOG_WARN):
+            self.warn_stream(dev_log_msg)
+        elif self._element_logging_level >= int(tango.LogLevel.LOG_INFO) and dev_log_level == int(
+                tango.LogLevel.LOG_INFO):
+            self.info_stream(dev_log_msg)
+        elif self._element_logging_level >= int(tango.LogLevel.LOG_DEBUG) and dev_log_level == int(
+                tango.LogLevel.LOG_DEBUG):
+            self.debug_stream(dev_log_msg)
+
+        # Central Level Logging
+        if self._central_logging_level >= int(tango.LogLevel.LOG_FATAL) and dev_log_level == int(
+                tango.LogLevel.LOG_FATAL):
+            self.fatal_stream(dev_log_msg)
+        elif self._central_logging_level >= int(tango.LogLevel.LOG_ERROR) and dev_log_level == int(
+                tango.LogLevel.LOG_ERROR):
+            self.error_stream(dev_log_msg)
+        elif self._central_logging_level >= int(tango.LogLevel.LOG_WARN) and dev_log_level == int(
+                tango.LogLevel.LOG_WARN):
+            self.warn_stream(dev_log_msg)
+        elif self._central_logging_level >= int(tango.LogLevel.LOG_INFO) and dev_log_level == int(
+                tango.LogLevel.LOG_INFO):
+            self.info_stream(dev_log_msg)
+        elif self._central_logging_level >= int(tango.LogLevel.LOG_DEBUG) and dev_log_level == int(
+                tango.LogLevel.LOG_DEBUG):
+            self.debug_stream(dev_log_msg)
+
+        # Storage Level Logging
+        if self._storage_logging_level >= int(tango.LogLevel.LOG_FATAL) and dev_log_level == int(
+                tango.LogLevel.LOG_FATAL):
+            logger.fatal(dev_log_msg)
+        elif self._storage_logging_level >= int(tango.LogLevel.LOG_ERROR) and dev_log_level == int(
+                tango.LogLevel.LOG_ERROR):
+            logger.error(dev_log_msg)
+        elif self._storage_logging_level >= int(tango.LogLevel.LOG_WARN) and dev_log_level == int(
+                tango.LogLevel.LOG_WARN):
+            logger.warn(dev_log_msg)
+        elif self._storage_logging_level >= int(tango.LogLevel.LOG_INFO) and dev_log_level == int(
+                tango.LogLevel.LOG_INFO):
+            logger.info(dev_log_msg)
+        elif self._storage_logging_level >= int(tango.LogLevel.LOG_DEBUG) and dev_log_level == int(
+                tango.LogLevel.LOG_DEBUG):
+            logger.debug(dev_log_msg)
+        else:
+            pass
+
 
     # PROTECTED REGION END #    //  SKABaseDevice.class_variable
 
@@ -438,6 +502,18 @@ class SKABaseDevice(Device):
         :return:
         """
         self._storage_logging_level = value
+        if self._storage_logging_level == int(tango.LogLevel.LOG_FATAL):
+            logger.setLevel(logging.FATAL)
+        elif self._storage_logging_level == int(tango.LogLevel.LOG_ERROR):
+            logger.setLevel(logging.ERROR)
+        elif self._storage_logging_level == int(tango.LogLevel.LOG_WARN):
+            logger.setLevel(logging.WARNING)
+        elif self._storage_logging_level == int(tango.LogLevel.LOG_INFO):
+            logger.setLevel(logging.INFO)
+        elif self._storage_logging_level == int(tango.LogLevel.LOG_DEBUG):
+            logger.setLevel(logging.DEBUG)
+        else:
+            logger.setLevel(logging.DEBUG)
         # PROTECTED REGION END #    //  SKABaseDevice.storageLoggingLevel_write
 
     def read_healthState(self):
diff --git a/skabase/SKALogger/SKALogger/SKALogger.py b/skabase/SKALogger/SKALogger/SKALogger.py
index 4df50d62ff1c7986a89617189119da29903f07b1..cfadfc6aa377d2c79b8555d647d2e8c084e1be2e 100644
--- a/skabase/SKALogger/SKALogger/SKALogger.py
+++ b/skabase/SKALogger/SKALogger/SKALogger.py
@@ -33,7 +33,6 @@ formatter = logging.Formatter('%(name)s: %(levelname)s %(module)s %(message)r')
 syslog.setFormatter(formatter)
 logger.addHandler(syslog)
 
-
 # PROTECTED REGION END #    //  SKALogger.additionnal_import
 
 __all__ = ["SKALogger", "main"]
@@ -41,7 +40,6 @@ __all__ = ["SKALogger", "main"]
 
 class SKALogger(SKABaseDevice):
     """
-
     A generic base device for Logging for SKA.
     """
     __metaclass__ = DeviceMeta
@@ -174,6 +172,8 @@ class SKALogger(SKABaseDevice):
         A method to set Central logging level of source device.
         """
         central_logging_level = argin[0][:]
+        #To convert the type of log level from numpy.ndarray to list. Needs to fix in PyTango.
+        central_logging_level = central_logging_level.tolist()
         central_logging_device = argin[1][:]
         i = 0
         while i < len(central_logging_level[:]):
@@ -196,6 +196,8 @@ class SKALogger(SKABaseDevice):
         A method to set Element logging level of source device.
         """
         element_logging_level = argin[0][:]
+        #To convert the type of log level from numpy.ndarray to list. Needs to fix in PyTango.
+        element_logging_level = element_logging_level.tolist()
         element_logging_device = argin[1][:]
         i = 0
         while i < len(element_logging_level[:]):
@@ -218,6 +220,8 @@ class SKALogger(SKABaseDevice):
         A method to set Storage logging level of source device.
         """
         storage_logging_level = argin[0][:]
+        #To convert the type of log level from numpy.ndarray to list. Needs to fix in PyTango.
+        storage_logging_level = storage_logging_level.tolist()
         storage_logging_device = argin[1][:]
         i = 0
         while i < len(storage_logging_level[:]):
diff --git a/skabase/SKALogger/SKALogger/release.py b/skabase/SKALogger/SKALogger/release.py
index 70ffafba47ac96afc3ac3c2c5d5b31944329a71b..ebb2cd7d5be19c1cf17f6075fcdfbee46659966b 100644
--- a/skabase/SKALogger/SKALogger/release.py
+++ b/skabase/SKALogger/SKALogger/release.py
@@ -11,8 +11,8 @@ name = """tangods-skalogger"""
 version = "1.0.0"
 version_info = version.split(".")
 description = """A generic base device for Logging for SKA."""
-author = "cam"
-author_email = "cam at ska.ac.za"
+author = "lochanb.ska"
+author_email = "lochanb.ska at gmail.com"
 license = """BSD-3-Clause"""
 url = """www.tango-controls.org"""
 copyright = """"""
diff --git a/skabase/SKASubarray/SKASubarray/SKASubarray.py b/skabase/SKASubarray/SKASubarray/SKASubarray.py
index a52e11b80b31b820bf4d757a780bbe090d557ffe..ad47cbca1f55bc7af56a3390946c2f7be373897d 100644
--- a/skabase/SKASubarray/SKASubarray/SKASubarray.py
+++ b/skabase/SKASubarray/SKASubarray/SKASubarray.py
@@ -411,6 +411,7 @@ class SKASubarray(SKAObsDevice):
     def EndSB(self):
         # PROTECTED REGION ID(SKASubarray.EndSB) ENABLED START #
         """Change obsState to IDLE."""
+        pass
         # PROTECTED REGION END #    //  SKASubarray.EndSB
 
     @command(
diff --git a/skabase/SKATestDevice/SKATestDevice.xmi b/skabase/SKATestDevice/SKATestDevice.xmi
index 1e22dab50b2b84e88520e68001ac694a9f566c2d..7f3f3bb59877e1144c8984012075370374795d92 100644
--- a/skabase/SKATestDevice/SKATestDevice.xmi
+++ b/skabase/SKATestDevice/SKATestDevice.xmi
@@ -145,20 +145,21 @@
       <enumLabels>ABORTED</enumLabels>
       <enumLabels>FAULT</enumLabels>
     </attributes>
-    <attributes name="obsMode" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
+    <attributes name="obsMode" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" allocReadMember="true" isDynamic="false">
       <dataType xsi:type="pogoDsl:EnumType"/>
+      <changeEvent fire="false" libCheckCriteria="false"/>
+      <archiveEvent fire="false" libCheckCriteria="false"/>
       <dataReadyEvent fire="false" libCheckCriteria="true"/>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="Observing Mode" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
       <enumLabels>IDLE</enumLabels>
-      <enumLabels>IMG_CONTINUUM</enumLabels>
-      <enumLabels>IMG_SPECTRAL_LINE</enumLabels>
-      <enumLabels>IMG_ZOOM</enumLabels>
-      <enumLabels>PULSAR_SEARCH</enumLabels>
-      <enumLabels>TRANSIENT_SEARCH_FAST</enumLabels>
-      <enumLabels>TRANSIENT_SEARCH_SLOW</enumLabels>
-      <enumLabels>PULSAR_TIMING</enumLabels>
+      <enumLabels>IMAGING</enumLabels>
+      <enumLabels>PULSAR-SEARCH</enumLabels>
+      <enumLabels>PULSAR-TIMING</enumLabels>
+      <enumLabels>DYNAMIC-SPECTRUM</enumLabels>
+      <enumLabels>TRANSIENT-SEARCH</enumLabels>
       <enumLabels>VLBI</enumLabels>
+      <enumLabels>CALIBRATION</enumLabels>
     </attributes>
     <attributes name="configurationProgress" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
       <dataType xsi:type="pogoDsl:UShortType"/>
diff --git a/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py b/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py
index 9f5ba088118a548bb0c8418be9c4972ff225d2f6..71017f7bd14fc04754336005a83d7c1bd6563925 100644
--- a/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py
+++ b/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py
@@ -27,13 +27,6 @@ from skabase.utils import (exception_manager, convert_api_value, coerce_value)
 
 __all__ = ["SKATestDevice", "main"]
 
-logging.basicConfig()
-logger = logging.getLogger("SKATestDevice")
-syslogs = SysLogHandler(address='/dev/log', facility='syslog')
-formatter = logging.Formatter('%(name)s: %(levelname)s %(module)s %(message)r')
-syslogs.setFormatter(formatter)
-logger.addHandler(syslogs)
-
 
 class SKATestDevice(SKABaseDevice):
     """
@@ -61,9 +54,8 @@ class SKATestDevice(SKABaseDevice):
     obsMode = attribute(
         dtype='DevEnum',
         doc="Observing Mode",
-        enum_labels=["IDLE", "IMG_CONTINUUM", "IMG_SPECTRAL_LINE", "IMG_ZOOM",
-                     "PULSAR_SEARCH", "TRANSIENT_SEARCH_FAST", "TRANSIENT_SEARCH_SLOW",
-                     "PULSAR_TIMING", "VLBI", ],
+        enum_labels=["IDLE", "IMAGING", "PULSAR-SEARCH", "PULSAR-TIMING", "DYNAMIC-SPECTRUM",
+                     "TRANSIENT-SEARCH", "VLBI", "CALIBRATION", ],
     )
 
     configurationProgress = attribute(
@@ -132,22 +124,6 @@ class SKATestDevice(SKABaseDevice):
         return 0
         # PROTECTED REGION END #    //  SKATestDevice.configurationDelayExpected_read
 
-    def write_storageLoggingLevel(self, value):
-        """Sets the Storage Logging Level of the device"""
-        self._storage_logging_level = value
-        if self._storage_logging_level == int(tango.LogLevel.LOG_FATAL):
-            logger.setLevel(logging.FATAL)
-        elif self._storage_logging_level == int(tango.LogLevel.LOG_ERROR):
-            logger.setLevel(logging.ERROR)
-        elif self._storage_logging_level == int(tango.LogLevel.LOG_WARN):
-            logger.setLevel(logging.WARNING)
-        elif self._storage_logging_level == int(tango.LogLevel.LOG_INFO):
-            logger.setLevel(logging.INFO)
-        elif self._storage_logging_level == int(tango.LogLevel.LOG_DEBUG):
-            logger.setLevel(logging.DEBUG)
-        else:
-            logger.setLevel(logging.DEBUG)
-
     # --------
     # Commands
     # --------
@@ -200,60 +176,6 @@ class SKATestDevice(SKABaseDevice):
         return argout
         # PROTECTED REGION END #    //  SKATestDevice.RunGroupCommand
 
-    def dev_logging(self, dev_log_msg, dev_log_level):
-        # Element Level Logging
-        if self._element_logging_level >= int(tango.LogLevel.LOG_FATAL) and dev_log_level == int(
-                tango.LogLevel.LOG_FATAL):
-            self.fatal_stream(dev_log_msg)
-        elif self._element_logging_level >= int(tango.LogLevel.LOG_ERROR) and dev_log_level == int(
-                tango.LogLevel.LOG_ERROR):
-            self.error_stream(dev_log_msg)
-        elif self._element_logging_level >= int(tango.LogLevel.LOG_WARN) and dev_log_level == int(
-                tango.LogLevel.LOG_WARN):
-            self.warn_stream(dev_log_msg)
-        elif self._element_logging_level >= int(tango.LogLevel.LOG_INFO) and dev_log_level == int(
-                tango.LogLevel.LOG_INFO):
-            self.info_stream(dev_log_msg)
-        elif self._element_logging_level >= int(tango.LogLevel.LOG_DEBUG) and dev_log_level == int(
-                tango.LogLevel.LOG_DEBUG):
-            self.debug_stream(dev_log_msg)
-
-        # Central Level Logging
-        if self._central_logging_level >= int(tango.LogLevel.LOG_FATAL) and dev_log_level == int(
-                tango.LogLevel.LOG_FATAL):
-            self.fatal_stream(dev_log_msg)
-        elif self._central_logging_level >= int(tango.LogLevel.LOG_ERROR) and dev_log_level == int(
-                tango.LogLevel.LOG_ERROR):
-            self.error_stream(dev_log_msg)
-        elif self._central_logging_level >= int(tango.LogLevel.LOG_WARN) and dev_log_level == int(
-                tango.LogLevel.LOG_WARN):
-            self.warn_stream(dev_log_msg)
-        elif self._central_logging_level >= int(tango.LogLevel.LOG_INFO) and dev_log_level == int(
-                tango.LogLevel.LOG_INFO):
-            self.info_stream(dev_log_msg)
-        elif self._central_logging_level >= int(tango.LogLevel.LOG_DEBUG) and dev_log_level == int(
-                tango.LogLevel.LOG_DEBUG):
-            self.debug_stream(dev_log_msg)
-
-        # Storage Level Logging
-        if self._storage_logging_level >= int(tango.LogLevel.LOG_FATAL) and dev_log_level == int(
-                tango.LogLevel.LOG_FATAL):
-            logger.fatal(dev_log_msg)
-        elif self._storage_logging_level >= int(tango.LogLevel.LOG_ERROR) and dev_log_level == int(
-                tango.LogLevel.LOG_ERROR):
-            logger.error(dev_log_msg)
-        elif self._storage_logging_level >= int(tango.LogLevel.LOG_WARN) and dev_log_level == int(
-                tango.LogLevel.LOG_WARN):
-            logger.warn(dev_log_msg)
-        elif self._storage_logging_level >= int(tango.LogLevel.LOG_INFO) and dev_log_level == int(
-                tango.LogLevel.LOG_INFO):
-            logger.info(dev_log_msg)
-        elif self._storage_logging_level >= int(tango.LogLevel.LOG_DEBUG) and dev_log_level == int(
-                tango.LogLevel.LOG_DEBUG):
-            logger.debug(dev_log_msg)
-        else:
-            pass
-
     @command(
     )
     @DebugIt()