diff --git a/common/research/common/dataset/improvement/zoom.py b/common/research/common/dataset/improvement/zoom.py
index 803a759a498bb0303be4540ab313570aa37511fb..f2338909b5566344ed75a6360ccb9c1aa78f7660 100644
--- a/common/research/common/dataset/improvement/zoom.py
+++ b/common/research/common/dataset/improvement/zoom.py
@@ -7,8 +7,8 @@ from polystar.common.models.box import Box
 from polystar.common.models.image import Image
 from polystar.common.target_pipeline.objects_validators.in_box_validator import InBoxValidator
 from polystar.common.view.plt_results_viewer import PltResultViewer
-from research.common.datasets_v3.roco.roco_annotation import ROCOAnnotation
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.roco_annotation import ROCOAnnotation
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 
 
 def crop_image_annotation(
diff --git a/common/research/common/dataset/tensorflow_record.py b/common/research/common/dataset/tensorflow_record.py
index e4e8154ecfd85348548998147681bd5fc72c388a..0f5f70712069b2556f895cccf17c2dbdcdc45bad 100644
--- a/common/research/common/dataset/tensorflow_record.py
+++ b/common/research/common/dataset/tensorflow_record.py
@@ -9,8 +9,8 @@ from tensorflow_core.python.lib.io import python_io
 from polystar.common.models.label_map import label_map
 from polystar.common.utils.tqdm import smart_tqdm
 from research.common.constants import TENSORFLOW_RECORDS_DIR
-from research.common.datasets_v3.roco.roco_annotation import ROCOAnnotation
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.roco.roco_annotation import ROCOAnnotation
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
 
 
 class TensorflowRecordFactory:
diff --git a/common/research/common/datasets_v3/__init__.py b/common/research/common/datasets/__init__.py
similarity index 100%
rename from common/research/common/datasets_v3/__init__.py
rename to common/research/common/datasets/__init__.py
diff --git a/common/research/common/datasets_v3/capped_dataset.py b/common/research/common/datasets/capped_dataset.py
similarity index 81%
rename from common/research/common/datasets_v3/capped_dataset.py
rename to common/research/common/datasets/capped_dataset.py
index 9cbbef54605d4a039cb6254e151964d8881a2fe7..2580b219eeec32afc6900535a7531bb7fef4d3d6 100644
--- a/common/research/common/datasets_v3/capped_dataset.py
+++ b/common/research/common/datasets/capped_dataset.py
@@ -1,7 +1,7 @@
 from itertools import islice
 from typing import Iterator, Tuple
 
-from research.common.datasets_v3.lazy_dataset import ExampleT, LazyDataset, TargetT
+from research.common.datasets.lazy_dataset import ExampleT, LazyDataset, TargetT
 
 
 class CappedDataset(LazyDataset):
diff --git a/common/research/common/datasets_v3/dataset.py b/common/research/common/datasets/dataset.py
similarity index 85%
rename from common/research/common/datasets_v3/dataset.py
rename to common/research/common/datasets/dataset.py
index 4fd2cb805076fee2fc0a3d900dfb64126abcc6f5..1a6cb5710f001787330b5241ee548f725ea3f3f4 100644
--- a/common/research/common/datasets_v3/dataset.py
+++ b/common/research/common/datasets/dataset.py
@@ -1,6 +1,6 @@
 from typing import Iterator, List, Tuple
 
-from research.common.datasets_v3.lazy_dataset import ExampleT, LazyDataset, TargetT
+from research.common.datasets.lazy_dataset import ExampleT, LazyDataset, TargetT
 
 
 class Dataset(LazyDataset[ExampleT, TargetT]):
diff --git a/common/research/common/datasets_v3/dataset_builder.py b/common/research/common/datasets/dataset_builder.py
similarity index 86%
rename from common/research/common/datasets_v3/dataset_builder.py
rename to common/research/common/datasets/dataset_builder.py
index fc9806b34c8a15aaf4d0832384b5fe6a4d3ebaa5..e3454bddb0e67f54734f45815777645d3165c77f 100644
--- a/common/research/common/datasets_v3/dataset_builder.py
+++ b/common/research/common/datasets/dataset_builder.py
@@ -3,11 +3,11 @@ from typing import Callable, Generic, Iterable, Iterator, Tuple
 from polystar.common.filters.filter_abc import FilterABC
 from polystar.common.filters.pass_through_filter import PassThroughFilter
 from polystar.common.utils.misc import identity
-from research.common.datasets_v3.capped_dataset import CappedDataset
-from research.common.datasets_v3.dataset import Dataset
-from research.common.datasets_v3.filter_dataset import ExampleU, FilterDataset, TargetU
-from research.common.datasets_v3.lazy_dataset import ExampleT, LazyDataset, TargetT
-from research.common.datasets_v3.transform_dataset import TransformDataset
+from research.common.datasets.capped_dataset import CappedDataset
+from research.common.datasets.dataset import Dataset
+from research.common.datasets.filter_dataset import ExampleU, FilterDataset, TargetU
+from research.common.datasets.lazy_dataset import ExampleT, LazyDataset, TargetT
+from research.common.datasets.transform_dataset import TransformDataset
 
 
 class DatasetBuilder(Generic[ExampleT, TargetT], Iterable[Tuple[ExampleT, TargetT, str]]):
diff --git a/common/research/common/datasets_v3/filter_dataset.py b/common/research/common/datasets/filter_dataset.py
similarity index 90%
rename from common/research/common/datasets_v3/filter_dataset.py
rename to common/research/common/datasets/filter_dataset.py
index 415b3cbfad814757f7ba145b7685f3071ccb1f53..6af2935009f8a364fc6731de0b046a327cb84ee1 100644
--- a/common/research/common/datasets_v3/filter_dataset.py
+++ b/common/research/common/datasets/filter_dataset.py
@@ -1,7 +1,7 @@
 from typing import Iterator, Tuple, TypeVar
 
 from polystar.common.filters.filter_abc import FilterABC
-from research.common.datasets_v3.lazy_dataset import ExampleT, LazyDataset, TargetT
+from research.common.datasets.lazy_dataset import ExampleT, LazyDataset, TargetT
 
 ExampleU = TypeVar("ExampleU")
 TargetU = TypeVar("TargetU")
diff --git a/common/research/common/datasets_v3/image_dataset.py b/common/research/common/datasets/image_dataset.py
similarity index 66%
rename from common/research/common/datasets_v3/image_dataset.py
rename to common/research/common/datasets/image_dataset.py
index b7bf27e65c1836c6921ad314219929faea19942c..c7edb3821ffbdd654b62bb7984939f814de63367 100644
--- a/common/research/common/datasets_v3/image_dataset.py
+++ b/common/research/common/datasets/image_dataset.py
@@ -1,8 +1,8 @@
 from pathlib import Path
 
 from polystar.common.models.image import Image
-from research.common.datasets_v3.dataset import Dataset
-from research.common.datasets_v3.lazy_dataset import TargetT
+from research.common.datasets.dataset import Dataset
+from research.common.datasets.lazy_dataset import TargetT
 
 LazyFileDataset = Dataset[Path, TargetT]
 FileDataset = Dataset[Path, TargetT]
diff --git a/common/research/common/datasets_v3/image_file_dataset_builder.py b/common/research/common/datasets/image_file_dataset_builder.py
similarity index 89%
rename from common/research/common/datasets_v3/image_file_dataset_builder.py
rename to common/research/common/datasets/image_file_dataset_builder.py
index dbd5b18f44fab2f0d5c16869c8593549fe7e65bd..b4e078417c7050281a7b8d37e91b3a25dc157bc1 100644
--- a/common/research/common/datasets_v3/image_file_dataset_builder.py
+++ b/common/research/common/datasets/image_file_dataset_builder.py
@@ -2,8 +2,8 @@ from pathlib import Path
 from typing import Callable, Generic, Iterable, Iterator, Tuple
 
 from polystar.common.models.image import Image, load_image
-from research.common.datasets_v3.dataset_builder import DatasetBuilder
-from research.common.datasets_v3.lazy_dataset import LazyDataset, TargetT
+from research.common.datasets.dataset_builder import DatasetBuilder
+from research.common.datasets.lazy_dataset import LazyDataset, TargetT
 
 
 class LazyFileDataset(LazyDataset[Path, TargetT]):
diff --git a/common/research/common/datasets_v3/iterator_dataset.py b/common/research/common/datasets/iterator_dataset.py
similarity index 80%
rename from common/research/common/datasets_v3/iterator_dataset.py
rename to common/research/common/datasets/iterator_dataset.py
index 7b583deffa6dd1fb5ac8cb6934b0cd017e0ac0e9..b493b91f71da2bceb08c0bfa5d3e2b4f9dc3bc73 100644
--- a/common/research/common/datasets_v3/iterator_dataset.py
+++ b/common/research/common/datasets/iterator_dataset.py
@@ -1,6 +1,6 @@
 from typing import Iterator, Tuple
 
-from research.common.datasets_v3.lazy_dataset import ExampleT, LazyDataset, TargetT
+from research.common.datasets.lazy_dataset import ExampleT, LazyDataset, TargetT
 
 
 class IteratorDataset(LazyDataset[ExampleT, TargetT]):
diff --git a/common/research/common/datasets_v3/lazy_dataset.py b/common/research/common/datasets/lazy_dataset.py
similarity index 100%
rename from common/research/common/datasets_v3/lazy_dataset.py
rename to common/research/common/datasets/lazy_dataset.py
diff --git a/common/research/common/datasets_v3/roco/__init__.py b/common/research/common/datasets/roco/__init__.py
similarity index 100%
rename from common/research/common/datasets_v3/roco/__init__.py
rename to common/research/common/datasets/roco/__init__.py
diff --git a/common/research/common/datasets_v3/roco/roco_annotation.py b/common/research/common/datasets/roco/roco_annotation.py
similarity index 100%
rename from common/research/common/datasets_v3/roco/roco_annotation.py
rename to common/research/common/datasets/roco/roco_annotation.py
diff --git a/common/research/common/datasets_v3/roco/roco_dataset.py b/common/research/common/datasets/roco/roco_dataset.py
similarity index 58%
rename from common/research/common/datasets_v3/roco/roco_dataset.py
rename to common/research/common/datasets/roco/roco_dataset.py
index 646c6c57d6bb55f2e3b7a16cebb309786cd908e9..18015dcc4288f54e5014f02509232d2325f1210c 100644
--- a/common/research/common/datasets_v3/roco/roco_dataset.py
+++ b/common/research/common/datasets/roco/roco_dataset.py
@@ -1,9 +1,9 @@
 from pathlib import Path
 
 from polystar.common.models.image import Image
-from research.common.datasets_v3.dataset import Dataset
-from research.common.datasets_v3.lazy_dataset import LazyDataset
-from research.common.datasets_v3.roco.roco_annotation import ROCOAnnotation
+from research.common.datasets.dataset import Dataset
+from research.common.datasets.lazy_dataset import LazyDataset
+from research.common.datasets.roco.roco_annotation import ROCOAnnotation
 
 LazyROCOFileDataset = LazyDataset[Path, ROCOAnnotation]
 ROCOFileDataset = Dataset[Path, ROCOAnnotation]
diff --git a/common/research/common/datasets_v3/roco/roco_dataset_builder.py b/common/research/common/datasets/roco/roco_dataset_builder.py
similarity index 76%
rename from common/research/common/datasets_v3/roco/roco_dataset_builder.py
rename to common/research/common/datasets/roco/roco_dataset_builder.py
index 4bd420764c60c6188d198f850c3745901b4f68a6..bb402226b5963c378802d54fbd5eeceb3f234a18 100644
--- a/common/research/common/datasets_v3/roco/roco_dataset_builder.py
+++ b/common/research/common/datasets/roco/roco_dataset_builder.py
@@ -1,7 +1,7 @@
 from pathlib import Path
 
-from research.common.datasets_v3.image_file_dataset_builder import DirectoryDatasetBuilder
-from research.common.datasets_v3.roco.roco_annotation import ROCOAnnotation
+from research.common.datasets.image_file_dataset_builder import DirectoryDatasetBuilder
+from research.common.datasets.roco.roco_annotation import ROCOAnnotation
 
 
 class ROCODatasetBuilder(DirectoryDatasetBuilder[ROCOAnnotation]):
diff --git a/common/research/common/datasets_v3/roco/roco_dataset_descriptor.py b/common/research/common/datasets/roco/roco_dataset_descriptor.py
similarity index 94%
rename from common/research/common/datasets_v3/roco/roco_dataset_descriptor.py
rename to common/research/common/datasets/roco/roco_dataset_descriptor.py
index f50925f761e8f214afa7f2373766cac5f6ef2e99..070bc9fb9404db103899c04143e7ededdc15d83a 100644
--- a/common/research/common/datasets_v3/roco/roco_dataset_descriptor.py
+++ b/common/research/common/datasets/roco/roco_dataset_descriptor.py
@@ -7,8 +7,8 @@ from pandas import DataFrame
 from polystar.common.models.object import Armor, ObjectType
 from polystar.common.utils.markdown import MarkdownFile
 from polystar.common.utils.tqdm import smart_tqdm
-from research.common.datasets_v3.roco.roco_dataset import LazyROCOFileDataset
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.roco_dataset import LazyROCOFileDataset
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 
 
 @dataclass
diff --git a/common/research/common/datasets_v3/roco/roco_datasets.py b/common/research/common/datasets/roco/roco_datasets.py
similarity index 87%
rename from common/research/common/datasets_v3/roco/roco_datasets.py
rename to common/research/common/datasets/roco/roco_datasets.py
index 993fd405627755aaaca5d505d970f44bc4c76476..d824c699bbf58640f958c0fc997e4bf741650b50 100644
--- a/common/research/common/datasets_v3/roco/roco_datasets.py
+++ b/common/research/common/datasets/roco/roco_datasets.py
@@ -2,9 +2,9 @@ from abc import abstractmethod
 from pathlib import Path
 from typing import ClassVar, Iterator, Set
 
-from research.common.datasets_v3.roco.roco_annotation import ROCOAnnotation
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
-from research.common.datasets_v3.union_dataset import UnionLazyDataset
+from research.common.datasets.roco.roco_annotation import ROCOAnnotation
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.union_dataset import UnionLazyDataset
 
 
 class ROCODatasetsMeta(type):
diff --git a/common/research/common/datasets_v3/roco/zoo/__init__.py b/common/research/common/datasets/roco/zoo/__init__.py
similarity index 100%
rename from common/research/common/datasets_v3/roco/zoo/__init__.py
rename to common/research/common/datasets/roco/zoo/__init__.py
diff --git a/common/research/common/datasets_v3/roco/zoo/dji.py b/common/research/common/datasets/roco/zoo/dji.py
similarity index 80%
rename from common/research/common/datasets_v3/roco/zoo/dji.py
rename to common/research/common/datasets/roco/zoo/dji.py
index ac5af1c06140c105ba860edb4d9d2f6514a23551..3ba6151c67100604d14deb147b79e649f485c7c5 100644
--- a/common/research/common/datasets_v3/roco/zoo/dji.py
+++ b/common/research/common/datasets/roco/zoo/dji.py
@@ -1,6 +1,6 @@
 from research.common.constants import DJI_ROCO_DSET_DIR
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
-from research.common.datasets_v3.roco.roco_datasets import ROCODatasets
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.roco.roco_datasets import ROCODatasets
 
 
 class DJIROCODatasets(ROCODatasets):
diff --git a/common/research/common/datasets_v3/roco/zoo/dji_zoomed.py b/common/research/common/datasets/roco/zoo/dji_zoomed.py
similarity index 77%
rename from common/research/common/datasets_v3/roco/zoo/dji_zoomed.py
rename to common/research/common/datasets/roco/zoo/dji_zoomed.py
index 4d10b330d4c5fc808d8594228205dacf9ebe62d6..5bad2bcef4d792bf99be65cc1cdc73e6270ecdb8 100644
--- a/common/research/common/datasets_v3/roco/zoo/dji_zoomed.py
+++ b/common/research/common/datasets/roco/zoo/dji_zoomed.py
@@ -1,7 +1,7 @@
 from polystar.common.utils.str_utils import snake2camel
 from research.common.constants import DJI_ROCO_ZOOMED_DSET_DIR
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
-from research.common.datasets_v3.roco.roco_datasets import ROCODatasets
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.roco.roco_datasets import ROCODatasets
 
 
 class DJIROCOZoomedDatasets(ROCODatasets):
diff --git a/common/research/common/datasets_v3/roco/zoo/roco_dataset_zoo.py b/common/research/common/datasets/roco/zoo/roco_dataset_zoo.py
similarity index 56%
rename from common/research/common/datasets_v3/roco/zoo/roco_dataset_zoo.py
rename to common/research/common/datasets/roco/zoo/roco_dataset_zoo.py
index ba571b909e9455f06cbdac1ac42378c2c729d223..12a284c1b977b14641abc4dea10a7f5f96218222 100644
--- a/common/research/common/datasets_v3/roco/zoo/roco_dataset_zoo.py
+++ b/common/research/common/datasets/roco/zoo/roco_dataset_zoo.py
@@ -1,9 +1,9 @@
 from typing import Iterable, Iterator, Type
 
-from research.common.datasets_v3.roco.roco_datasets import ROCODatasets
-from research.common.datasets_v3.roco.zoo.dji import DJIROCODatasets
-from research.common.datasets_v3.roco.zoo.dji_zoomed import DJIROCOZoomedDatasets
-from research.common.datasets_v3.roco.zoo.twitch import TwitchROCODatasets
+from research.common.datasets.roco.roco_datasets import ROCODatasets
+from research.common.datasets.roco.zoo.dji import DJIROCODatasets
+from research.common.datasets.roco.zoo.dji_zoomed import DJIROCOZoomedDatasets
+from research.common.datasets.roco.zoo.twitch import TwitchROCODatasets
 
 
 class ROCODatasetsZoo(Iterable[Type[ROCODatasets]]):
diff --git a/common/research/common/datasets_v3/roco/zoo/twitch.py b/common/research/common/datasets/roco/zoo/twitch.py
similarity index 80%
rename from common/research/common/datasets_v3/roco/zoo/twitch.py
rename to common/research/common/datasets/roco/zoo/twitch.py
index 7cfecb37f5a3eb9904cc3a606ab0b41cb34e2792..5a4c4206692fe56226e2e9977236bd9a33b48459 100644
--- a/common/research/common/datasets_v3/roco/zoo/twitch.py
+++ b/common/research/common/datasets/roco/zoo/twitch.py
@@ -1,6 +1,6 @@
 from research.common.constants import TWITCH_DSET_DIR
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
-from research.common.datasets_v3.roco.roco_datasets import ROCODatasets
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.roco.roco_datasets import ROCODatasets
 
 
 class TwitchROCODatasets(ROCODatasets):
diff --git a/common/research/common/datasets_v3/transform_dataset.py b/common/research/common/datasets/transform_dataset.py
similarity index 82%
rename from common/research/common/datasets_v3/transform_dataset.py
rename to common/research/common/datasets/transform_dataset.py
index 8b5fcb822ed8f5eb53c9c94a163932b4c45ca723..54251be04c332a19a306ea93cc3e5c71c169638d 100644
--- a/common/research/common/datasets_v3/transform_dataset.py
+++ b/common/research/common/datasets/transform_dataset.py
@@ -1,7 +1,7 @@
 from typing import Callable, Iterator, Tuple
 
-from research.common.datasets_v3.dataset_builder import ExampleU, TargetU
-from research.common.datasets_v3.lazy_dataset import ExampleT, LazyDataset, TargetT
+from research.common.datasets.dataset_builder import ExampleU, TargetU
+from research.common.datasets.lazy_dataset import ExampleT, LazyDataset, TargetT
 
 
 class TransformDataset(LazyDataset[ExampleU, TargetU]):
diff --git a/common/research/common/datasets_v3/union_dataset.py b/common/research/common/datasets/union_dataset.py
similarity index 88%
rename from common/research/common/datasets_v3/union_dataset.py
rename to common/research/common/datasets/union_dataset.py
index ddbd4376ed1c83471b1169cc77854a361714a66d..4a381a6f59377db560829e8e17d03b3aa1231604 100644
--- a/common/research/common/datasets_v3/union_dataset.py
+++ b/common/research/common/datasets/union_dataset.py
@@ -1,7 +1,7 @@
 from typing import Iterable, Iterator, List, Tuple
 
-from research.common.datasets_v3.dataset import Dataset
-from research.common.datasets_v3.lazy_dataset import ExampleT, LazyDataset, TargetT
+from research.common.datasets.dataset import Dataset
+from research.common.datasets.lazy_dataset import ExampleT, LazyDataset, TargetT
 
 
 class UnionLazyDataset(LazyDataset[ExampleT, TargetT]):
diff --git a/common/research/common/scripts/construct_twith_datasets_from_manual_annotation.py b/common/research/common/scripts/construct_twith_datasets_from_manual_annotation.py
index 0cbabc4857c60ea2f083d1af559c74bbca6eebf6..d7333bd37cfa9fb02772b4307e93aeca1e2e5f69 100644
--- a/common/research/common/scripts/construct_twith_datasets_from_manual_annotation.py
+++ b/common/research/common/scripts/construct_twith_datasets_from_manual_annotation.py
@@ -2,8 +2,8 @@ from os import remove
 from shutil import copy, make_archive, move, rmtree
 
 from research.common.constants import TWITCH_DSET_DIR, TWITCH_DSET_ROBOTS_VIEWS_DIR, TWITCH_ROBOTS_VIEWS_DIR
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
-from research.common.datasets_v3.roco.roco_dataset_descriptor import make_markdown_dataset_report
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.roco.roco_dataset_descriptor import make_markdown_dataset_report
 from research.common.scripts.construct_dataset_from_manual_annotation import construct_dataset_from_manual_annotations
 from research.common.scripts.correct_annotations import AnnotationFileCorrector
 
diff --git a/common/research/common/scripts/create_tensorflow_records.py b/common/research/common/scripts/create_tensorflow_records.py
index 94566881f8ebbc98e1db2b3016020d23f140b3b0..ad1d6257528354ae8ce09df711d19634b2d6a5c6 100644
--- a/common/research/common/scripts/create_tensorflow_records.py
+++ b/common/research/common/scripts/create_tensorflow_records.py
@@ -1,8 +1,8 @@
 from research.common.dataset.tensorflow_record import TensorflowRecordFactory
-from research.common.datasets_v3.roco.zoo.dji import DJIROCODatasets
-from research.common.datasets_v3.roco.zoo.dji_zoomed import DJIROCOZoomedDatasets
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
-from research.common.datasets_v3.roco.zoo.twitch import TwitchROCODatasets
+from research.common.datasets.roco.zoo.dji import DJIROCODatasets
+from research.common.datasets.roco.zoo.dji_zoomed import DJIROCOZoomedDatasets
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.zoo.twitch import TwitchROCODatasets
 
 
 def create_one_record_per_roco_dset():
diff --git a/common/research/common/scripts/improve_roco_by_zooming.py b/common/research/common/scripts/improve_roco_by_zooming.py
index eee88b9b1d59438803f000afd0d16e9695bc5be9..6cc8de9ad412af91cb650ee83c8b30d529c9cc4b 100644
--- a/common/research/common/scripts/improve_roco_by_zooming.py
+++ b/common/research/common/scripts/improve_roco_by_zooming.py
@@ -10,8 +10,8 @@ from research.common.dataset.perturbations.image_modifiers.brightness import Bri
 from research.common.dataset.perturbations.image_modifiers.contrast import ContrastModifier
 from research.common.dataset.perturbations.image_modifiers.saturation import SaturationModifier
 from research.common.dataset.perturbations.perturbator import ImagePerturbator
-from research.common.datasets_v3.roco.roco_dataset import LazyROCODataset
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.roco_dataset import LazyROCODataset
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 
 
 def improve_dji_roco_dataset_by_zooming_and_perturbating(
diff --git a/common/research/common/scripts/visualize_dataset.py b/common/research/common/scripts/visualize_dataset.py
index 636ddd53aa39f5df845a907c8ed52d3c89c37b5f..6c57ec3a25b5a47e85028bf0cad97e9cb97a7645 100644
--- a/common/research/common/scripts/visualize_dataset.py
+++ b/common/research/common/scripts/visualize_dataset.py
@@ -1,6 +1,6 @@
 from polystar.common.view.plt_results_viewer import PltResultViewer
-from research.common.datasets_v3.roco.roco_dataset import LazyROCODataset
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.roco_dataset import LazyROCODataset
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 
 
 def visualize_dataset(dataset: LazyROCODataset, n_images: int):
diff --git a/common/tests/common/unittests/datasets/roco/test_directory_dataset_zoo.py b/common/tests/common/unittests/datasets/roco/test_directory_dataset_zoo.py
index b82b017778a5573507c9f8b4dab9e6b0a0a69da9..60e5b65b457b5e37b7c027ea1196e01cbf8b897b 100644
--- a/common/tests/common/unittests/datasets/roco/test_directory_dataset_zoo.py
+++ b/common/tests/common/unittests/datasets/roco/test_directory_dataset_zoo.py
@@ -7,7 +7,7 @@ from numpy.testing import assert_array_almost_equal
 
 from polystar.common.models.image import save_image
 from research.common.datasets.roco.directory_roco_dataset import DirectoryROCODataset
-from research.common.datasets_v3.roco.roco_annotation import ROCOAnnotation
+from research.common.datasets.roco.roco_annotation import ROCOAnnotation
 
 
 class TestDirectoryROCODataset(TestCase):
diff --git a/common/tests/common/unittests/datasets_v3/roco/test_directory_dataset_zoo.py b/common/tests/common/unittests/datasets_v3/roco/test_directory_dataset_zoo.py
index 90dabb91cee25899702a8210b67b43be5af56237..f2c839f3d9f2af3a625b257194b2ec3d1b4edb32 100644
--- a/common/tests/common/unittests/datasets_v3/roco/test_directory_dataset_zoo.py
+++ b/common/tests/common/unittests/datasets_v3/roco/test_directory_dataset_zoo.py
@@ -7,8 +7,8 @@ from numpy import asarray, float32
 from numpy.testing import assert_array_almost_equal
 
 from polystar.common.models.image import save_image
-from research.common.datasets_v3.roco.roco_annotation import ROCOAnnotation
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.roco.roco_annotation import ROCOAnnotation
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
 
 
 class TestDirectoryROCODataset(TestCase):
diff --git a/robots-at-robots/research/robots_at_robots/armor_color/armor_color_dataset.py b/robots-at-robots/research/robots_at_robots/armor_color/armor_color_dataset.py
index 2aff0a8e509f6ec0960cc72308172de2b8eb10b0..548f0cf7c7e6e74d94fb68767d498b75a128b786 100644
--- a/robots-at-robots/research/robots_at_robots/armor_color/armor_color_dataset.py
+++ b/robots-at-robots/research/robots_at_robots/armor_color/armor_color_dataset.py
@@ -1,7 +1,7 @@
 from itertools import islice
 
 from polystar.common.models.object import Armor
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 from research.robots_at_robots.dataset.armor_value_dataset_generator import ArmorValueDatasetGenerator
 from research.robots_at_robots.dataset.armor_value_target_factory import ArmorValueTargetFactory
 
diff --git a/robots-at-robots/research/robots_at_robots/armor_color/armor_color_pipeline_reporter_factory.py b/robots-at-robots/research/robots_at_robots/armor_color/armor_color_pipeline_reporter_factory.py
index 6ddd9cd7fa351d690e5ff71725bd5af204453054..b1f976dfd131226d3c18084bbeca41f522e3ffda 100644
--- a/robots-at-robots/research/robots_at_robots/armor_color/armor_color_pipeline_reporter_factory.py
+++ b/robots-at-robots/research/robots_at_robots/armor_color/armor_color_pipeline_reporter_factory.py
@@ -1,6 +1,6 @@
 from typing import List
 
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
 from research.robots_at_robots.armor_color.armor_color_dataset import make_armor_color_dataset_generator
 from research.robots_at_robots.evaluation.image_pipeline_evaluation_reporter import ImagePipelineEvaluationReporter
 from research.robots_at_robots.evaluation.image_pipeline_evaluator import ImagePipelineEvaluator
diff --git a/robots-at-robots/research/robots_at_robots/armor_color/baseline_experiments.py b/robots-at-robots/research/robots_at_robots/armor_color/baseline_experiments.py
index 06f6354cda168b0ea187c834b896a9bba5ddd6e3..c0ab8deab01a3df1c18be2d2c7b24fb26d5474c5 100644
--- a/robots-at-robots/research/robots_at_robots/armor_color/baseline_experiments.py
+++ b/robots-at-robots/research/robots_at_robots/armor_color/baseline_experiments.py
@@ -4,7 +4,7 @@ from polystar.common.image_pipeline.classifier_image_pipeline import ClassifierI
 from polystar.common.image_pipeline.image_featurizer.mean_rgb_channels_featurizer import MeanChannelsFeaturizer
 from polystar.common.image_pipeline.models.random_model import RandomModel
 from polystar.common.image_pipeline.models.red_blue_channels_comparison_model import RedBlueComparisonModel
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 from research.robots_at_robots.armor_color.armor_color_pipeline_reporter_factory import (
     ArmorColorPipelineReporterFactory,
 )
diff --git a/robots-at-robots/research/robots_at_robots/armor_digit/armor_digit_dataset.py b/robots-at-robots/research/robots_at_robots/armor_digit/armor_digit_dataset.py
index 38b9e63c11baf9f641b7de855d8370052060ba8c..9635d534371bb080364502db760408837940d19d 100644
--- a/robots-at-robots/research/robots_at_robots/armor_digit/armor_digit_dataset.py
+++ b/robots-at-robots/research/robots_at_robots/armor_digit/armor_digit_dataset.py
@@ -3,7 +3,7 @@ from typing import Iterable
 
 from polystar.common.filters.keep_filter import KeepFilter
 from polystar.common.models.object import Armor
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 from research.robots_at_robots.dataset.armor_value_dataset_generator import ArmorValueDatasetGenerator
 from research.robots_at_robots.dataset.armor_value_target_factory import ArmorValueTargetFactory
 
diff --git a/robots-at-robots/research/robots_at_robots/armor_digit/armor_digit_pipeline_reporter_factory.py b/robots-at-robots/research/robots_at_robots/armor_digit/armor_digit_pipeline_reporter_factory.py
index 9fcdc4025e701a0da66ee0f8c146d93b531df0c0..64eceb73eb9e1e7a7cad210c1dca75aab6af918e 100644
--- a/robots-at-robots/research/robots_at_robots/armor_digit/armor_digit_pipeline_reporter_factory.py
+++ b/robots-at-robots/research/robots_at_robots/armor_digit/armor_digit_pipeline_reporter_factory.py
@@ -1,6 +1,6 @@
 from typing import Iterable, List
 
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
 from research.robots_at_robots.armor_digit.armor_digit_dataset import make_armor_digit_dataset_generator
 from research.robots_at_robots.evaluation.image_pipeline_evaluation_reporter import ImagePipelineEvaluationReporter
 from research.robots_at_robots.evaluation.image_pipeline_evaluator import ImagePipelineEvaluator
diff --git a/robots-at-robots/research/robots_at_robots/armor_digit/baseline_experiments.py b/robots-at-robots/research/robots_at_robots/armor_digit/baseline_experiments.py
index 9925a7bfe46581063b6367149defbbd14f4f3b8f..50880653e698871cb973a91e854eeef675d09367 100644
--- a/robots-at-robots/research/robots_at_robots/armor_digit/baseline_experiments.py
+++ b/robots-at-robots/research/robots_at_robots/armor_digit/baseline_experiments.py
@@ -2,7 +2,7 @@ import logging
 
 from polystar.common.image_pipeline.classifier_image_pipeline import ClassifierImagePipeline
 from polystar.common.image_pipeline.models.random_model import RandomModel
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 from research.robots_at_robots.armor_digit.armor_digit_pipeline_reporter_factory import (
     ArmorDigitPipelineReporterFactory,
 )
diff --git a/robots-at-robots/research/robots_at_robots/dataset/armor_dataset_factory.py b/robots-at-robots/research/robots_at_robots/dataset/armor_dataset_factory.py
index 7b98b40a7d85d78a109d770dba4850bb83ce9692..6a800aefa3a2f2342875b83418756c64473a4170 100644
--- a/robots-at-robots/research/robots_at_robots/dataset/armor_dataset_factory.py
+++ b/robots-at-robots/research/robots_at_robots/dataset/armor_dataset_factory.py
@@ -6,10 +6,10 @@ import matplotlib.pyplot as plt
 from polystar.common.models.image import Image
 from polystar.common.models.object import Armor, ObjectType
 from polystar.common.target_pipeline.objects_validators.type_object_validator import TypeObjectValidator
-from research.common.datasets_v3.lazy_dataset import LazyDataset
-from research.common.datasets_v3.roco.roco_annotation import ROCOAnnotation
-from research.common.datasets_v3.roco.roco_dataset import LazyROCODataset
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.lazy_dataset import LazyDataset
+from research.common.datasets.roco.roco_annotation import ROCOAnnotation
+from research.common.datasets.roco.roco_dataset import LazyROCODataset
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 
 
 class ArmorDataset(LazyDataset[Image, Armor]):
diff --git a/robots-at-robots/research/robots_at_robots/dataset/armor_value_dataset_cache.py b/robots-at-robots/research/robots_at_robots/dataset/armor_value_dataset_cache.py
index a7b7c788e609badff69b93572e86eaad39de029c..68f1b15057edf05447b2e6ffc0ced3394ffb457f 100644
--- a/robots-at-robots/research/robots_at_robots/dataset/armor_value_dataset_cache.py
+++ b/robots-at-robots/research/robots_at_robots/dataset/armor_value_dataset_cache.py
@@ -7,9 +7,9 @@ from polystar.common.models.image import Image, save_image
 from polystar.common.utils.misc import identity
 from polystar.common.utils.time import create_time_id
 from polystar.common.utils.tqdm import smart_tqdm
-from research.common.datasets_v3.lazy_dataset import LazyDataset, TargetT
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
-from research.common.datasets_v3.transform_dataset import TransformDataset
+from research.common.datasets.lazy_dataset import LazyDataset, TargetT
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.transform_dataset import TransformDataset
 from research.robots_at_robots.dataset.armor_dataset_factory import ArmorDataset
 from research.robots_at_robots.dataset.armor_value_target_factory import ArmorValueTargetFactory
 
diff --git a/robots-at-robots/research/robots_at_robots/dataset/armor_value_dataset_generator.py b/robots-at-robots/research/robots_at_robots/dataset/armor_value_dataset_generator.py
index f95138ff4ef42b0d748c438d7f21cc4e409d4707..befa1a11f1e103fc7b03391bee38f55a0f02624e 100644
--- a/robots-at-robots/research/robots_at_robots/dataset/armor_value_dataset_generator.py
+++ b/robots-at-robots/research/robots_at_robots/dataset/armor_value_dataset_generator.py
@@ -3,11 +3,11 @@ from typing import Generic, List
 
 from polystar.common.filters.filter_abc import FilterABC
 from polystar.common.filters.pass_through_filter import PassThroughFilter
-from research.common.datasets_v3.dataset import Dataset
-from research.common.datasets_v3.image_file_dataset_builder import DirectoryDatasetBuilder
-from research.common.datasets_v3.lazy_dataset import TargetT
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
-from research.common.datasets_v3.union_dataset import UnionDataset
+from research.common.datasets.dataset import Dataset
+from research.common.datasets.image_file_dataset_builder import DirectoryDatasetBuilder
+from research.common.datasets.lazy_dataset import TargetT
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.union_dataset import UnionDataset
 from research.robots_at_robots.dataset.armor_value_dataset_cache import ArmorValueDatasetCache
 from research.robots_at_robots.dataset.armor_value_target_factory import ArmorValueTargetFactory
 
diff --git a/robots-at-robots/research/robots_at_robots/dataset/armor_value_target_factory.py b/robots-at-robots/research/robots_at_robots/dataset/armor_value_target_factory.py
index 2d5da793d7487a54481c10678ad64004a4865f28..a6a032674649ae55bad2add8db94e9334848c3d9 100644
--- a/robots-at-robots/research/robots_at_robots/dataset/armor_value_target_factory.py
+++ b/robots-at-robots/research/robots_at_robots/dataset/armor_value_target_factory.py
@@ -3,7 +3,7 @@ from pathlib import Path
 from typing import Generic
 
 from polystar.common.models.object import Armor
-from research.common.datasets_v3.lazy_dataset import TargetT
+from research.common.datasets.lazy_dataset import TargetT
 
 
 class ArmorValueTargetFactory(Generic[TargetT]):
diff --git a/robots-at-robots/research/robots_at_robots/demos/demo_infer.py b/robots-at-robots/research/robots_at_robots/demos/demo_infer.py
index c5d8edd802d4424dbd770d89e09c99c346cce4d7..40c567ff5b4dd61cd8b18325ed1b882b9ad4994c 100644
--- a/robots-at-robots/research/robots_at_robots/demos/demo_infer.py
+++ b/robots-at-robots/research/robots_at_robots/demos/demo_infer.py
@@ -5,7 +5,7 @@ from polystar.common.target_pipeline.objects_validators.confidence_object_valida
 from polystar.common.utils.tensorflow import patch_tf_v2
 from polystar.common.view.plt_results_viewer import PltResultViewer
 from polystar.robots_at_robots.dependency_injection import make_injector
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 from research.robots_at_robots.demos.utils import load_tf_model
 
 if __name__ == "__main__":
diff --git a/robots-at-robots/research/robots_at_robots/demos/demo_pipeline.py b/robots-at-robots/research/robots_at_robots/demos/demo_pipeline.py
index 9149086d869086dd340e4b17dd76bdb01d3984ba..5d8619203b1bfeb35238f9dcb09eacb5f7cdeb9a 100644
--- a/robots-at-robots/research/robots_at_robots/demos/demo_pipeline.py
+++ b/robots-at-robots/research/robots_at_robots/demos/demo_pipeline.py
@@ -18,7 +18,7 @@ from polystar.common.target_pipeline.target_pipeline import NoTargetFoundExcepti
 from polystar.common.utils.tensorflow import patch_tf_v2
 from polystar.common.view.plt_results_viewer import PltResultViewer
 from polystar.robots_at_robots.dependency_injection import make_injector
-from research.common.datasets_v3.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
+from research.common.datasets.roco.zoo.roco_dataset_zoo import ROCODatasetsZoo
 from research.robots_at_robots.demos.utils import load_tf_model
 
 if __name__ == "__main__":
diff --git a/robots-at-robots/research/robots_at_robots/evaluation/image_pipeline_evaluation_reporter.py b/robots-at-robots/research/robots_at_robots/evaluation/image_pipeline_evaluation_reporter.py
index 226758b843358c09407f5739c5822e86bce40742..5607a3aab18391b710cf487e481360e778b44c6d 100644
--- a/robots-at-robots/research/robots_at_robots/evaluation/image_pipeline_evaluation_reporter.py
+++ b/robots-at-robots/research/robots_at_robots/evaluation/image_pipeline_evaluation_reporter.py
@@ -15,8 +15,8 @@ from polystar.common.utils.dataframe import Format, format_df_column, format_df_
 from polystar.common.utils.markdown import MarkdownFile
 from polystar.common.utils.time import create_time_id
 from research.common.constants import DSET_DIR, EVALUATION_DIR
-from research.common.datasets_v3.lazy_dataset import TargetT
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.lazy_dataset import TargetT
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
 from research.robots_at_robots.evaluation.image_pipeline_evaluator import (
     ClassificationResults,
     ImagePipelineEvaluator,
diff --git a/robots-at-robots/research/robots_at_robots/evaluation/image_pipeline_evaluator.py b/robots-at-robots/research/robots_at_robots/evaluation/image_pipeline_evaluator.py
index aab735298fa8fe846919f32a57142cdebb5c52dd..97dac63753c10aa9ccf3a69a421bd9bd4df112e6 100644
--- a/robots-at-robots/research/robots_at_robots/evaluation/image_pipeline_evaluator.py
+++ b/robots-at-robots/research/robots_at_robots/evaluation/image_pipeline_evaluator.py
@@ -10,8 +10,8 @@ from sklearn.metrics import classification_report, confusion_matrix
 
 from polystar.common.image_pipeline.image_pipeline import ImagePipeline
 from polystar.common.models.image import Image, load_images
-from research.common.datasets_v3.lazy_dataset import TargetT
-from research.common.datasets_v3.roco.roco_dataset_builder import ROCODatasetBuilder
+from research.common.datasets.lazy_dataset import TargetT
+from research.common.datasets.roco.roco_dataset_builder import ROCODatasetBuilder
 from research.robots_at_robots.dataset.armor_value_dataset_generator import ArmorValueDatasetGenerator