diff --git a/examples/header.h5 b/examples/header.h5
index 82daee09f5d9bab4d4ef6cf1c24d6067e7457f8a..ccb68dce024d304dd03651a1779a648511df20db 100644
Binary files a/examples/header.h5 and b/examples/header.h5 differ
diff --git a/pyproject.toml b/pyproject.toml
index c4ca58adbcd04e957a22435b9222e812ef00f9f7..38f999c52026044fcdcba4204a10e98f550477f9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [project]
 name = "h5schemas"
-version = "0.1.20"
+version = "0.1.21"
 description = "Add your description here"
 readme = "README.md"
 authors = [
diff --git a/src/h5schemas/h5_types/base_dataset.py b/src/h5schemas/h5_types/base_dataset.py
index 4ab919b5cb8237397d081a77ff9779e65593c6e3..df8b869c0539511a392a48d7af79b16130276adc 100644
--- a/src/h5schemas/h5_types/base_dataset.py
+++ b/src/h5schemas/h5_types/base_dataset.py
@@ -9,12 +9,24 @@ class BaseDataset:
     maximum: int | float | None = None
     dtype: str | np.float64 | np.float32 | np.uint16 | None = None
 
+    _group: str | None = None
+
     def __init__(self, definition: GroupDefinition):
         self.path = definition.path
         self.dataset_name = definition.path.rsplit("/")[-1]
         self.group = definition.path[1 : -len(self.dataset_name)]
         self.description = definition.description
 
+    @property
+    def group(self) -> str | None:
+        return self._group
+    
+    @group.setter
+    def group(self, group_value: str | None):
+        if len(group_value) == 0:
+            group_value = '/'
+        self._group = group_value
+
     @classmethod
     def with_file(cls, definition: GroupDefinition, h5_file: h5py.File):
         instance = cls(definition)
diff --git a/src/h5schemas/h5_types/image.py b/src/h5schemas/h5_types/image.py
index ccdb79b33d91604ede8d77f14ef52d0166a75b91..8a844fc34bb5a0108562f47bc1f57441a73c743c 100644
--- a/src/h5schemas/h5_types/image.py
+++ b/src/h5schemas/h5_types/image.py
@@ -11,8 +11,6 @@ class ImageDataset(BaseDataset):
         super().__init__(definition)
 
     def add_to_file(self, h5_file: h5py.File):
-        if len(self.group) == 0:
-            self.group = '/'
         group = h5_file.require_group(self.group)
         self.dataset = group.create_dataset(
             name=self.dataset_name,
diff --git a/src/h5schemas/header/add_header.py b/src/h5schemas/header/add_header.py
index 892043a47283c9f90820f832e1ecc30357785bb0..4c1605d3b372b7bc39ff9bd3d9cd73ca77833006 100644
--- a/src/h5schemas/header/add_header.py
+++ b/src/h5schemas/header/add_header.py
@@ -3,6 +3,7 @@ from thd_json import header
 from h5schemas.scan_schema import open_schema
 from h5schemas.initialize_dataset import initialize_dataset
 from datetime import datetime
+import numpy as np
 
 
 def init_header(
@@ -28,17 +29,22 @@ def check_uuid_time_stamp(uuid: str | None = None, timestamp: int | None = None)
 
 
 def add_header_sample(
-    h5_file: File | Group, uuid: str | None, timestamp: float | None = None
+    h5_file: File | Group, uuid: str | np.ndarray | None, timestamp: float | np.ndarray | None = None
 ):
     uuid, timestamp = check_uuid_time_stamp(uuid, timestamp)
 
+    if isinstance(uuid, np.ndarray):
+        uuid_shape = uuid.shape[0]
+    else:
+        uuid_shape = 1
+
     dst = h5_file["uuid"]
-    dst.resize((dst.shape[0] + 1,))
-    dst[-1,] = uuid
+    dst.resize((dst.shape[0] + uuid_shape,))
+    dst[-uuid_shape,] = uuid
 
     dst = h5_file["timestamp"]
-    dst.resize((dst.shape[0] + 1,))
-    dst[-1,] = timestamp
+    dst.resize((dst.shape[0] + uuid_shape,))
+    dst[-uuid_shape,] = timestamp
 
 
 def uuid_time_from_json_header(json_header_obj: header.JsonHeader) -> tuple[str, float]:
@@ -49,7 +55,7 @@ def uuid_time_from_json_header(json_header_obj: header.JsonHeader) -> tuple[str,
 
 if __name__ == "__main__":
     from h5schemas.header.overwrite_header import overwrite_header_at_index
-    test_file = File("./examples/header.h5", "a")
+    test_file = File("./examples/header.h5", "w")
     init_header(test_file)
 
     add_header_sample(test_file, None)