diff --git a/src/caoscrawler/hdf5_converter.py b/src/caoscrawler/hdf5_converter.py
index 5824301026cacd9a9d8e896a68ed21ebc7e80a83..4a548dd30a231f0dbe50862ef4d31972f9804a64 100644
--- a/src/caoscrawler/hdf5_converter.py
+++ b/src/caoscrawler/hdf5_converter.py
@@ -87,3 +87,52 @@ class H5FileConverter(SimpleFileConverter):
         children.extend(__convert_attributes(ff))
 
         return children
+
+
+class H5GroupConverter(DictElementConverter):
+
+    def typecheck(self, element: StructureElement):
+
+        return isinstance(element, H5GroupElement)
+
+    def create_children(self, generalStore: GeneralStore, element: StructureElement):
+
+        if not isinstance(element.value, h5py.Group):
+
+            raise ValueError("create_children should have been called with a HDF5 Group object.")
+
+        children = []
+
+        for name, value in element.value.items():
+
+            children.append(__convert_h5_elements(value, name))
+
+        children.append(self._create_children_from_dict(element.value.attrs))
+
+        return children
+
+
+class H5DatasetConverter(DictElementConverter):
+
+    def typecheck(self, element: StructureElement):
+
+        return isinstance(element, H5DatasetElement)
+
+    def create_children(self, generalStore: GeneralStore, element: StructureElement):
+
+        if not isinstance(element.value, h5py.Dataset):
+
+            raise ValueError("create_children should have been called with a HDF5 Dataset object")
+
+        return self._create_children_from_dict(element.value.attrs)
+
+    def create_records(self, values: GeneralStore, records: RecordStore, element: StructureElement):
+
+        keys_modified = []
+
+        # TODO: Create the Dataset Record that holds the reference to the HDF5
+        # file and its internal path to the dataset.
+
+        keys_modified.append(super().create_records(values, records, element))
+
+        return keys_modified