diff --git a/osm_lcm/odu_workflows.py b/osm_lcm/odu_workflows.py
index 92cfc43..9516a70 100644
--- a/osm_lcm/odu_workflows.py
+++ b/osm_lcm/odu_workflows.py
@@ -17,9 +17,25 @@
 import logging
 from osm_lcm.lcm_utils import LcmBase
 from osm_lcm.n2vc import kubectl
+from osm_lcm.odu_libs import (
+    vim_mgmt as odu_vim_mgmt,
+    cluster_mgmt as odu_cluster_mgmt,
+    ksu as odu_ksu,
+    oka as odu_oka,
+    profiles as odu_profiles,
+    workflows,
+    render as odu_render,
+    common as odu_common,
+)
 
 
 class OduWorkflow(LcmBase):
+    """
+    Class to manage the workflows for the OSM Deployment Unit (ODU).
+    This class is responsible for executing various workflows related to
+    cluster management, profile management, and other operations.
+    """
+
     def __init__(self, msg, lcm_tasks, config):
         """
         Init, Connect to database, filesystem storage, and messaging
@@ -126,61 +142,49 @@
         return self._kubeconfig
 
     # Imported methods
-    from osm_lcm.odu_libs.vim_mgmt import (
-        create_cloud_credentials,
-        update_cloud_credentials,
-        delete_cloud_credentials,
-        clean_items_cloud_credentials_create,
-        clean_items_cloud_credentials_update,
+    create_cloud_credentials = odu_vim_mgmt.create_cloud_credentials
+    update_cloud_credentials = odu_vim_mgmt.update_cloud_credentials
+    delete_cloud_credentials = odu_vim_mgmt.delete_cloud_credentials
+    clean_items_cloud_credentials_create = (
+        odu_vim_mgmt.clean_items_cloud_credentials_create
     )
-    from osm_lcm.odu_libs.cluster_mgmt import (
-        create_cluster,
-        update_cluster,
-        delete_cluster,
-        register_cluster,
-        deregister_cluster,
-        clean_items_cluster_create,
-        clean_items_cluster_update,
-        clean_items_cluster_register,
-        clean_items_cluster_deregister,
-        get_cluster_credentials,
+    clean_items_cloud_credentials_update = (
+        odu_vim_mgmt.clean_items_cloud_credentials_update
     )
-    from osm_lcm.odu_libs.ksu import (
-        create_ksus,
-        update_ksus,
-        delete_ksus,
-        clone_ksu,
-        move_ksu,
-        clean_items_ksu_create,
-        clean_items_ksu_update,
-        clean_items_ksu_delete,
-    )
-    from osm_lcm.odu_libs.oka import (
-        create_oka,
-        update_oka,
-        delete_oka,
-        clean_items_oka_create,
-        clean_items_oka_update,
-        clean_items_oka_delete,
-    )
-    from osm_lcm.odu_libs.profiles import (
-        create_profile,
-        delete_profile,
-        attach_profile_to_cluster,
-        detach_profile_from_cluster,
-    )
-    from osm_lcm.odu_libs.workflows import (
-        check_workflow_status,
-        readiness_loop,
-    )
-    from osm_lcm.odu_libs.render import (
-        render_jinja_template,
-        render_yaml_template,
-    )
-    from osm_lcm.odu_libs.common import (
-        create_secret,
-        delete_secret,
-    )
+    create_cluster = odu_cluster_mgmt.create_cluster
+    update_cluster = odu_cluster_mgmt.update_cluster
+    delete_cluster = odu_cluster_mgmt.delete_cluster
+    register_cluster = odu_cluster_mgmt.register_cluster
+    deregister_cluster = odu_cluster_mgmt.deregister_cluster
+    clean_items_cluster_create = odu_cluster_mgmt.clean_items_cluster_create
+    clean_items_cluster_update = odu_cluster_mgmt.clean_items_cluster_update
+    clean_items_cluster_register = odu_cluster_mgmt.clean_items_cluster_register
+    clean_items_cluster_deregister = odu_cluster_mgmt.clean_items_cluster_deregister
+    get_cluster_credentials = odu_cluster_mgmt.get_cluster_credentials
+    create_ksus = odu_ksu.create_ksus
+    update_ksus = odu_ksu.update_ksus
+    delete_ksus = odu_ksu.delete_ksus
+    clone_ksu = odu_ksu.clone_ksu
+    move_ksu = odu_ksu.move_ksu
+    clean_items_ksu_create = odu_ksu.clean_items_ksu_create
+    clean_items_ksu_update = odu_ksu.clean_items_ksu_update
+    clean_items_ksu_delete = odu_ksu.clean_items_ksu_delete
+    create_oka = odu_oka.create_oka
+    update_oka = odu_oka.update_oka
+    delete_oka = odu_oka.delete_oka
+    clean_items_oka_create = odu_oka.clean_items_oka_create
+    clean_items_oka_update = odu_oka.clean_items_oka_update
+    clean_items_oka_delete = odu_oka.clean_items_oka_delete
+    create_profile = odu_profiles.create_profile
+    delete_profile = odu_profiles.delete_profile
+    attach_profile_to_cluster = odu_profiles.attach_profile_to_cluster
+    detach_profile_from_cluster = odu_profiles.detach_profile_from_cluster
+    check_workflow_status = workflows.check_workflow_status
+    readiness_loop = workflows.readiness_loop
+    render_jinja_template = odu_render.render_jinja_template
+    render_yaml_template = odu_render.render_yaml_template
+    create_secret = odu_common.create_secret
+    delete_secret = odu_common.delete_secret
 
     async def launch_workflow(self, key, op_id, op_params, content):
         self.logger.info(
