diff --git a/examples/projection.h5 b/examples/projection.h5
index d6ccecde2b78f0f733b957afeb4b5edc44531d28..e4c4e1df717ce3ab2473d3288b9f069d80dbe3a0 100644
Binary files a/examples/projection.h5 and b/examples/projection.h5 differ
diff --git a/examples/thd_joint_joint.h5 b/examples/thd_joint_joint.h5
index b51ff52cba51b9c913d6cb8658d11ce865c4d2b3..0ef42a1bc6af2fd8ea535d4c7ce0a8f0dd96c095 100644
Binary files a/examples/thd_joint_joint.h5 and b/examples/thd_joint_joint.h5 differ
diff --git a/pyproject.toml b/pyproject.toml
index 66171355b48e78eed7661712531767b5f24be79d..7cbc0edea22d9f801902e074c1aae6a0944745f4 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [project]
 name = "h5schemas"
-version = "0.1.12"
+version = "0.1.13"
 description = "Add your description here"
 readme = "README.md"
 authors = [
diff --git a/scripts/add_joint_states_to_projection.py b/scripts/add_joint_states_to_projection.py
new file mode 100644
index 0000000000000000000000000000000000000000..bf82dac35060b4541c318c84b0d40f28cae299f0
--- /dev/null
+++ b/scripts/add_joint_states_to_projection.py
@@ -0,0 +1,54 @@
+from h5py import File
+import numpy as np
+from h5schemas.projection.add_projection import (
+    init_projection_dataset,
+    add_projection_sample,
+)
+from h5schemas.thd_joint_states.add_thd_joint_states import (
+    init_thd_joint_states,
+    add_thd_joint_states_sample,
+)
+
+
+def main():
+    # Generate a file in write mode.
+    test_file = File("./examples/projection.h5", "a")
+
+    # Initialize the .H5 structure
+    init_projection_dataset(test_file, False, (128, 128), (0.139, 0.139))
+
+    # # Add joint states group
+    # joint_states_group = test_file.require_group("/joint_states/")
+
+    # Init joint states group
+    init_thd_joint_states(test_file)
+
+    # Add dummy projections 1
+    add_projection_sample(
+        test_file,
+        1e5 * np.random.random((128, 128)),
+        [0.0, 1.0, 2.0],
+        [3.0, 4.0, 5.0, 6.0],
+        [7.0, 8.0, 9.0],
+        [10.0, 11.0, 12.0, 13],
+    )
+    add_thd_joint_states_sample(test_file, *np.arange(15))
+
+    # # Add dummy projections 2
+    # add_projection_sample(
+    #     test_file,
+    #     1e5 * np.random.random((128, 128)),
+    #     np.array([0.0, 1.0, 2.0]),
+    #     np.array([3.0, 4.0, 5.0, 6.0]),
+    #     np.array([7.0, 8.0, 9.0]),
+    #     np.array([10.0, 11.0, 12.0, 13]),
+    #     voltage_kv=100,
+    # )
+    # add_thd_joint_states_sample(joint_states_group, *np.arange(15, 30))
+
+    # # Access data
+    # print(test_file["/image/image_array"][...])
+
+
+if __name__ == "__main__":
+    main()
diff --git a/src/h5schemas/h5_types/base_dataset.py b/src/h5schemas/h5_types/base_dataset.py
index 0d65a396590dd569149923c1ca0381d30a94cc4b..4ab919b5cb8237397d081a77ff9779e65593c6e3 100644
--- a/src/h5schemas/h5_types/base_dataset.py
+++ b/src/h5schemas/h5_types/base_dataset.py
@@ -12,7 +12,7 @@ class BaseDataset:
     def __init__(self, definition: GroupDefinition):
         self.path = definition.path
         self.dataset_name = definition.path.rsplit("/")[-1]
-        self.group = definition.path[: -len(self.dataset_name)]
+        self.group = definition.path[1 : -len(self.dataset_name)]
         self.description = definition.description
 
     @classmethod
diff --git a/src/h5schemas/thd_joint_states/add_thd_joint_states.py b/src/h5schemas/thd_joint_states/add_thd_joint_states.py
index f1a82a5c388054bbcae97a9ed69f73098ce240b7..afbb909375a526fd1b3cc593bef2787d72e07a53 100644
--- a/src/h5schemas/thd_joint_states/add_thd_joint_states.py
+++ b/src/h5schemas/thd_joint_states/add_thd_joint_states.py
@@ -8,7 +8,9 @@ from h5schemas.header.add_header import add_header_sample, check_uuid_time_stamp
 
 def init_thd_joint_states(h5_file: File | Group):
     schema_groups = get_source_schemas()
-    initialize_dataset(h5_file, schema_groups)
+    joints = h5_file.require_group("joints")
+
+    initialize_dataset(joints, schema_groups)
 
 
 def get_source_schemas():
@@ -16,55 +18,55 @@ def get_source_schemas():
 
 
 def add_thd_joint_states_sample(
-        h5_file: File | Group,
-        master_joint_e1: float | None = None,
-        master_joint_a1: float | None = None,
-        master_joint_a2: float | None = None,
-        master_joint_a3: float | None = None,
-        master_joint_a4: float | None = None,
-        master_joint_a5: float | None = None,
-        master_joint_a6: float | None = None,
-        slave_joint_e1: float | None = None,
-        slave_joint_a1: float | None = None,
-        slave_joint_a2: float | None = None,
-        slave_joint_a3: float | None = None,
-        slave_joint_a4: float | None = None,
-        slave_joint_a5: float | None = None,
-        slave_joint_a6: float | None = None,
-        table_joint_a1: float | None = None,
-        uuid: str | None = None,
-        timestamp: int | None = None,):
-    
+    h5_file: File | Group,
+    master_joint_e1: float | None = None,
+    master_joint_a1: float | None = None,
+    master_joint_a2: float | None = None,
+    master_joint_a3: float | None = None,
+    master_joint_a4: float | None = None,
+    master_joint_a5: float | None = None,
+    master_joint_a6: float | None = None,
+    slave_joint_e1: float | None = None,
+    slave_joint_a1: float | None = None,
+    slave_joint_a2: float | None = None,
+    slave_joint_a3: float | None = None,
+    slave_joint_a4: float | None = None,
+    slave_joint_a5: float | None = None,
+    slave_joint_a6: float | None = None,
+    table_joint_a1: float | None = None,
+    uuid: str | None = None,
+    timestamp: int | None = None,
+):
     uuid, timestamp = check_uuid_time_stamp(uuid, timestamp)
 
