diff --git a/osm_lcm/data_utils/vnfd.py b/osm_lcm/data_utils/vnfd.py
index f312e57..16257db 100644
--- a/osm_lcm/data_utils/vnfd.py
+++ b/osm_lcm/data_utils/vnfd.py
@@ -23,7 +23,6 @@
 ##
 
 from osm_lcm.data_utils import list_utils
-from osm_lcm.lcm_utils import get_iterable
 
 
 def get_lcm_operations_configuration(vnfd):
@@ -89,26 +88,17 @@
         lambda vdu_profile: vdu_profile["id"] == vdu_profile_id)
 
 
-def get_vnf_configuration(vnfd):
-    if "vnf-configuration-id" not in vnfd.get("df")[0]:
+def get_configuration(vnfd, entity_id):
+    lcm_ops_config = vnfd.get("df")[0].get("lcm-operations-configuration")
+    if not lcm_ops_config:
         return None
-    vnf_config_id = vnfd.get("df")[0]["vnf-configuration-id"]
-    return list_utils.find_in_list(
-        vnfd.get("vnf-configuration", {}),
-        lambda vnf_config: vnf_config["id"] == vnf_config_id)
-
-
-def get_vdu_configuration(vnfd, vdu_id):
-    vdu_profile = get_vdu_profile(vnfd, vdu_id)
-    return list_utils.find_in_list(
-        vnfd.get("vdu-configuration", ()),
-        lambda vdu_configuration: vdu_configuration["id"] == vdu_profile["vdu-configuration-id"])
-
-
-def get_kdu_configuration(vnfd, kdu_name):
-    for kdu in get_iterable(vnfd, "kdu"):
-        if kdu_name == kdu["name"]:
-            return kdu.get("kdu-configuration")
+    ops_vnf = lcm_ops_config.get("operate-vnf-op-config")
+    if not ops_vnf:
+        return None
+    day12ops = ops_vnf.get("day1-2", [])
+    list_utils.find_in_list(
+        day12ops,
+        lambda configuration: configuration["id"] == entity_id)
 
 
 def get_virtual_link_profiles(vnfd):
