diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py
index 6c52344f68d17ba9fa48c1ac1180494a18f60bc2..3c4fc5f1c11a0ba64ae7d67732a11555be665feb 100644
--- a/ckanext/odsh/plugin.py
+++ b/ckanext/odsh/plugin.py
@@ -223,6 +223,18 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
                 toolkit.get_converter('convert_from_extras'),
                 toolkit.get_validator('ignore_missing')
             ],
+            'reference': [
+                toolkit.get_converter('convert_from_extras'),
+                toolkit.get_validator('ignore_missing')
+            ],
+            'hvdCategory': [
+                toolkit.get_converter('convert_from_extras'),
+                toolkit.get_validator('ignore_missing')
+            ],
+            'applicableLegislation': [
+                toolkit.get_converter('convert_from_extras'),
+                toolkit.get_validator('ignore_missing')
+            ],
         })
         return schema
 
diff --git a/ckanext/odsh/profiles/odsh_dcat_de_profile.py b/ckanext/odsh/profiles/odsh_dcat_de_profile.py
index 1910368cbe00d9b1620a2e58d5a2d0348500bde4..14ef3ef5ace7c9371020cbdeb9ef83abad289ca7 100644
--- a/ckanext/odsh/profiles/odsh_dcat_de_profile.py
+++ b/ckanext/odsh/profiles/odsh_dcat_de_profile.py
@@ -11,10 +11,11 @@ from ckanext.dcatde.profiles import DCATdeProfile, DCATDE, DCAT, DCATDE_1_0, DCA
 
 import ckanext.odsh.helpers as helpers_odsh
 import ckanext.odsh.collection.helpers as helpers_collection
-
+import ast
 
 DCT = rdflib.namespace.Namespace("http://purl.org/dc/terms/")
 DCAT = rdflib.namespace.Namespace("http://www.w3.org/ns/dcat#")
+DCATAP = rdflib.namespace.Namespace("http://data.europa.eu/r5r/")
 DCATDE_1_0_2 = rdflib.namespace.Namespace("http://dcat-ap.de/def/dcatde/1.0.2/")
 ADMS = rdflib.namespace.Namespace("http://www.w3.org/ns/adms#")
 
@@ -94,8 +95,8 @@ class ODSHDCATdeProfile(DCATdeProfile):
         self._add_type(dataset_dict, dataset_ref)
         self._add_modified_and_issued(dataset_dict, dataset_ref)
         self._add_extra_field(dataset_dict, dataset_ref, 'reference', DCT.references)
-        self._add_extra_field(dataset_dict, dataset_ref, 'applicableLegislation', DCAT.applicableLegislation)
-        self._add_extra_field(dataset_dict, dataset_ref, 'hvdCategory', DCAT.hvdCategory)
+        self._add_extra_field(dataset_dict, dataset_ref, 'applicableLegislation', DCATAP.applicableLegislation)
+        self._add_extra_field(dataset_dict, dataset_ref, 'hvdCategory', DCATAP.hvdCategory)
         self._add_version(dataset_dict, dataset_ref)
         if self._is_dataset_collection(dataset_dict):
             self._remove_predefined_collection_members()
@@ -126,10 +127,26 @@ class ODSHDCATdeProfile(DCATdeProfile):
                 )
 
     def _add_extra_field(self, dataset_dict, dataset_ref, field_name, dcat_property):
-        uri = helpers_odsh.odsh_extract_value_from_extras(dataset_dict.get('extras'), field_name)
-        if uri:
+        field_value_str = helpers_odsh.odsh_extract_value_from_extras(dataset_dict.get('extras'), field_name)
+
+        try:
+            # Attempt to parse the string as a Python literal
+            field_value = ast.literal_eval(field_value_str)
+            if not isinstance(field_value, set):
+                # If it's not a set, treat it as a single value
+                raise ValueError("Not a set")
+        except (ValueError, SyntaxError):
+            # If parsing fails, treat the entire string as a single value
+            field_value = field_value_str
+
+        if isinstance(field_value, set):
+            for value in field_value:
+                self.g.set(
+                    (dataset_ref, dcat_property, rdflib.URIRef(value))
+                )
+        else:
             self.g.set(
-                (dataset_ref, dcat_property, rdflib.URIRef(uri))
+                (dataset_ref, dcat_property, rdflib.URIRef(field_value))
             )
 
     
diff --git a/ckanext/odsh/resources/applicable_legislations.json b/ckanext/odsh/resources/applicable_legislations.json
index 1a3d34ae56f66ac3c015caf06eb611b8196c6597..fbac6533079666bde808862c7315c05194a87f4c 100644
--- a/ckanext/odsh/resources/applicable_legislations.json
+++ b/ckanext/odsh/resources/applicable_legislations.json
@@ -1,6 +1,4 @@
 {
-  "https://example.com/example1/":"Example 1",
-  "https://example.com/example2/":"Example 2",
-  "https://example.com/example3/":"Example 3",
-  "https://example.com/example4/":"Example 4"
+  "http://data.europa.eu/eli/reg_impl/2023/138/oj": "Durchführungsverordnung (EU) 2023/138 der Kommission vom 21. Dezember 2022 zur Festlegung bestimmter hochwertiger Datensätze und der Modalitäten ihrer Veröffentlichung und Weiterverwendung",
+  "http: //data.europa.eu/eli/dir/2007/2/2019-06-26": "Richtlinie 2007/2/EG des Europäischen Parlaments und des Rates vom 14. März 2007 zur Schaffung einer Geodateninfrastruktur in der Europäischen Gemeinschaft (INSPIRE)"
 }