-    add_joint_sample(h5_file["/master_joint_e1"], master_joint_e1)
+    add_joint_sample(h5_file["./joints/master_joint_e1"], master_joint_e1)
+
+    add_joint_sample(h5_file["./joints/master_joint_a1"], master_joint_a1)
+    add_joint_sample(h5_file["./joints/master_joint_a2"], master_joint_a2)
+    add_joint_sample(h5_file["./joints/master_joint_a3"], master_joint_a3)
+    add_joint_sample(h5_file["./joints/master_joint_a4"], master_joint_a4)
+    add_joint_sample(h5_file["./joints/master_joint_a5"], master_joint_a5)
+    add_joint_sample(h5_file["./joints/master_joint_a6"], master_joint_a6)
+
+    add_joint_sample(h5_file["./joints/slave_joint_e1"], slave_joint_e1)
 
-    add_joint_sample(h5_file["/master_joint_a1"], master_joint_a1)
-    add_joint_sample(h5_file["/master_joint_a2"], master_joint_a2)
-    add_joint_sample(h5_file["/master_joint_a3"], master_joint_a3)
-    add_joint_sample(h5_file["/master_joint_a4"], master_joint_a4)
-    add_joint_sample(h5_file["/master_joint_a5"], master_joint_a5)
-    add_joint_sample(h5_file["/master_joint_a6"], master_joint_a6)
+    add_joint_sample(h5_file["./joints/slave_joint_a1"], slave_joint_a1)
+    add_joint_sample(h5_file["./joints/slave_joint_a2"], slave_joint_a2)
+    add_joint_sample(h5_file["./joints/slave_joint_a3"], slave_joint_a3)
+    add_joint_sample(h5_file["./joints/slave_joint_a4"], slave_joint_a4)
+    add_joint_sample(h5_file["./joints/slave_joint_a5"], slave_joint_a5)
+    add_joint_sample(h5_file["./joints/slave_joint_a6"], slave_joint_a6)
 
-    add_joint_sample(h5_file["/slave_joint_e1"], slave_joint_e1)
+    add_joint_sample(h5_file["./joints/table_joint_a1"], table_joint_a1)
 
-    add_joint_sample(h5_file["/slave_joint_a1"], slave_joint_a1)
-    add_joint_sample(h5_file["/slave_joint_a2"], slave_joint_a2)
-    add_joint_sample(h5_file["/slave_joint_a3"], slave_joint_a3)
-    add_joint_sample(h5_file["/slave_joint_a4"], slave_joint_a4)
-    add_joint_sample(h5_file["/slave_joint_a5"], slave_joint_a5)
-    add_joint_sample(h5_file["/slave_joint_a6"], slave_joint_a6)
+    add_header_sample(h5_file["./joints/header"], uuid, timestamp)
 
-    add_joint_sample(h5_file["/table_joint_a1"], table_joint_a1)
 
-    add_header_sample(h5_file["/header"], uuid, timestamp)
 if __name__ == "__main__":
     import numpy as np
 
-
     test_file = File("./examples/thd_joint_joint.h5", "w")
     init_thd_joint_states(test_file)
 
     add_thd_joint_states_sample(test_file, *np.arange(15))
     add_thd_joint_states_sample(test_file, *np.arange(15, 30))
-