\ No newline at end of file
diff --git a/ckanext/odsh/resources/hvd_categories.json b/ckanext/odsh/resources/hvd_categories.json
index 17200ab4de1021e90c668f971240b5a3fc27a2f9..2320885eb4c513b9ecf39cf8ddd095e89cd74531 100644
--- a/ckanext/odsh/resources/hvd_categories.json
+++ b/ckanext/odsh/resources/hvd_categories.json
@@ -1,6 +1,8 @@
 {
-  "https://example.com/category1/":"Category 1",
-  "https://example.com/category2/":"Category 2",
-  "https://example.com/category3/":"Category 3",
-  "https://example.com/category4/":"Category 4"
+  "https://example.com/category1/": "Georaum",
+  "https://example.com/category2/": "Erdbeobachtung und Umwelt",
+  "https://example.com/category3/": "Meteorologie",
+  "https://example.com/category4/": "Statistik",
+  "https://example.com/category5/": "Unternehmen und Eigentümerschaft von Unternehmen",
+  "https://example.com/category6/": "Mobilität"
 }
\ No newline at end of file
diff --git a/ckanext/odsh/templates/macros/form.html b/ckanext/odsh/templates/macros/form.html
index 5bbcec81bca5733912a6e94858773c7adc4c3f5e..c69c12d998b587865cd4fdc0bbf8a111b40b7606 100644
--- a/ckanext/odsh/templates/macros/form.html
+++ b/ckanext/odsh/templates/macros/form.html
@@ -165,7 +165,7 @@ is_required=false) %}
 
 {# Creates a select with an input field for autocomplete #}
 {% macro select_autocomplete(name, id='', label='', options='', selected='', error='', classes=[], attrs={},
-    is_required=false, is_multiple=false, is_extra=false, index=0) %}
+    is_required=false, is_multiple=false) %}
 {% set classes = classes|default([]) + ['control-select'] %}
 
 {%- set extra_html = caller() if caller -%}
@@ -173,10 +173,7 @@ is_required=false) %}
 
 <div class="row-fluid">
     <div class="span6">
-      {% if is_extra %}
-        <input id="field-{{ name }}-key" type="hidden" name="extras__{{ index }}__key" value="{{ id or name }}"  />
-      {% endif %}
-      <select id="{{ 'field-' ~ (id or name) ~ '-value' if is_extra else (id or name) }}" name="{{ 'extras__' ~ index ~ '__value' if is_extra else (name) }}" 
+      <select id="{{ (id or name) }}" name="{{ name }}" 
               {{ attributes(attrs) }} data-module="autocomplete"{% if is_multiple %} multiple{% endif %}>
           {% for option in options %}
             {% if option.key %}
diff --git a/ckanext/odsh/templates/package/snippets/package_basic_fields.html b/ckanext/odsh/templates/package/snippets/package_basic_fields.html
index 2e62b49c44fef2a9d22f43b049dfef318e79f155..176d934cf95db831cf5087d0f42fdc7ba12cc030 100644
--- a/ckanext/odsh/templates/package/snippets/package_basic_fields.html
+++ b/ckanext/odsh/templates/package/snippets/package_basic_fields.html
@@ -340,19 +340,19 @@ dataset_is_draft)) %}
 {# field reference #}
 {% set field = 'reference' %}
 {% set error_reference = h.odsh_extract_error(field, errors) %}
-{% set value = h.odsh_extract_value_from_extras(data.extras,field) or '' %}
+{% set value = data.get(field) or '' %}
 {{ form.select_autocomplete(field, label=_('Sample Dataset'), selected=value, options=h.odsh_load_mdk_sample_dataset(), error=error_reference, is_required=False, classes=['control-full', 'field-reference'])}}
 
 {# field applicableLegislation #}
 {% set field = 'applicableLegislation' %}
 {% set error_reference = h.odsh_extract_error(field, errors) %}
-{% set value = h.odsh_extract_value_from_extras(data.extras,field) or '' %}
+{% set value = data.get(field) or '' %}
 {{ form.select_autocomplete(field, label=_('Applicable Legislation'), selected=value, options=h.odsh_load_applicable_legislations(), error=error_reference, is_required=False, classes=['control-full', 'field-applicableLegislation'], is_multiple=True, is_extra=True, index=5)}}
 
 {# field hvdCategory #}
 {% set field = 'hvdCategory' %}
 {% set error_reference = h.odsh_extract_error(field, errors) %}
-{% set value = h.odsh_extract_value_from_extras(data.extras,field) or '' %}
+{% set value = data.get(field) or '' %}
 {{ form.select_autocomplete(field, label=_('HVD Category'), selected=value, options=h.odsh_load_hvd_categories(), error=error_reference, is_required=False, classes=['control-full', 'field-hvdCategory'], is_multiple=True, is_extra=True, index=6)}}
 
 {% block scripts %}