diff --git a/doc/api.rst b/doc/api.rst
index f493d80b319435caabdd2e9f409c6bdcf0c2102f..d0f2f4118f29f0113819ed4b35b9fef66509bb2b 100644
--- a/doc/api.rst
+++ b/doc/api.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.api:
+.. _mednet.libs.classification.api:
 
 ============
  Python API
@@ -12,7 +12,7 @@ This section includes information for using the Python API of
 ``mednet``.
 
 
-.. _mednet.api.data:
+.. _mednet.libs.classification.api.data:
 
 Data Methods
 ------------
@@ -22,14 +22,14 @@ Auxiliary classes and methods to define raw dataset iterators.
 .. autosummary::
    :toctree: api/data
 
-   mednet.data.augmentations
-   mednet.data.datamodule
-   mednet.data.image_utils
-   mednet.data.split
-   mednet.data.typing
+   mednet.libs.classification.data.augmentations
+   mednet.libs.classification.data.datamodule
+   mednet.libs.classification.data.image_utils
+   mednet.libs.classification.data.split
+   mednet.libs.classification.data.typing
 
 
-.. _mednet.api.models:
+.. _mednet.libs.classification.api.models:
 
 Models
 ------
@@ -39,20 +39,20 @@ CNN and other models implemented.
 .. autosummary::
    :toctree: api/models
 
-   mednet.models.pasa
-   mednet.models.alexnet
-   mednet.models.densenet
-   mednet.models.logistic_regression
-   mednet.models.loss_weights
-   mednet.models.mlp
-   mednet.models.model
-   mednet.models.normalizer
-   mednet.models.separate
-   mednet.models.transforms
-   mednet.models.typing
+   mednet.libs.classification.models.pasa
+   mednet.libs.classification.models.alexnet
+   mednet.libs.classification.models.densenet
+   mednet.libs.classification.models.logistic_regression
+   mednet.libs.classification.models.loss_weights
+   mednet.libs.classification.models.mlp
+   mednet.libs.classification.models.model
+   mednet.libs.classification.models.normalizer
+   mednet.libs.classification.models.separate
+   mednet.libs.classification.models.transforms
+   mednet.libs.classification.models.typing
 
 
-.. _mednet.api.engines:
+.. _mednet.libs.classification.api.engines:
 
 Command engines
 ---------------
@@ -62,15 +62,15 @@ Functions to actuate on the data.
 .. autosummary::
    :toctree: api/engine
 
-   mednet.engine.callbacks
-   mednet.engine.device
-   mednet.engine.evaluator
-   mednet.engine.loggers
-   mednet.engine.predictor
-   mednet.engine.trainer
+   mednet.libs.classification.engine.callbacks
+   mednet.libs.classification.engine.device
+   mednet.libs.classification.engine.evaluator
+   mednet.libs.classification.engine.loggers
+   mednet.libs.classification.engine.predictor
+   mednet.libs.classification.engine.trainer
 
 
-.. _mednet.api.saliency:
+.. _mednet.libs.classification.api.saliency:
 
 Saliency Map Generation and Analysis
 ------------------------------------
@@ -80,14 +80,14 @@ Engines to generate and analyze saliency mapping techniques.
 .. autosummary::
    :toctree: api/saliency
 
-   mednet.engine.saliency.completeness
-   mednet.engine.saliency.evaluator
-   mednet.engine.saliency.generator
-   mednet.engine.saliency.interpretability
-   mednet.engine.saliency.viewer
+   mednet.libs.classification.engine.saliency.completeness
+   mednet.libs.classification.engine.saliency.evaluator
+   mednet.libs.classification.engine.saliency.generator
+   mednet.libs.classification.engine.saliency.interpretability
+   mednet.libs.classification.engine.saliency.viewer
 
 
-.. _mednet.api.utils:
+.. _mednet.libs.classification.api.utils:
 
 Various utilities
 -----------------
diff --git a/doc/cli.rst b/doc/cli.rst
index 0d9ebcec30502364718416371d08623e7d7d26e5..c9f96653b97feec52dd3e683e41a476ccc3c3119 100644
--- a/doc/cli.rst
+++ b/doc/cli.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.cli:
+.. _mednet.libs.classification.cli:
 
 ========================
  Command-line Interface
@@ -12,7 +12,7 @@ This section contains an overview of command-line applications shipped with
 this package.
 
 
-.. click:: mednet.scripts.cli:cli
+.. click:: mednet.libs.classification.scripts.cli:cli
    :prog: mednet
    :nested: full
 
diff --git a/doc/config.rst b/doc/config.rst
index 9ecb361cfd66897afca06af8c362a6941b381fd7..c4e366533923251278e43ef680db0acd0def66be 100644
--- a/doc/config.rst
+++ b/doc/config.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.config:
+.. _mednet.libs.classification.config:
 
 Preset Configurations
 ---------------------
@@ -11,7 +11,7 @@ This module contains preset configurations for baseline CNN architectures and
 DataModules.
 
 
-.. _mednet.config.models:
+.. _mednet.libs.classification.config.models:
 
 Pre-configured Models
 =====================
@@ -22,14 +22,14 @@ Pre-configured models you can readily use.
    :toctree: api/config.models
    :template: config.rst
 
-   mednet.config.models.alexnet
-   mednet.config.models.alexnet_pretrained
-   mednet.config.models.densenet
-   mednet.config.models.densenet_pretrained
-   mednet.config.models.densenet_rs
-   mednet.config.models.logistic_regression
-   mednet.config.models.mlp
-   mednet.config.models.pasa
+   mednet.libs.classification.config.models.alexnet
+   mednet.libs.classification.config.models.alexnet_pretrained
+   mednet.libs.classification.config.models.densenet
+   mednet.libs.classification.config.models.densenet_pretrained
+   mednet.libs.classification.config.models.densenet_rs
+   mednet.libs.classification.config.models.logistic_regression
+   mednet.libs.classification.config.models.mlp
+   mednet.libs.classification.config.models.pasa
 
 
 Data Augmentations
@@ -46,6 +46,7 @@ Sequences of data augmentations you can readily use.
    mednet.config.augmentations.elastic
    mednet.config.augmentations.affine
 
+.. _mednet.libs.classification.config.datamodules:
 
 DataModule support
 ==================
@@ -60,22 +61,22 @@ functional DataModule that can be used in training, prediction or testing.
 .. autosummary::
    :toctree: api/config.datamodules
 
-   mednet.config.data.hivtb.datamodule
-   mednet.config.data.indian.datamodule
-   mednet.config.data.montgomery.datamodule
-   mednet.config.data.montgomery_shenzhen.datamodule
-   mednet.config.data.montgomery_shenzhen_indian.datamodule
-   mednet.config.data.montgomery_shenzhen_indian_padchest.datamodule
-   mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule
-   mednet.config.data.nih_cxr14.datamodule
-   mednet.config.data.nih_cxr14_padchest.datamodule
-   mednet.config.data.padchest.datamodule
-   mednet.config.data.shenzhen.datamodule
-   mednet.config.data.tbpoc.datamodule
-   mednet.config.data.tbx11k.datamodule
+   mednet.libs.classification.config.data.hivtb.datamodule
+   mednet.libs.classification.config.data.indian.datamodule
+   mednet.libs.classification.config.data.montgomery.datamodule
+   mednet.libs.classification.config.data.montgomery_shenzhen.datamodule
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian_padchest.datamodule
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule
+   mednet.libs.classification.config.data.nih_cxr14.datamodule
+   mednet.libs.classification.config.data.nih_cxr14_padchest.datamodule
+   mednet.libs.classification.config.data.padchest.datamodule
+   mednet.libs.classification.config.data.shenzhen.datamodule
+   mednet.libs.classification.config.data.tbpoc.datamodule
+   mednet.libs.classification.config.data.tbx11k.datamodule
 
 
-.. _mednet.config.datamodule-instances:
+.. _mednet.libs.classification.config.datamodule-instances:
 
 Pre-configured DataModules
 ==========================
@@ -83,29 +84,29 @@ Pre-configured DataModules
 DataModules provide access to preset pytorch dataloaders for training,
 validating, testing and running prediction tasks.  Each of the pre-configured
 DataModule is based on one (or more) of the :ref:`supported base DataModules
-<mednet.config.datamodules>`.
+<mednet.libs.classification.config.datamodules>`.
 
 .. autosummary::
    :toctree: api/config.datamodule-instances
    :template: config.rst
 
-   mednet.config.data.indian.default
-   mednet.config.data.montgomery.default
-   mednet.config.data.montgomery_shenzhen.default
-   mednet.config.data.montgomery_shenzhen_indian.default
-   mednet.config.data.montgomery_shenzhen_indian_padchest.default
-   mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_healthy_vs_atb
-   mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_others_vs_atb
-   mednet.config.data.nih_cxr14.default
-   mednet.config.data.nih_cxr14_padchest.idiap
-   mednet.config.data.padchest.idiap
-   mednet.config.data.shenzhen.default
-   mednet.config.data.tbx11k.v1_healthy_vs_atb
-   mednet.config.data.tbx11k.v2_others_vs_atb
-   mednet.config.data.tbx11k.v2_others_vs_atb
+   mednet.libs.classification.config.data.indian.default
+   mednet.libs.classification.config.data.montgomery.default
+   mednet.libs.classification.config.data.montgomery_shenzhen.default
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian.default
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian_padchest.default
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_healthy_vs_atb
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_others_vs_atb
+   mednet.libs.classification.config.data.nih_cxr14.default
+   mednet.libs.classification.config.data.nih_cxr14_padchest.idiap
+   mednet.libs.classification.config.data.padchest.idiap
+   mednet.libs.classification.config.data.shenzhen.default
+   mednet.libs.classification.config.data.tbx11k.v1_healthy_vs_atb
+   mednet.libs.classification.config.data.tbx11k.v2_others_vs_atb
+   mednet.libs.classification.config.data.tbx11k.v2_others_vs_atb
 
 
-.. _mednet.config.datamodule-instances.folds:
+.. _mednet.libs.classification.config.datamodule-instances.folds:
 
 Cross-validation DataModules
 ============================
@@ -120,17 +121,17 @@ DataModules.  Nine other folds are available for every configuration (from 1 to
    :toctree: api/config.datamodule-folds
    :template: config.rst
 
-   mednet.config.data.hivtb.fold_0
-   mednet.config.data.indian.fold_0
-   mednet.config.data.montgomery.fold_0
-   mednet.config.data.montgomery_shenzhen.fold_0
-   mednet.config.data.montgomery_shenzhen_indian.fold_0
-   mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_0
-   mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_0
-   mednet.config.data.shenzhen.fold_0
-   mednet.config.data.tbpoc.fold_0
-   mednet.config.data.tbx11k.v1_fold_0
-   mednet.config.data.tbx11k.v2_fold_0
+   mednet.libs.classification.config.data.hivtb.fold_0
+   mednet.libs.classification.config.data.indian.fold_0
+   mednet.libs.classification.config.data.montgomery.fold_0
+   mednet.libs.classification.config.data.montgomery_shenzhen.fold_0
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_0
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_0
+   mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_0
+   mednet.libs.classification.config.data.shenzhen.fold_0
+   mednet.libs.classification.config.data.tbpoc.fold_0
+   mednet.libs.classification.config.data.tbx11k.v1_fold_0
+   mednet.libs.classification.config.data.tbx11k.v2_fold_0
 
 
 .. include:: links.rst
diff --git a/doc/contribute.rst b/doc/contribute.rst
index 0c25cfa8076036c639e31bc20ffc39ece73bf29f..849a9e48120550392d2d459058f95c0a36f70dca 100644
--- a/doc/contribute.rst
+++ b/doc/contribute.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.contribute:
+.. _mednet.libs.classification.contribute:
 
 ===================================
  Getting Involved and Contributing
diff --git a/doc/data-model.rst b/doc/data-model.rst
index 634ed899f93911bd274a1d51f0291d140f6889a5..6448c32471783296838bbab4fea8f683c510d90b 100644
--- a/doc/data-model.rst
+++ b/doc/data-model.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.datamodel:
+.. _mednet.libs.classification.datamodel:
 
 ============
  Data model
diff --git a/doc/install.rst b/doc/install.rst
index 573a624868220d5a89a69969ebcd8d24576171b3..820e90615972e432226e701185d189e9d1f84af4 100644
--- a/doc/install.rst
+++ b/doc/install.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.install:
+.. _mednet.libs.classification.install:
 
 ==============
  Installation
@@ -78,7 +78,7 @@ installation paths.
    configuration tips on the *Development* tab above.
 
 
-.. _mednet.setup:
+.. _mednet.libs.classification.setup:
 
 Setup
 -----
@@ -86,7 +86,7 @@ Setup
 A configuration file may be useful to setup global options that should be often
 reused.  The location of the configuration file depends on the value of the
 environment variable ``$XDG_CONFIG_HOME``, but defaults to
-``~/.config/mednet.toml``.  You may edit this file using your preferred
+``~/.config/mednet.libs.classification.toml``.  You may edit this file using your preferred
 editor.
 
 Here is an example configuration file that may be useful as a starting point:
@@ -124,7 +124,7 @@ Here is an example configuration file that may be useful as a starting point:
       mednet database check <database_name>
 
 
-.. _mednet.setup.databases:
+.. _mednet.libs.classification.setup.databases:
 
 Supported Databases
 ===================
@@ -135,7 +135,7 @@ raw data can be downloaded.  The list of images in each split is available
 in the source code.
 
 
-.. _mednet.setup.databases.tb:
+.. _mednet.libs.classification.setup.databases.tb:
 
 Tuberculosis databases
 ~~~~~~~~~~~~~~~~~~~~~~
@@ -176,7 +176,7 @@ In addition to the splits presented in the following table, 10 folds
      - 52
 
 
-.. _mednet.setup.databases.tb+signs:
+.. _mednet.libs.classification.setup.databases.tb+signs:
 
 Tuberculosis multilabel databases
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -212,7 +212,7 @@ In addition to the splits presented in the following table, 10 folds
      - 2800
 
 
-.. _mednet.setup.databases.tbmultilabel+signs:
+.. _mednet.libs.classification.setup.databases.tbmultilabel+signs:
 
 Tuberculosis + radiological findings databases
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -236,7 +236,7 @@ and radiological findings.
      - 0
 
 
-.. _mednet.setup.databases.signs:
+.. _mednet.libs.classification.setup.databases.signs:
 
 Radiological findings databases
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -267,7 +267,7 @@ information about tuberculosis.
      - 4'054
 
 
-.. _mednet.setup.databases.hiv-tb:
+.. _mednet.libs.classification.setup.databases.hiv-tb:
 
 HIV-Tuberculosis databases
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/usage/evaluation.rst b/doc/usage/evaluation.rst
index 4bdd7e843696d396158f0bb31fcce847b6925feb..1288bab2007f377d961a606e835feaef86eb5d45 100644
--- a/doc/usage/evaluation.rst
+++ b/doc/usage/evaluation.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.usage.evaluation:
+.. _mednet.libs.classification.usage.evaluation:
 
 ==========================
  Inference and Evaluation
@@ -20,7 +20,7 @@ Inference
 In inference (or prediction) mode, we input a model, a dataset, a model checkpoint generated during training, and output
 a json file containing the prediction outputs for every input image.
 
-To run inference, use the sub-command :ref:`predict <mednet.cli>`.
+To run inference, use the sub-command :ref:`predict <mednet.libs.classification.cli>`.
 
 Examples
 ========
@@ -40,7 +40,7 @@ Evaluation
 
 In evaluation, we input predictions to generate performance summaries that help analysis of a trained model.
 The generated files are a .pdf containing various plots and a table of metrics for each dataset split.
-Evaluation is done using the :ref:`evaluate command <mednet.cli>` followed by the json file generated during
+Evaluation is done using the :ref:`evaluate command <mednet.libs.classification.cli>` followed by the json file generated during
 the inference step and a threshold.
 
 Use ``mednet evaluate --help`` for more information.
diff --git a/doc/usage/experiment.rst b/doc/usage/experiment.rst
index 52f55f2b040145d73d2da83a9417dfba7a1829a1..8dc75b9d76e432dd91ca13e94f9585daf7e4e2a9 100644
--- a/doc/usage/experiment.rst
+++ b/doc/usage/experiment.rst
@@ -2,13 +2,13 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.experiment:
+.. _mednet.libs.classification.experiment:
 
 ==============================
  Running complete experiments
 ==============================
 
-We provide an :ref:`experiment command <mednet.cli>`
+We provide an :ref:`experiment command <mednet.libs.classification.cli>`
 that runs training, followed by prediction and evaluation.
 After running, you will be able to find results from model fitting,
 prediction and evaluation under a single output directory.
diff --git a/doc/usage/index.rst b/doc/usage/index.rst
index 9e5090b78231f444bf02a8e6ec32003f5607aa41..ce1c5c065c24ad02bbf1fd97b768b2fd74d5032f 100644
--- a/doc/usage/index.rst
+++ b/doc/usage/index.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.usage:
+.. _mednet.libs.classification.usage:
 
 =======
  Usage
@@ -14,7 +14,7 @@ tuberculosis detection with support for the following activities.
 .. figure:: img/direct_vs_indirect.png
 
 
-.. _mednet.usage.direct-detection:
+.. _mednet.libs.classification.usage.direct-detection:
 
 
 Direct detection
@@ -30,7 +30,7 @@ Direct detection
   thresholds can also be calculated.
 
 
-.. \_mednet.usage.indirect-detection:
+.. \_mednet.libs.classification.usage.indirect-detection:
 
 .. Indirect detection
   ------------------
@@ -51,7 +51,7 @@ Direct detection
   * Comparison: Use predictions results to compare performance of multiple
     systems.
 
-We provide :ref:`command-line interfaces (CLI) <mednet.cli>` that implement
+We provide :ref:`command-line interfaces (CLI) <mednet.libs.classification.cli>` that implement
 each of the phases above. This interface is configurable using :ref:`clapper's
 extensible configuration framework <clapper.config>`.  In essence, each
 command-line option may be provided as a variable with the same name in a
@@ -66,14 +66,14 @@ to an application.
    may require complex Python types that cannot be synthetized in a single
    input parameter.
 
-We provide a number of :ref:`preset configuration files <mednet.config>` that
+We provide a number of :ref:`preset configuration files <mednet.libs.classification.config>` that
 can be used in one or more of the activities described in this section. Our
 command-line framework allows you to refer to these preset configuration files
 using special names (a.k.a. "resources"), that procure and load these for you
 automatically.
 
 
-.. _mednet.usage.commands:
+.. _mednet.libs.classification.usage.commands:
 
 Commands
 --------
diff --git a/doc/usage/saliency.rst b/doc/usage/saliency.rst
index 65074ae5b6585c1a14e5c6c529a632b4679a0479..ebd03bf72a2fd2967a992aa6100183c94104e617 100644
--- a/doc/usage/saliency.rst
+++ b/doc/usage/saliency.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.usage.saliency:
+.. _mednet.libs.classification.usage.saliency:
 
 ==========
  Saliency
@@ -17,7 +17,7 @@ Some of the scripts require the use of a database with human-annotated saliency
 Generation
 ----------
 
-Saliency maps can be generated with the :ref:`saliency generate command <mednet.cli>`.
+Saliency maps can be generated with the :ref:`saliency generate command <mednet.libs.classification.cli>`.
 They are represented as numpy arrays of the same size as thes images, with values in the range [0-1] and saved in .npy files.
 
 Several mapping algorithms are available to choose from, which can be specified with the -s option.
@@ -36,7 +36,7 @@ objects on the output directory:
 Viewing
 -------
 
-To overlay saliency maps over the original images, use the :ref:`saliency view command <mednet.cli>`.
+To overlay saliency maps over the original images, use the :ref:`saliency view command <mednet.libs.classification.cli>`.
 Results are saved as PNG images in which brigter pixels correspond to areas with higher saliency.
 
 Examples
diff --git a/doc/usage/training.rst b/doc/usage/training.rst
index 7cd58605e4d6fc05fa2ec0a8564cd05d91f80612..a123fce48ffa5be39ca69cf0fa886ef3acdc79c6 100644
--- a/doc/usage/training.rst
+++ b/doc/usage/training.rst
@@ -2,7 +2,7 @@
 ..
 .. SPDX-License-Identifier: GPL-3.0-or-later
 
-.. _mednet.usage.training:
+.. _mednet.libs.classification.usage.training:
 
 ==========
  Training
@@ -71,7 +71,7 @@ Plotting training metrics
 Various metrics are recorded at each epoch during training, such as the execution time, loss and resource usage.
 These are saved in a Tensorboard file, located in a `logs` subdirectory of the training output folder.
 
-Mednet provides a :ref:`train-analysis <mednet.cli>` convenience script that graphs the scalars stored in these files and saves them in a .pdf file.
+Mednet provides a :ref:`train-analysis <mednet.libs.classification.cli>` convenience script that graphs the scalars stored in these files and saves them in a .pdf file.
 
 Examples
 ========
diff --git a/helpers/tbx11k_make_splits.py b/helpers/tbx11k_make_splits.py
index 559f0d4122c3a2bd77237f63e727605496239b61..75d4d2c327fdc157b769ea318be7c7986cc8857f 100644
--- a/helpers/tbx11k_make_splits.py
+++ b/helpers/tbx11k_make_splits.py
@@ -2,7 +2,7 @@
 #
 # SPDX-License-Identifier: GPL-3.0-or-later
 """Converts TBX11k JSON annotation files into simplified JSON datasets for
-mednet.
+mednet.libs.classification.
 
 Requires ``datadir.tbx11k`` to be set on your configuration file, or that you
 are sitting at the root directory of the database.
@@ -413,7 +413,7 @@ def main():
     from clapper.rc import UserDefaults
 
     datadir = pathlib.Path(
-        UserDefaults("mednet.toml").get(
+        UserDefaults("mednet.libs.classification.toml").get(
             "datadir.tbx11k",
             os.path.realpath(os.curdir),
         ),
diff --git a/pyproject.toml b/pyproject.toml
index b182482621e3cd4e3ef7356b1d3fe14227dc171e..3a5d57eb7f5428f65a675c9950ed5e4be87b5315 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -235,16 +235,16 @@ include = [
 [tool.hatch.build.targets.wheel]
 packages = ["src/mednet"]
 
-[project.entry-points."mednet.config"]
+[project.entry-points."mednet.libs.classification.config"]
 
 # models
-pasa = "mednet.config.models.pasa"
-mlp = "mednet.config.models.mlp"
-logistic-regression = "mednet.config.models.logistic_regression"
-alexnet = "mednet.config.models.alexnet"
-alexnet-pretrained = "mednet.config.models.alexnet_pretrained"
-densenet = "mednet.config.models.densenet"
-densenet-pretrained = "mednet.config.models.densenet_pretrained"
+pasa = "mednet.libs.classification.config.models.pasa"
+mlp = "mednet.libs.classification.config.models.mlp"
+logistic-regression = "mednet.libs.classification.config.models.logistic_regression"
+alexnet = "mednet.libs.classification.config.models.alexnet"
+alexnet-pretrained = "mednet.libs.classification.config.models.alexnet_pretrained"
+densenet = "mednet.libs.classification.config.models.densenet"
+densenet-pretrained = "mednet.libs.classification.config.models.densenet_pretrained"
 
 # 3D models
 cnn3d = "mednet.config.models.cnn3d"
@@ -258,160 +258,160 @@ hflip-affine = "mednet.config.augmentations.hflip_affine"
 hflip-jitter-affine = "mednet.config.augmentations.hflip_jitter_affine"
 
 # montgomery dataset (and cross-validation folds)
-montgomery = "mednet.config.data.montgomery.default"
-montgomery-f0 = "mednet.config.data.montgomery.fold_0"
-montgomery-f1 = "mednet.config.data.montgomery.fold_1"
-montgomery-f2 = "mednet.config.data.montgomery.fold_2"
-montgomery-f3 = "mednet.config.data.montgomery.fold_3"
-montgomery-f4 = "mednet.config.data.montgomery.fold_4"
-montgomery-f5 = "mednet.config.data.montgomery.fold_5"
-montgomery-f6 = "mednet.config.data.montgomery.fold_6"
-montgomery-f7 = "mednet.config.data.montgomery.fold_7"
-montgomery-f8 = "mednet.config.data.montgomery.fold_8"
-montgomery-f9 = "mednet.config.data.montgomery.fold_9"
+montgomery = "mednet.libs.classification.config.data.montgomery.default"
+montgomery-f0 = "mednet.libs.classification.config.data.montgomery.fold_0"
+montgomery-f1 = "mednet.libs.classification.config.data.montgomery.fold_1"
+montgomery-f2 = "mednet.libs.classification.config.data.montgomery.fold_2"
+montgomery-f3 = "mednet.libs.classification.config.data.montgomery.fold_3"
+montgomery-f4 = "mednet.libs.classification.config.data.montgomery.fold_4"
+montgomery-f5 = "mednet.libs.classification.config.data.montgomery.fold_5"
+montgomery-f6 = "mednet.libs.classification.config.data.montgomery.fold_6"
+montgomery-f7 = "mednet.libs.classification.config.data.montgomery.fold_7"
+montgomery-f8 = "mednet.libs.classification.config.data.montgomery.fold_8"
+montgomery-f9 = "mednet.libs.classification.config.data.montgomery.fold_9"
 
 # shenzhen dataset (and cross-validation folds)
-shenzhen = "mednet.config.data.shenzhen.default"
-shenzhen-alltest = "mednet.config.data.shenzhen.alltest"
-shenzhen-f0 = "mednet.config.data.shenzhen.fold_0"
-shenzhen-f1 = "mednet.config.data.shenzhen.fold_1"
-shenzhen-f2 = "mednet.config.data.shenzhen.fold_2"
-shenzhen-f3 = "mednet.config.data.shenzhen.fold_3"
-shenzhen-f4 = "mednet.config.data.shenzhen.fold_4"
-shenzhen-f5 = "mednet.config.data.shenzhen.fold_5"
-shenzhen-f6 = "mednet.config.data.shenzhen.fold_6"
-shenzhen-f7 = "mednet.config.data.shenzhen.fold_7"
-shenzhen-f8 = "mednet.config.data.shenzhen.fold_8"
-shenzhen-f9 = "mednet.config.data.shenzhen.fold_9"
+shenzhen = "mednet.libs.classification.config.data.shenzhen.default"
+shenzhen-alltest = "mednet.libs.classification.config.data.shenzhen.alltest"
+shenzhen-f0 = "mednet.libs.classification.config.data.shenzhen.fold_0"
+shenzhen-f1 = "mednet.libs.classification.config.data.shenzhen.fold_1"
+shenzhen-f2 = "mednet.libs.classification.config.data.shenzhen.fold_2"
+shenzhen-f3 = "mednet.libs.classification.config.data.shenzhen.fold_3"
+shenzhen-f4 = "mednet.libs.classification.config.data.shenzhen.fold_4"
+shenzhen-f5 = "mednet.libs.classification.config.data.shenzhen.fold_5"
+shenzhen-f6 = "mednet.libs.classification.config.data.shenzhen.fold_6"
+shenzhen-f7 = "mednet.libs.classification.config.data.shenzhen.fold_7"
+shenzhen-f8 = "mednet.libs.classification.config.data.shenzhen.fold_8"
+shenzhen-f9 = "mednet.libs.classification.config.data.shenzhen.fold_9"
 
 # indian dataset (and cross-validation folds)
-indian = "mednet.config.data.indian.default"
-indian-f0 = "mednet.config.data.indian.fold_0"
-indian-f1 = "mednet.config.data.indian.fold_1"
-indian-f2 = "mednet.config.data.indian.fold_2"
-indian-f3 = "mednet.config.data.indian.fold_3"
-indian-f4 = "mednet.config.data.indian.fold_4"
-indian-f5 = "mednet.config.data.indian.fold_5"
-indian-f6 = "mednet.config.data.indian.fold_6"
-indian-f7 = "mednet.config.data.indian.fold_7"
-indian-f8 = "mednet.config.data.indian.fold_8"
-indian-f9 = "mednet.config.data.indian.fold_9"
+indian = "mednet.libs.classification.config.data.indian.default"
+indian-f0 = "mednet.libs.classification.config.data.indian.fold_0"
+indian-f1 = "mednet.libs.classification.config.data.indian.fold_1"
+indian-f2 = "mednet.libs.classification.config.data.indian.fold_2"
+indian-f3 = "mednet.libs.classification.config.data.indian.fold_3"
+indian-f4 = "mednet.libs.classification.config.data.indian.fold_4"
+indian-f5 = "mednet.libs.classification.config.data.indian.fold_5"
+indian-f6 = "mednet.libs.classification.config.data.indian.fold_6"
+indian-f7 = "mednet.libs.classification.config.data.indian.fold_7"
+indian-f8 = "mednet.libs.classification.config.data.indian.fold_8"
+indian-f9 = "mednet.libs.classification.config.data.indian.fold_9"
 
 # TBX11K dataset split 1: healthy vs active tb, and cross-validation folds
-tbx11k-v1-healthy-vs-atb = "mednet.config.data.tbx11k.v1_healthy_vs_atb"
-tbx11k-v1-f0 = "mednet.config.data.tbx11k.v1_fold_0"
-tbx11k-v1-f1 = "mednet.config.data.tbx11k.v1_fold_1"
-tbx11k-v1-f2 = "mednet.config.data.tbx11k.v1_fold_2"
-tbx11k-v1-f3 = "mednet.config.data.tbx11k.v1_fold_3"
-tbx11k-v1-f4 = "mednet.config.data.tbx11k.v1_fold_4"
-tbx11k-v1-f5 = "mednet.config.data.tbx11k.v1_fold_5"
-tbx11k-v1-f6 = "mednet.config.data.tbx11k.v1_fold_6"
-tbx11k-v1-f7 = "mednet.config.data.tbx11k.v1_fold_7"
-tbx11k-v1-f8 = "mednet.config.data.tbx11k.v1_fold_8"
-tbx11k-v1-f9 = "mednet.config.data.tbx11k.v1_fold_9"
+tbx11k-v1-healthy-vs-atb = "mednet.libs.classification.config.data.tbx11k.v1_healthy_vs_atb"
+tbx11k-v1-f0 = "mednet.libs.classification.config.data.tbx11k.v1_fold_0"
+tbx11k-v1-f1 = "mednet.libs.classification.config.data.tbx11k.v1_fold_1"
+tbx11k-v1-f2 = "mednet.libs.classification.config.data.tbx11k.v1_fold_2"
+tbx11k-v1-f3 = "mednet.libs.classification.config.data.tbx11k.v1_fold_3"
+tbx11k-v1-f4 = "mednet.libs.classification.config.data.tbx11k.v1_fold_4"
+tbx11k-v1-f5 = "mednet.libs.classification.config.data.tbx11k.v1_fold_5"
+tbx11k-v1-f6 = "mednet.libs.classification.config.data.tbx11k.v1_fold_6"
+tbx11k-v1-f7 = "mednet.libs.classification.config.data.tbx11k.v1_fold_7"
+tbx11k-v1-f8 = "mednet.libs.classification.config.data.tbx11k.v1_fold_8"
+tbx11k-v1-f9 = "mednet.libs.classification.config.data.tbx11k.v1_fold_9"
 
 # TBX11K dataset split 2: others vs active tb, and cross-validation folds
-tbx11k-v2-others-vs-atb = "mednet.config.data.tbx11k.v2_others_vs_atb"
-tbx11k-v2-f0 = "mednet.config.data.tbx11k.v2_fold_0"
-tbx11k-v2-f1 = "mednet.config.data.tbx11k.v2_fold_1"
-tbx11k-v2-f2 = "mednet.config.data.tbx11k.v2_fold_2"
-tbx11k-v2-f3 = "mednet.config.data.tbx11k.v2_fold_3"
-tbx11k-v2-f4 = "mednet.config.data.tbx11k.v2_fold_4"
-tbx11k-v2-f5 = "mednet.config.data.tbx11k.v2_fold_5"
-tbx11k-v2-f6 = "mednet.config.data.tbx11k.v2_fold_6"
-tbx11k-v2-f7 = "mednet.config.data.tbx11k.v2_fold_7"
-tbx11k-v2-f8 = "mednet.config.data.tbx11k.v2_fold_8"
-tbx11k-v2-f9 = "mednet.config.data.tbx11k.v2_fold_9"
+tbx11k-v2-others-vs-atb = "mednet.libs.classification.config.data.tbx11k.v2_others_vs_atb"
+tbx11k-v2-f0 = "mednet.libs.classification.config.data.tbx11k.v2_fold_0"
+tbx11k-v2-f1 = "mednet.libs.classification.config.data.tbx11k.v2_fold_1"
+tbx11k-v2-f2 = "mednet.libs.classification.config.data.tbx11k.v2_fold_2"
+tbx11k-v2-f3 = "mednet.libs.classification.config.data.tbx11k.v2_fold_3"
+tbx11k-v2-f4 = "mednet.libs.classification.config.data.tbx11k.v2_fold_4"
+tbx11k-v2-f5 = "mednet.libs.classification.config.data.tbx11k.v2_fold_5"
+tbx11k-v2-f6 = "mednet.libs.classification.config.data.tbx11k.v2_fold_6"
+tbx11k-v2-f7 = "mednet.libs.classification.config.data.tbx11k.v2_fold_7"
+tbx11k-v2-f8 = "mednet.libs.classification.config.data.tbx11k.v2_fold_8"
+tbx11k-v2-f9 = "mednet.libs.classification.config.data.tbx11k.v2_fold_9"
 
 # montgomery-shenzhen aggregated dataset
-montgomery-shenzhen = "mednet.config.data.montgomery_shenzhen.default"
-montgomery-shenzhen-f0 = "mednet.config.data.montgomery_shenzhen.fold_0"
-montgomery-shenzhen-f1 = "mednet.config.data.montgomery_shenzhen.fold_1"
-montgomery-shenzhen-f2 = "mednet.config.data.montgomery_shenzhen.fold_2"
-montgomery-shenzhen-f3 = "mednet.config.data.montgomery_shenzhen.fold_3"
-montgomery-shenzhen-f4 = "mednet.config.data.montgomery_shenzhen.fold_4"
-montgomery-shenzhen-f5 = "mednet.config.data.montgomery_shenzhen.fold_5"
-montgomery-shenzhen-f6 = "mednet.config.data.montgomery_shenzhen.fold_6"
-montgomery-shenzhen-f7 = "mednet.config.data.montgomery_shenzhen.fold_7"
-montgomery-shenzhen-f8 = "mednet.config.data.montgomery_shenzhen.fold_8"
-montgomery-shenzhen-f9 = "mednet.config.data.montgomery_shenzhen.fold_9"
+montgomery-shenzhen = "mednet.libs.classification.config.data.montgomery_shenzhen.default"
+montgomery-shenzhen-f0 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_0"
+montgomery-shenzhen-f1 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_1"
+montgomery-shenzhen-f2 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_2"
+montgomery-shenzhen-f3 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_3"
+montgomery-shenzhen-f4 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_4"
+montgomery-shenzhen-f5 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_5"
+montgomery-shenzhen-f6 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_6"
+montgomery-shenzhen-f7 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_7"
+montgomery-shenzhen-f8 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_8"
+montgomery-shenzhen-f9 = "mednet.libs.classification.config.data.montgomery_shenzhen.fold_9"
 
 # montgomery-shenzhen-indian aggregated dataset
-montgomery-shenzhen-indian = "mednet.config.data.montgomery_shenzhen_indian.default"
-montgomery-shenzhen-indian-f0 = "mednet.config.data.montgomery_shenzhen_indian.fold_0"
-montgomery-shenzhen-indian-f1 = "mednet.config.data.montgomery_shenzhen_indian.fold_1"
-montgomery-shenzhen-indian-f2 = "mednet.config.data.montgomery_shenzhen_indian.fold_2"
-montgomery-shenzhen-indian-f3 = "mednet.config.data.montgomery_shenzhen_indian.fold_3"
-montgomery-shenzhen-indian-f4 = "mednet.config.data.montgomery_shenzhen_indian.fold_4"
-montgomery-shenzhen-indian-f5 = "mednet.config.data.montgomery_shenzhen_indian.fold_5"
-montgomery-shenzhen-indian-f6 = "mednet.config.data.montgomery_shenzhen_indian.fold_6"
-montgomery-shenzhen-indian-f7 = "mednet.config.data.montgomery_shenzhen_indian.fold_7"
-montgomery-shenzhen-indian-f8 = "mednet.config.data.montgomery_shenzhen_indian.fold_8"
-montgomery-shenzhen-indian-f9 = "mednet.config.data.montgomery_shenzhen_indian.fold_9"
+montgomery-shenzhen-indian = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.default"
+montgomery-shenzhen-indian-f0 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_0"
+montgomery-shenzhen-indian-f1 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_1"
+montgomery-shenzhen-indian-f2 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_2"
+montgomery-shenzhen-indian-f3 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_3"
+montgomery-shenzhen-indian-f4 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_4"
+montgomery-shenzhen-indian-f5 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_5"
+montgomery-shenzhen-indian-f6 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_6"
+montgomery-shenzhen-indian-f7 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_7"
+montgomery-shenzhen-indian-f8 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_8"
+montgomery-shenzhen-indian-f9 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian.fold_9"
 
 # montgomery-shenzhen-indian-tbx11k aggregated dataset
-montgomery-shenzhen-indian-tbx11k-v1 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_healthy_vs_atb"
-montgomery-shenzhen-indian-tbx11k-v1-f0 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_0"
-montgomery-shenzhen-indian-tbx11k-v1-f1 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_1"
-montgomery-shenzhen-indian-tbx11k-v1-f2 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_2"
-montgomery-shenzhen-indian-tbx11k-v1-f3 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_3"
-montgomery-shenzhen-indian-tbx11k-v1-f4 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_4"
-montgomery-shenzhen-indian-tbx11k-v1-f5 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_5"
-montgomery-shenzhen-indian-tbx11k-v1-f6 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_6"
-montgomery-shenzhen-indian-tbx11k-v1-f7 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_7"
-montgomery-shenzhen-indian-tbx11k-v1-f8 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_8"
-montgomery-shenzhen-indian-tbx11k-v1-f9 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_9"
-montgomery-shenzhen-indian-tbx11k-v2 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_others_vs_atb"
-montgomery-shenzhen-indian-tbx11k-v2-f0 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_0"
-montgomery-shenzhen-indian-tbx11k-v2-f1 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_1"
-montgomery-shenzhen-indian-tbx11k-v2-f2 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_2"
-montgomery-shenzhen-indian-tbx11k-v2-f3 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_3"
-montgomery-shenzhen-indian-tbx11k-v2-f4 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_4"
-montgomery-shenzhen-indian-tbx11k-v2-f5 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_5"
-montgomery-shenzhen-indian-tbx11k-v2-f6 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_6"
-montgomery-shenzhen-indian-tbx11k-v2-f7 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_7"
-montgomery-shenzhen-indian-tbx11k-v2-f8 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_8"
-montgomery-shenzhen-indian-tbx11k-v2-f9 = "mednet.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_9"
+montgomery-shenzhen-indian-tbx11k-v1 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_healthy_vs_atb"
+montgomery-shenzhen-indian-tbx11k-v1-f0 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_0"
+montgomery-shenzhen-indian-tbx11k-v1-f1 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_1"
+montgomery-shenzhen-indian-tbx11k-v1-f2 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_2"
+montgomery-shenzhen-indian-tbx11k-v1-f3 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_3"
+montgomery-shenzhen-indian-tbx11k-v1-f4 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_4"
+montgomery-shenzhen-indian-tbx11k-v1-f5 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_5"
+montgomery-shenzhen-indian-tbx11k-v1-f6 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_6"
+montgomery-shenzhen-indian-tbx11k-v1-f7 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_7"
+montgomery-shenzhen-indian-tbx11k-v1-f8 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_8"
+montgomery-shenzhen-indian-tbx11k-v1-f9 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_9"
+montgomery-shenzhen-indian-tbx11k-v2 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_others_vs_atb"
+montgomery-shenzhen-indian-tbx11k-v2-f0 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_0"
+montgomery-shenzhen-indian-tbx11k-v2-f1 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_1"
+montgomery-shenzhen-indian-tbx11k-v2-f2 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_2"
+montgomery-shenzhen-indian-tbx11k-v2-f3 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_3"
+montgomery-shenzhen-indian-tbx11k-v2-f4 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_4"
+montgomery-shenzhen-indian-tbx11k-v2-f5 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_5"
+montgomery-shenzhen-indian-tbx11k-v2-f6 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_6"
+montgomery-shenzhen-indian-tbx11k-v2-f7 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_7"
+montgomery-shenzhen-indian-tbx11k-v2-f8 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_8"
+montgomery-shenzhen-indian-tbx11k-v2-f9 = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_9"
 
 # tbpoc dataset (only cross-validation folds)
-tbpoc-f0 = "mednet.config.data.tbpoc.fold_0"
-tbpoc-f1 = "mednet.config.data.tbpoc.fold_1"
-tbpoc-f2 = "mednet.config.data.tbpoc.fold_2"
-tbpoc-f3 = "mednet.config.data.tbpoc.fold_3"
-tbpoc-f4 = "mednet.config.data.tbpoc.fold_4"
-tbpoc-f5 = "mednet.config.data.tbpoc.fold_5"
-tbpoc-f6 = "mednet.config.data.tbpoc.fold_6"
-tbpoc-f7 = "mednet.config.data.tbpoc.fold_7"
-tbpoc-f8 = "mednet.config.data.tbpoc.fold_8"
-tbpoc-f9 = "mednet.config.data.tbpoc.fold_9"
+tbpoc-f0 = "mednet.libs.classification.config.data.tbpoc.fold_0"
+tbpoc-f1 = "mednet.libs.classification.config.data.tbpoc.fold_1"
+tbpoc-f2 = "mednet.libs.classification.config.data.tbpoc.fold_2"
+tbpoc-f3 = "mednet.libs.classification.config.data.tbpoc.fold_3"
+tbpoc-f4 = "mednet.libs.classification.config.data.tbpoc.fold_4"
+tbpoc-f5 = "mednet.libs.classification.config.data.tbpoc.fold_5"
+tbpoc-f6 = "mednet.libs.classification.config.data.tbpoc.fold_6"
+tbpoc-f7 = "mednet.libs.classification.config.data.tbpoc.fold_7"
+tbpoc-f8 = "mednet.libs.classification.config.data.tbpoc.fold_8"
+tbpoc-f9 = "mednet.libs.classification.config.data.tbpoc.fold_9"
 
 # hivtb dataset (only cross-validation folds)
-hivtb-f0 = "mednet.config.data.hivtb.fold_0"
-hivtb-f1 = "mednet.config.data.hivtb.fold_1"
-hivtb-f2 = "mednet.config.data.hivtb.fold_2"
-hivtb-f3 = "mednet.config.data.hivtb.fold_3"
-hivtb-f4 = "mednet.config.data.hivtb.fold_4"
-hivtb-f5 = "mednet.config.data.hivtb.fold_5"
-hivtb-f6 = "mednet.config.data.hivtb.fold_6"
-hivtb-f7 = "mednet.config.data.hivtb.fold_7"
-hivtb-f8 = "mednet.config.data.hivtb.fold_8"
-hivtb-f9 = "mednet.config.data.hivtb.fold_9"
+hivtb-f0 = "mednet.libs.classification.config.data.hivtb.fold_0"
+hivtb-f1 = "mednet.libs.classification.config.data.hivtb.fold_1"
+hivtb-f2 = "mednet.libs.classification.config.data.hivtb.fold_2"
+hivtb-f3 = "mednet.libs.classification.config.data.hivtb.fold_3"
+hivtb-f4 = "mednet.libs.classification.config.data.hivtb.fold_4"
+hivtb-f5 = "mednet.libs.classification.config.data.hivtb.fold_5"
+hivtb-f6 = "mednet.libs.classification.config.data.hivtb.fold_6"
+hivtb-f7 = "mednet.libs.classification.config.data.hivtb.fold_7"
+hivtb-f8 = "mednet.libs.classification.config.data.hivtb.fold_8"
+hivtb-f9 = "mednet.libs.classification.config.data.hivtb.fold_9"
 
 # NIH CXR14 (relabeled), multi-class (14 labels)
-nih-cxr14 = "mednet.config.data.nih_cxr14.default"
-nih-cxr14-cardiomegaly = "mednet.config.data.nih_cxr14.cardiomegaly"
+nih-cxr14 = "mednet.libs.classification.config.data.nih_cxr14.default"
+nih-cxr14-cardiomegaly = "mednet.libs.classification.config.data.nih_cxr14.cardiomegaly"
 
 # PadChest, multi-class (varied number of labels)
-padchest-idiap = "mednet.config.data.padchest.idiap"
-padchest-tb-idiap = "mednet.config.data.padchest.tb_idiap"
-padchest-no-tb-idiap = "mednet.config.data.padchest.no_tb_idiap"
-padchest-cardiomegaly-idiap = "mednet.config.data.padchest.cardiomegaly_idiap"
+padchest-idiap = "mednet.libs.classification.config.data.padchest.idiap"
+padchest-tb-idiap = "mednet.libs.classification.config.data.padchest.tb_idiap"
+padchest-no-tb-idiap = "mednet.libs.classification.config.data.padchest.no_tb_idiap"
+padchest-cardiomegaly-idiap = "mednet.libs.classification.config.data.padchest.cardiomegaly_idiap"
 
 # NIH CXR14 / PadChest aggregated dataset
-nih-cxr14-padchest = "mednet.config.data.nih_cxr14_padchest.idiap"
+nih-cxr14-padchest = "mednet.libs.classification.config.data.nih_cxr14_padchest.idiap"
 
 # montgomery-shenzhen-indian-padchest aggregated dataset
-montgomery-shenzhen-indian-padchest = "mednet.config.data.montgomery_shenzhen_indian_padchest.default"
+montgomery-shenzhen-indian-padchest = "mednet.libs.classification.config.data.montgomery_shenzhen_indian_padchest.default"
 
 # VISCERAL dataset
 visceral = "mednet.config.data.visceral.default"
diff --git a/src/medbase/__init__.py b/src/mednet/libs/classification/__init__.py
similarity index 100%
rename from src/medbase/__init__.py
rename to src/mednet/libs/classification/__init__.py
diff --git a/src/medbase/engine/__init__.py b/src/mednet/libs/classification/config/__init__.py
similarity index 100%
rename from src/medbase/engine/__init__.py
rename to src/mednet/libs/classification/config/__init__.py
diff --git a/src/medbase/utils/__init__.py b/src/mednet/libs/classification/config/data/__init__.py
similarity index 100%
rename from src/medbase/utils/__init__.py
rename to src/mednet/libs/classification/config/data/__init__.py
diff --git a/src/mednet/__init__.py b/src/mednet/libs/classification/config/data/hivtb/__init__.py
similarity index 100%
rename from src/mednet/__init__.py
rename to src/mednet/libs/classification/config/data/hivtb/__init__.py
diff --git a/src/mednet/config/data/hivtb/datamodule.py b/src/mednet/libs/classification/config/data/hivtb/datamodule.py
similarity index 92%
rename from src/mednet/config/data/hivtb/datamodule.py
rename to src/mednet/libs/classification/config/data/hivtb/datamodule.py
index 21f773b24f4695da7ac4dab8b7a3bb8a76606f1a..190832504db85bd9e07b1f561a31e0d4841e3dad 100644
--- a/src/mednet/config/data/hivtb/datamodule.py
+++ b/src/mednet/libs/classification/config/data/hivtb/datamodule.py
@@ -10,14 +10,13 @@ import os
 import pathlib
 
 import PIL.Image
+from mednet.libs.common.data.datamodule import CachingDataModule
+from mednet.libs.common.data.image_utils import remove_black_borders
+from mednet.libs.common.data.split import make_split
+from mednet.libs.common.data.typing import Sample
+from mednet.libs.common.data.typing import RawDataLoader as _BaseRawDataLoader
 from torchvision.transforms.functional import to_tensor
 
-from medbase.data.datamodule import CachingDataModule
-from medbase.data.image_utils import remove_black_borders
-from medbase.data.split import make_split
-from medbase.data.typing import RawDataLoader as _BaseRawDataLoader
-from medbase.data.typing import Sample
-
 from ....utils.rc import load_rc
 
 CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2])
diff --git a/src/mednet/config/data/hivtb/fold-0.json b/src/mednet/libs/classification/config/data/hivtb/fold-0.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-0.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-0.json
diff --git a/src/mednet/config/data/hivtb/fold-1.json b/src/mednet/libs/classification/config/data/hivtb/fold-1.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-1.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-1.json
diff --git a/src/mednet/config/data/hivtb/fold-2.json b/src/mednet/libs/classification/config/data/hivtb/fold-2.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-2.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-2.json
diff --git a/src/mednet/config/data/hivtb/fold-3.json b/src/mednet/libs/classification/config/data/hivtb/fold-3.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-3.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-3.json
diff --git a/src/mednet/config/data/hivtb/fold-4.json b/src/mednet/libs/classification/config/data/hivtb/fold-4.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-4.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-4.json
diff --git a/src/mednet/config/data/hivtb/fold-5.json b/src/mednet/libs/classification/config/data/hivtb/fold-5.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-5.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-5.json
diff --git a/src/mednet/config/data/hivtb/fold-6.json b/src/mednet/libs/classification/config/data/hivtb/fold-6.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-6.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-6.json
diff --git a/src/mednet/config/data/hivtb/fold-7.json b/src/mednet/libs/classification/config/data/hivtb/fold-7.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-7.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-7.json
diff --git a/src/mednet/config/data/hivtb/fold-8.json b/src/mednet/libs/classification/config/data/hivtb/fold-8.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-8.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-8.json
diff --git a/src/mednet/config/data/hivtb/fold-9.json b/src/mednet/libs/classification/config/data/hivtb/fold-9.json
similarity index 100%
rename from src/mednet/config/data/hivtb/fold-9.json
rename to src/mednet/libs/classification/config/data/hivtb/fold-9.json
diff --git a/src/mednet/config/data/hivtb/fold_0.py b/src/mednet/libs/classification/config/data/hivtb/fold_0.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_0.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_0.py
index fb3a4c7425901e270ab446f28b4aa38151dbd503..1c64db6d37a7d90d77b008dba0e63fbf1a92fe84 100644
--- a/src/mednet/config/data/hivtb/fold_0.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_0.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-0.json")
diff --git a/src/mednet/config/data/hivtb/fold_1.py b/src/mednet/libs/classification/config/data/hivtb/fold_1.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_1.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_1.py
index 6501367172ccfda1b1fd981c065895cfacd67e95..98401e1e8e5a7e921d4bf53b702a1a33f13cd7d3 100644
--- a/src/mednet/config/data/hivtb/fold_1.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_1.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-1.json")
diff --git a/src/mednet/config/data/hivtb/fold_2.py b/src/mednet/libs/classification/config/data/hivtb/fold_2.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_2.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_2.py
index 0436ae41b7a9375227e21ebc959d89272e80e584..b977dee9f5c3d3f2b05b3c323577abd607f65c66 100644
--- a/src/mednet/config/data/hivtb/fold_2.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_2.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-2.json")
diff --git a/src/mednet/config/data/hivtb/fold_3.py b/src/mednet/libs/classification/config/data/hivtb/fold_3.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_3.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_3.py
index b657bb4784e55c32af4062dd08c401b41ee665de..e3ab07912f739b96d1048ec84da5a1aa8718bf78 100644
--- a/src/mednet/config/data/hivtb/fold_3.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_3.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-3.json")
diff --git a/src/mednet/config/data/hivtb/fold_4.py b/src/mednet/libs/classification/config/data/hivtb/fold_4.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_4.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_4.py
index 9265421823555f4c1453cae8a37403aa0d914e0f..72ce72431532ece277bb627022d09a1769b2c175 100644
--- a/src/mednet/config/data/hivtb/fold_4.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_4.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-4.json")
diff --git a/src/mednet/config/data/hivtb/fold_5.py b/src/mednet/libs/classification/config/data/hivtb/fold_5.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_5.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_5.py
index 9cce77de6cdab41f9bbf094eb68db3e6dc4b2af1..18ab3a984bb86200c2f368d84d98db25ae6d65ce 100644
--- a/src/mednet/config/data/hivtb/fold_5.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_5.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-5.json")
diff --git a/src/mednet/config/data/hivtb/fold_6.py b/src/mednet/libs/classification/config/data/hivtb/fold_6.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_6.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_6.py
index b52509a8dfad7f0b3af088f07a20697bd8e4838d..0763f92e5d7621820a0b519ee3885b693016229f 100644
--- a/src/mednet/config/data/hivtb/fold_6.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_6.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-6.json")
diff --git a/src/mednet/config/data/hivtb/fold_7.py b/src/mednet/libs/classification/config/data/hivtb/fold_7.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_7.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_7.py
index c2af009cf6e93c2b8e4ca24787830a35d2411ca5..4078ef8a13e5d1689920d031f27ddad086308c3c 100644
--- a/src/mednet/config/data/hivtb/fold_7.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_7.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-7.json")
diff --git a/src/mednet/config/data/hivtb/fold_8.py b/src/mednet/libs/classification/config/data/hivtb/fold_8.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_8.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_8.py
index b76fda84a67b0fbeb90147669526008121bf07b8..8f26c5392636960681eedd5215ae58a3545b9425 100644
--- a/src/mednet/config/data/hivtb/fold_8.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_8.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-8.json")
diff --git a/src/mednet/config/data/hivtb/fold_9.py b/src/mednet/libs/classification/config/data/hivtb/fold_9.py
similarity index 60%
rename from src/mednet/config/data/hivtb/fold_9.py
rename to src/mednet/libs/classification/config/data/hivtb/fold_9.py
index c2c92410b7dc5af00dc4bd04d72e88169e1c9383..911590af68506b9ab82feec6e2c69e0f903a69d2 100644
--- a/src/mednet/config/data/hivtb/fold_9.py
+++ b/src/mednet/libs/classification/config/data/hivtb/fold_9.py
@@ -5,9 +5,9 @@
 
 Database reference: [HIV-TB-2019]_
 
-See :py:class:`mednet.config.data.hivtb.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.hivtb.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.hivtb.datamodule import DataModule
+from mednet.libs.classification.config.data.hivtb.datamodule import DataModule
 
 datamodule = DataModule("fold-9.json")
diff --git a/src/mednet/config/__init__.py b/src/mednet/libs/classification/config/data/indian/__init__.py
similarity index 100%
rename from src/mednet/config/__init__.py
rename to src/mednet/libs/classification/config/data/indian/__init__.py
diff --git a/src/mednet/config/data/indian/datamodule.py b/src/mednet/libs/classification/config/data/indian/datamodule.py
similarity index 94%
rename from src/mednet/config/data/indian/datamodule.py
rename to src/mednet/libs/classification/config/data/indian/datamodule.py
index f6825bba1e666abef37afea034aa5b29eb4081ec..6b4f9c77631e00f6a2cb1172b18147151112b0b9 100644
--- a/src/mednet/config/data/indian/datamodule.py
+++ b/src/mednet/libs/classification/config/data/indian/datamodule.py
@@ -8,8 +8,8 @@ Database reference: [INDIAN-2013]_
 
 import pathlib
 
-from medbase.data.datamodule import CachingDataModule
-from medbase.data.split import make_split
+from mednet.libs.common.data.datamodule import CachingDataModule
+from mednet.libs.common.data.split import make_split
 
 from ....config.data.shenzhen.datamodule import RawDataLoader
 
diff --git a/src/mednet/config/data/indian/default.json b/src/mednet/libs/classification/config/data/indian/default.json
similarity index 100%
rename from src/mednet/config/data/indian/default.json
rename to src/mednet/libs/classification/config/data/indian/default.json
diff --git a/src/mednet/config/data/indian/default.py b/src/mednet/libs/classification/config/data/indian/default.py
similarity index 60%
rename from src/mednet/config/data/indian/default.py
rename to src/mednet/libs/classification/config/data/indian/default.py
index 9c402b8e2df213dcb9087e7048b58accef9b7827..4633effd2e81aa84100c5f6f42c73d24a1e10920 100644
--- a/src/mednet/config/data/indian/default.py
+++ b/src/mednet/libs/classification/config/data/indian/default.py
@@ -5,9 +5,9 @@
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("default.json")
diff --git a/src/mednet/config/data/indian/fold-0.json b/src/mednet/libs/classification/config/data/indian/fold-0.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-0.json
rename to src/mednet/libs/classification/config/data/indian/fold-0.json
diff --git a/src/mednet/config/data/indian/fold-1.json b/src/mednet/libs/classification/config/data/indian/fold-1.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-1.json
rename to src/mednet/libs/classification/config/data/indian/fold-1.json
diff --git a/src/mednet/config/data/indian/fold-2.json b/src/mednet/libs/classification/config/data/indian/fold-2.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-2.json
rename to src/mednet/libs/classification/config/data/indian/fold-2.json
diff --git a/src/mednet/config/data/indian/fold-3.json b/src/mednet/libs/classification/config/data/indian/fold-3.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-3.json
rename to src/mednet/libs/classification/config/data/indian/fold-3.json
diff --git a/src/mednet/config/data/indian/fold-4.json b/src/mednet/libs/classification/config/data/indian/fold-4.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-4.json
rename to src/mednet/libs/classification/config/data/indian/fold-4.json
diff --git a/src/mednet/config/data/indian/fold-5.json b/src/mednet/libs/classification/config/data/indian/fold-5.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-5.json
rename to src/mednet/libs/classification/config/data/indian/fold-5.json
diff --git a/src/mednet/config/data/indian/fold-6.json b/src/mednet/libs/classification/config/data/indian/fold-6.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-6.json
rename to src/mednet/libs/classification/config/data/indian/fold-6.json
diff --git a/src/mednet/config/data/indian/fold-7.json b/src/mednet/libs/classification/config/data/indian/fold-7.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-7.json
rename to src/mednet/libs/classification/config/data/indian/fold-7.json
diff --git a/src/mednet/config/data/indian/fold-8.json b/src/mednet/libs/classification/config/data/indian/fold-8.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-8.json
rename to src/mednet/libs/classification/config/data/indian/fold-8.json
diff --git a/src/mednet/config/data/indian/fold-9.json b/src/mednet/libs/classification/config/data/indian/fold-9.json
similarity index 100%
rename from src/mednet/config/data/indian/fold-9.json
rename to src/mednet/libs/classification/config/data/indian/fold-9.json
diff --git a/src/mednet/config/data/indian/fold_0.py b/src/mednet/libs/classification/config/data/indian/fold_0.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_0.py
rename to src/mednet/libs/classification/config/data/indian/fold_0.py
index 3f6d60e77a8c6e88dce67dc8485121780b182dd6..b476423f2de9cbb7f5c2ff1fc88009c0ece7e3cb 100644
--- a/src/mednet/config/data/indian/fold_0.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_0.py
@@ -6,9 +6,9 @@
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-0.json")
diff --git a/src/mednet/config/data/indian/fold_1.py b/src/mednet/libs/classification/config/data/indian/fold_1.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_1.py
rename to src/mednet/libs/classification/config/data/indian/fold_1.py
index 7c7548e2e954bf057ada610dd8bf0aa5b1d041ac..525609347ce45a4904f1d993208c1b1b418c72f6 100644
--- a/src/mednet/config/data/indian/fold_1.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_1.py
@@ -6,9 +6,9 @@ fold 1).
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-1.json")
diff --git a/src/mednet/config/data/indian/fold_2.py b/src/mednet/libs/classification/config/data/indian/fold_2.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_2.py
rename to src/mednet/libs/classification/config/data/indian/fold_2.py
index b849a5183fd3fb2154b035aa85ac14130ccb559f..f9857d821232a3d36e9566939048ea7b6b07aab7 100644
--- a/src/mednet/config/data/indian/fold_2.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_2.py
@@ -6,9 +6,9 @@ fold 2).
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-2.json")
diff --git a/src/mednet/config/data/indian/fold_3.py b/src/mednet/libs/classification/config/data/indian/fold_3.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_3.py
rename to src/mednet/libs/classification/config/data/indian/fold_3.py
index c992855d771761544f4cc73fcf3e6d8fd1787a2b..fc3ca3aa31dea54e39df20bb4794ad5aa856ea61 100644
--- a/src/mednet/config/data/indian/fold_3.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_3.py
@@ -6,9 +6,9 @@ fold 3).
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-3.json")
diff --git a/src/mednet/config/data/indian/fold_4.py b/src/mednet/libs/classification/config/data/indian/fold_4.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_4.py
rename to src/mednet/libs/classification/config/data/indian/fold_4.py
index 8385f0fea7ed608e41ab2c99b4cfe99200894823..b42e140c0d7faaeff50374ff96393b6f4bd2402f 100644
--- a/src/mednet/config/data/indian/fold_4.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_4.py
@@ -6,9 +6,9 @@ fold 4).
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-4.json")
diff --git a/src/mednet/config/data/indian/fold_5.py b/src/mednet/libs/classification/config/data/indian/fold_5.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_5.py
rename to src/mednet/libs/classification/config/data/indian/fold_5.py
index 7ee271dce50bc444df7a1ca16ad957d087f2d199..c2bbc56a0a37f70e97b7cbf2e7813a0d04c41d0b 100644
--- a/src/mednet/config/data/indian/fold_5.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_5.py
@@ -6,9 +6,9 @@ fold 5).
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-5.json")
diff --git a/src/mednet/config/data/indian/fold_6.py b/src/mednet/libs/classification/config/data/indian/fold_6.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_6.py
rename to src/mednet/libs/classification/config/data/indian/fold_6.py
index 9d5c0b94a0a2c415f0f1a949977f64a7cc00efff..9bb255b60da5e69597157e9cde8e3a66b07fb939 100644
--- a/src/mednet/config/data/indian/fold_6.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_6.py
@@ -6,9 +6,9 @@ fold 6).
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-6.json")
diff --git a/src/mednet/config/data/indian/fold_7.py b/src/mednet/libs/classification/config/data/indian/fold_7.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_7.py
rename to src/mednet/libs/classification/config/data/indian/fold_7.py
index 912fd422aa8ba2db8cedc6e0733e5e2a3f4bf462..35cd347782381be2ba15cb73d6c957f6ac1ca44b 100644
--- a/src/mednet/config/data/indian/fold_7.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_7.py
@@ -6,9 +6,9 @@ fold 7).
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-7.json")
diff --git a/src/mednet/config/data/indian/fold_8.py b/src/mednet/libs/classification/config/data/indian/fold_8.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_8.py
rename to src/mednet/libs/classification/config/data/indian/fold_8.py
index b01e5426772e1c3e27eb7cc46abec2686994992b..df089e034d5cc32813222a430593711d216deae6 100644
--- a/src/mednet/config/data/indian/fold_8.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_8.py
@@ -6,9 +6,9 @@ fold 8).
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-8.json")
diff --git a/src/mednet/config/data/indian/fold_9.py b/src/mednet/libs/classification/config/data/indian/fold_9.py
similarity index 61%
rename from src/mednet/config/data/indian/fold_9.py
rename to src/mednet/libs/classification/config/data/indian/fold_9.py
index 31510e329dc446440b4131f3f45d8217eb8f5443..b0d0d5ab05480e0c5a94a7daf09d192c317d830c 100644
--- a/src/mednet/config/data/indian/fold_9.py
+++ b/src/mednet/libs/classification/config/data/indian/fold_9.py
@@ -6,9 +6,9 @@ fold 9).
 
 Database reference: [INDIAN-2013]_
 
-See :py:class:`mednet.config.data.indian.datamodule.DataModule` for technical details.
+See :py:class:`mednet.libs.classification.config.data.indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.indian.datamodule import DataModule
+from mednet.libs.classification.config.data.indian.datamodule import DataModule
 
 datamodule = DataModule("fold-9.json")
diff --git a/src/mednet/config/data/__init__.py b/src/mednet/libs/classification/config/data/montgomery/__init__.py
similarity index 100%
rename from src/mednet/config/data/__init__.py
rename to src/mednet/libs/classification/config/data/montgomery/__init__.py
diff --git a/src/mednet/config/data/montgomery/datamodule.py b/src/mednet/libs/classification/config/data/montgomery/datamodule.py
similarity index 93%
rename from src/mednet/config/data/montgomery/datamodule.py
rename to src/mednet/libs/classification/config/data/montgomery/datamodule.py
index 64b2f7ff2ec0d1b564e9439e23ede7411ce9aab0..ecdd12a8bc351e6c1ca4299a48a44444aaac3ec4 100644
--- a/src/mednet/config/data/montgomery/datamodule.py
+++ b/src/mednet/libs/classification/config/data/montgomery/datamodule.py
@@ -10,14 +10,13 @@ import os
 import pathlib
 
 import PIL.Image
+from mednet.libs.common.data.datamodule import CachingDataModule
+from mednet.libs.common.data.image_utils import remove_black_borders
+from mednet.libs.common.data.split import make_split
+from mednet.libs.common.data.typing import Sample
+from mednet.libs.common.data.typing import RawDataLoader as _BaseRawDataLoader
 from torchvision.transforms.functional import to_tensor
 
-from medbase.data.datamodule import CachingDataModule
-from medbase.data.image_utils import remove_black_borders
-from medbase.data.split import make_split
-from medbase.data.typing import Sample
-from medbase.data.typing import RawDataLoader as _BaseRawDataLoader
-
 from ....utils.rc import load_rc
 
 CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2])
diff --git a/src/mednet/config/data/montgomery/default.json b/src/mednet/libs/classification/config/data/montgomery/default.json
similarity index 100%
rename from src/mednet/config/data/montgomery/default.json
rename to src/mednet/libs/classification/config/data/montgomery/default.json
diff --git a/src/mednet/config/data/montgomery/default.py b/src/mednet/libs/classification/config/data/montgomery/default.py
similarity index 61%
rename from src/mednet/config/data/montgomery/default.py
rename to src/mednet/libs/classification/config/data/montgomery/default.py
index afb62d5db67dd2bf402fb052a884284106cc3ec1..81bbe384ac9832afad544d5dcb9988b8ab48ad79 100644
--- a/src/mednet/config/data/montgomery/default.py
+++ b/src/mednet/libs/classification/config/data/montgomery/default.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("default.json")
diff --git a/src/mednet/config/data/montgomery/fold-0.json b/src/mednet/libs/classification/config/data/montgomery/fold-0.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-0.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-0.json
diff --git a/src/mednet/config/data/montgomery/fold-1.json b/src/mednet/libs/classification/config/data/montgomery/fold-1.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-1.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-1.json
diff --git a/src/mednet/config/data/montgomery/fold-2.json b/src/mednet/libs/classification/config/data/montgomery/fold-2.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-2.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-2.json
diff --git a/src/mednet/config/data/montgomery/fold-3.json b/src/mednet/libs/classification/config/data/montgomery/fold-3.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-3.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-3.json
diff --git a/src/mednet/config/data/montgomery/fold-4.json b/src/mednet/libs/classification/config/data/montgomery/fold-4.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-4.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-4.json
diff --git a/src/mednet/config/data/montgomery/fold-5.json b/src/mednet/libs/classification/config/data/montgomery/fold-5.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-5.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-5.json
diff --git a/src/mednet/config/data/montgomery/fold-6.json b/src/mednet/libs/classification/config/data/montgomery/fold-6.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-6.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-6.json
diff --git a/src/mednet/config/data/montgomery/fold-7.json b/src/mednet/libs/classification/config/data/montgomery/fold-7.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-7.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-7.json
diff --git a/src/mednet/config/data/montgomery/fold-8.json b/src/mednet/libs/classification/config/data/montgomery/fold-8.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-8.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-8.json
diff --git a/src/mednet/config/data/montgomery/fold-9.json b/src/mednet/libs/classification/config/data/montgomery/fold-9.json
similarity index 100%
rename from src/mednet/config/data/montgomery/fold-9.json
rename to src/mednet/libs/classification/config/data/montgomery/fold-9.json
diff --git a/src/mednet/config/data/montgomery/fold_0.py b/src/mednet/libs/classification/config/data/montgomery/fold_0.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_0.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_0.py
index 02597fad834853a69612c89096ee66a2de47378b..97f677e63ab8829499b4556c96f918d2ab3baf88 100644
--- a/src/mednet/config/data/montgomery/fold_0.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_0.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-0.json")
diff --git a/src/mednet/config/data/montgomery/fold_1.py b/src/mednet/libs/classification/config/data/montgomery/fold_1.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_1.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_1.py
index 5aff117fafeba1aab3508e8fcec94408ef19ac68..383d0cde60284a8a4809941e22dbfe151c868671 100644
--- a/src/mednet/config/data/montgomery/fold_1.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_1.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-1.json")
diff --git a/src/mednet/config/data/montgomery/fold_2.py b/src/mednet/libs/classification/config/data/montgomery/fold_2.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_2.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_2.py
index 879562db0df7f165e66a65eaffcd0c825ccb678d..5ee16a95a27dbb816005452b417402836faa0ae9 100644
--- a/src/mednet/config/data/montgomery/fold_2.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_2.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-2.json")
diff --git a/src/mednet/config/data/montgomery/fold_3.py b/src/mednet/libs/classification/config/data/montgomery/fold_3.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_3.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_3.py
index 1e8a31e002cbda5a722e80143045b569f51ee327..9fb4a68e4537950b6f0174a3de49c5514fc1ee5e 100644
--- a/src/mednet/config/data/montgomery/fold_3.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_3.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-3.json")
diff --git a/src/mednet/config/data/montgomery/fold_4.py b/src/mednet/libs/classification/config/data/montgomery/fold_4.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_4.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_4.py
index eb396a7a2a44aae2cc8fb21dd496ff9f1346461a..050b2986a9b5662182399652ea7817a2013b67a0 100644
--- a/src/mednet/config/data/montgomery/fold_4.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_4.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-4.json")
diff --git a/src/mednet/config/data/montgomery/fold_5.py b/src/mednet/libs/classification/config/data/montgomery/fold_5.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_5.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_5.py
index b3620674900c81634d5d17c577dbe240cc2b8729..fddac647ac95dde970bfeff29b36488d1b2a6acb 100644
--- a/src/mednet/config/data/montgomery/fold_5.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_5.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-5.json")
diff --git a/src/mednet/config/data/montgomery/fold_6.py b/src/mednet/libs/classification/config/data/montgomery/fold_6.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_6.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_6.py
index 298fc9c5125e45453e1cda5c9637283a3c3a575f..5c8a72a4bc01771804785c712b2af33b3f5dbfa1 100644
--- a/src/mednet/config/data/montgomery/fold_6.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_6.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-6.json")
diff --git a/src/mednet/config/data/montgomery/fold_7.py b/src/mednet/libs/classification/config/data/montgomery/fold_7.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_7.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_7.py
index 93ca3c00c8bdceed09bc911c8451873fcec2e56f..123b1afa56028857cf1f700c4444621f87a96b9d 100644
--- a/src/mednet/config/data/montgomery/fold_7.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_7.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-7.json")
diff --git a/src/mednet/config/data/montgomery/fold_8.py b/src/mednet/libs/classification/config/data/montgomery/fold_8.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_8.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_8.py
index 05b2b1d14e1c322e4ae333d9bca984bbe425f33d..53b9999ef64050fc624c3f6249011e09e59f65b1 100644
--- a/src/mednet/config/data/montgomery/fold_8.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_8.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-8.json")
diff --git a/src/mednet/config/data/montgomery/fold_9.py b/src/mednet/libs/classification/config/data/montgomery/fold_9.py
similarity index 63%
rename from src/mednet/config/data/montgomery/fold_9.py
rename to src/mednet/libs/classification/config/data/montgomery/fold_9.py
index ac6539d960584394e298fb12013aff3827e2b2a2..b09a83ed4ed3a5cc1206471ef1013f5b9257b4da 100644
--- a/src/mednet/config/data/montgomery/fold_9.py
+++ b/src/mednet/libs/classification/config/data/montgomery/fold_9.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.montgomery.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.montgomery.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.montgomery.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-9.json")
diff --git a/src/mednet/config/data/hivtb/__init__.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/__init__.py
similarity index 100%
rename from src/mednet/config/data/hivtb/__init__.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/__init__.py
diff --git a/src/mednet/config/data/montgomery_shenzhen/datamodule.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/datamodule.py
similarity index 93%
rename from src/mednet/config/data/montgomery_shenzhen/datamodule.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/datamodule.py
index 16dfec25d7f87606a837cdc8b79a944aa3b26b7d..f3bf981423df05cf61b80fcd0382fa6fca05ad46 100644
--- a/src/mednet/config/data/montgomery_shenzhen/datamodule.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/datamodule.py
@@ -5,8 +5,8 @@
 
 import pathlib
 
-from medbase.data.datamodule import ConcatDataModule
-from medbase.data.split import make_split
+from mednet.libs.common.data.datamodule import ConcatDataModule
+from mednet.libs.common.data.split import make_split
 
 from ..montgomery.datamodule import RawDataLoader as MontgomeryLoader
 from ..shenzhen.datamodule import RawDataLoader as ShenzhenLoader
diff --git a/src/mednet/config/data/montgomery_shenzhen/default.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/default.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/default.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/default.py
index 24dcc4b3b21190f86e04288caec1575bebdfd11d..bfa3b4fa99e21a283028e6297e891b8969d29543 100644
--- a/src/mednet/config/data/montgomery_shenzhen/default.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/default.py
@@ -7,6 +7,8 @@ split).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("default.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_0.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_0.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_0.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_0.py
index 8d3191561980e3b31d809061257ceacf757cca9e..645d2c57f71a80f092c2e69d80054f5e1c645dd3 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_0.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_0.py
@@ -7,6 +7,8 @@ validation fold 0).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-0.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_1.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_1.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_1.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_1.py
index a9095a0db8a69f056576d57d89f2fcddaf06b9ab..9f05c71356e9032081e480b980fbbc4d5c023d43 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_1.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_1.py
@@ -7,6 +7,8 @@ validation fold 1).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-1.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_2.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_2.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_2.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_2.py
index 79203be407919e4485836981e7e34b546003630a..16e3ef9f1fd3907e95d9c8c7ea354d530c40d34e 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_2.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_2.py
@@ -7,6 +7,8 @@ validation fold 2).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-2.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_3.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_3.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_3.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_3.py
index fb3114fd681d8174891dbd95bc8f5f9f83743c92..2d1404fba9b7fa5737100c1c22a374cddac8db56 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_3.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_3.py
@@ -7,6 +7,8 @@ validation fold 3).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-3.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_4.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_4.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_4.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_4.py
index 24cbc745242824ef96366887a1ce71ad9920f962..25e9a4e93bb78914f95cbba1da5d902f99da3da4 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_4.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_4.py
@@ -7,6 +7,8 @@ validation fold 4).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-4.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_5.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_5.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_5.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_5.py
index 887cc682989d94d480d79776935381ed67111d8a..c553329997f6c8a3d59429b77bfb559ef6ba6dd5 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_5.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_5.py
@@ -7,6 +7,8 @@ validation fold 5).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-5.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_6.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_6.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_6.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_6.py
index 81a8a906366a6f60a433ff044441e9274d059eb2..42300375b646a707ef783ac5344136635040684d 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_6.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_6.py
@@ -7,6 +7,8 @@ validation fold 6).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-6.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_7.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_7.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_7.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_7.py
index 298f19616a867b9395ae3233d2d205fd1e487f93..296f3e57029c035104d7566e3986fb55e408735e 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_7.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_7.py
@@ -7,6 +7,8 @@ validation fold 7).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-7.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_8.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_8.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_8.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_8.py
index b8c2ff10e351aee4525827ac8a70a91e9c21619b..3428c0fb84b0ce179260f922e55263268c275b91 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_8.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_8.py
@@ -7,6 +7,8 @@ validation fold 8).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-8.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen/fold_9.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_9.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen/fold_9.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_9.py
index 30528cae581a3dbb274cec9511b0c8ab23c3d687..219ee6f349876cd6a92a31c7b58d922df76d0a12 100644
--- a/src/mednet/config/data/montgomery_shenzhen/fold_9.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen/fold_9.py
@@ -7,6 +7,8 @@ validation fold 9).
 See :py:class:`.montgomery_shenzhen.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-9.json")
diff --git a/src/mednet/config/data/indian/__init__.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/__init__.py
similarity index 100%
rename from src/mednet/config/data/indian/__init__.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/__init__.py
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/datamodule.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/datamodule.py
similarity index 95%
rename from src/mednet/config/data/montgomery_shenzhen_indian/datamodule.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/datamodule.py
index bfeb1a338ba93bffa0a959692ae06a5e47857f18..73b6d765be2a9e938f9d1675a2261fb263524ddc 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/datamodule.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/datamodule.py
@@ -7,8 +7,8 @@ databases.
 
 import pathlib
 
-from medbase.data.datamodule import ConcatDataModule
-from medbase.data.split import make_split
+from mednet.libs.common.data.datamodule import ConcatDataModule
+from mednet.libs.common.data.split import make_split
 
 from ..indian.datamodule import CONFIGURATION_KEY_DATADIR as INDIAN_KEY_DATADIR
 from ..indian.datamodule import DataModule as IndianDataModule
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/default.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/default.py
similarity index 76%
rename from src/mednet/config/data/montgomery_shenzhen_indian/default.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/default.py
index 38fca2a93cf5860978397bd737ad7b8cde611704..eff34ad7cf66774ffde477c2a41e93a53e3c83e0 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/default.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/default.py
@@ -7,6 +7,8 @@ See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("default.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_0.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_0.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_0.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_0.py
index 83d67fe3506611d6d4b1a4bf352c6faa27ad7b08..6698f909e480c24769a21047e18955d4f78144c9 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_0.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_0.py
@@ -8,6 +8,8 @@ See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-0.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_1.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_1.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_1.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_1.py
index a44b6a68c73942700c4a86165bce53d12a854680..508b6e0a5a0b5042f193e6009d8a276724150c17 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_1.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_1.py
@@ -7,6 +7,8 @@
 See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-1.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_2.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_2.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_2.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_2.py
index 5dac88e8d3a965da37da6f1c76a52721779fad9c..b9961c68217928711dcd3783a9da7c62bc3bb4ef 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_2.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_2.py
@@ -8,6 +8,8 @@ See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-2.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_3.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_3.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_3.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_3.py
index 8fe095a351874f51457b031ff71e91876177ae7d..3b842210c6b5af9c6453781d983cf7bdfa14cb6f 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_3.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_3.py
@@ -8,6 +8,8 @@ See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-3.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_4.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_4.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_4.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_4.py
index 6524f589f7bd67b979868ae8b51613da45df6cfd..8c8b10116e5b0d0f039fa5f6cd8d8d3b532ab95f 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_4.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_4.py
@@ -8,6 +8,8 @@ See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-4.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_5.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_5.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_5.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_5.py
index 8b0acbe6e6fdf7b5739fa2ddb45b5daadb1d1283..ff53aa9b9a9702b722f25e96acaa0f683f193c78 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_5.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_5.py
@@ -8,6 +8,8 @@ See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-5.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_6.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_6.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_6.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_6.py
index d8b565adfb2e08cd2891593e74798c15187dadbf..4e0ba18d48377b1612ddf404a379b1089a1ce237 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_6.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_6.py
@@ -8,6 +8,8 @@ See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-6.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_7.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_7.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_7.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_7.py
index 248f6621cd9cfb048007889618c672ada29e9398..1251045fb66804494ce9aab365858494ec4207c4 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_7.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_7.py
@@ -7,6 +7,8 @@
 See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-7.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_8.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_8.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_8.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_8.py
index 41c5e5cab86184e74eaf924612ee04f7c672855e..3f87a0cdf451906f567e5840579ac0233b2f480c 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_8.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_8.py
@@ -8,6 +8,8 @@ See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-8.json")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/fold_9.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_9.py
similarity index 77%
rename from src/mednet/config/data/montgomery_shenzhen_indian/fold_9.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_9.py
index f658cf37c0c0cc47fb3fc92ab3807af12998f0a4..425c1ca4759b64b304c35b3c825e7de53e124a09 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian/fold_9.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian/fold_9.py
@@ -7,6 +7,8 @@
 See :py:class:`.montgomery_shenzhen_indian.datamodule.DataModule` for technical details.
 """
 
-from mednet.config.data.montgomery_shenzhen_indian.datamodule import DataModule
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-9.json")
diff --git a/src/mednet/config/data/montgomery/__init__.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_padchest/__init__.py
similarity index 100%
rename from src/mednet/config/data/montgomery/__init__.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_padchest/__init__.py
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_padchest/datamodule.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_padchest/datamodule.py
similarity index 96%
rename from src/mednet/config/data/montgomery_shenzhen_indian_padchest/datamodule.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_padchest/datamodule.py
index 268ba2a261d2b7a667d8e1c9068c033f8b005504..942326b2cde9e920bb764a812d8b0eea03cb3398 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_padchest/datamodule.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_padchest/datamodule.py
@@ -7,8 +7,8 @@ datasets.
 
 import pathlib
 
-from medbase.data.datamodule import ConcatDataModule
-from medbase.data.split import make_split
+from mednet.libs.common.data.datamodule import ConcatDataModule
+from mednet.libs.common.data.split import make_split
 
 from ..indian.datamodule import CONFIGURATION_KEY_DATADIR as INDIAN_KEY_DATADIR
 from ..indian.datamodule import DataModule as IndianDataModule
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_padchest/default.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_padchest/default.py
similarity index 73%
rename from src/mednet/config/data/montgomery_shenzhen_indian_padchest/default.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_padchest/default.py
index 7a0c7dce64501dca4d6017874ebf0cdf0ae26be2..04b74eca9bf863e9c7f04cfa07108ceb65128b39 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_padchest/default.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_padchest/default.py
@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: GPL-3.0-or-later
 """Aggregated dataset composed of Montgomery, Shenzhen, Indian and Padchest datasets."""
 
-from mednet.config.data.montgomery_shenzhen_indian_padchest.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_padchest.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen/__init__.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/__init__.py
similarity index 100%
rename from src/mednet/config/data/montgomery_shenzhen/__init__.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/__init__.py
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/datamodule.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/datamodule.py
similarity index 96%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/datamodule.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/datamodule.py
index 932e65710cbb1e61ad407fb1c8d121607af6f354..daf575f7abe5376659559ad168f72d2d31389368 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/datamodule.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/datamodule.py
@@ -7,8 +7,8 @@ datasets.
 
 import pathlib
 
-from medbase.data.datamodule import ConcatDataModule
-from medbase.data.split import make_split
+from mednet.libs.common.data.datamodule import ConcatDataModule
+from mednet.libs.common.data.split import make_split
 
 from ..indian.datamodule import CONFIGURATION_KEY_DATADIR as INDIAN_KEY_DATADIR
 from ..indian.datamodule import DataModule as IndianDataModule
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py
index a866e229c5220058d5f838288eed1e44406a288d..9e7a10eab4bb37f143c2c44bf84411be895d04f5 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-0`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-0`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py
index cc9d26ce771ee1833111e665ab102efbbf077120..9ab338ce0b604defd489fdd601f72b98d7ec1469 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-1`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-1`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py
index c9f77703b1ec5363ca2431bbf4d39ac009dbc32e..25c7367ed9e4c680d81ed65ddfc59e6880e72854 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-2`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-2`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py
index 639ac053f3b34d9b4278d51b6bed76b0e6c77c51..e86ab293c2269af0e4744af5bafa1b67faea9ef1 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-3`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-3`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py
index b08f0588e44a040ad4dbc3c9c918e8a82b260023..fe968cf881b2334d1857e17603022369c428ca6f 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-4`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-4`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py
index 7cfd77253141d959731bbb857cf04d7b090b2b53..28b0b82233e2edc5a41e9fb3340761f9616b90f1 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-5`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-5`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py
index c8341e7e45ea8411f51ece99b4accb6b851a5151..0986a1c5336b2bfe68e91a908190547147a2a08a 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-6`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-6`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py
index 9f9b19d54bbf0c8c5211794e86d30d2ba92b2099..051841a5a431d4cc7065a6656dcc4faa3f5231e9 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-7`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-7`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py
index a212479358eb129cc64baadc45865519594e9fe9..9c9e7be4bce252541ee91ea3696a340dd6dd93ef 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-8`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-8`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py
similarity index 82%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py
index b2dff65bd393055eec1135a922339cbc3ee09832..3ccf291000e03cf3472896ce59d61d0e2d886a6f 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py
@@ -8,7 +8,7 @@ This remix dataset combines ``fold-9`` from Montgomery, Shenzhen, and Indian
 datasets with ``v1-fold-9`` of TBX11k (healthy vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py
index 0f4d1393f0fb0973cf7b57cb3312f98c3bafd164..c30b2bbb1d2fb3cee920d8ffed55922eca0c63ec 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py
@@ -9,7 +9,7 @@ and Indian datasets with ``v1-healthy-vs-atb`` split of TBX11k (healthy vs.
 active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py
index 93fe390dd8de655a89f4cdb8f74382734def4182..a959fa5ca3691f8674b764e5d8fe39cee11c8ffd 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-0`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py
index 0ed16e701663a05756d4c44ce2e84d1d44ca56dc..fed9f39581e8ef594a6d4818d3415b68cf095df0 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-1`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py
index 2ff42bcd694ec2142f114666d5452fa5f4361b1f..be946b8de8be9eb6a244b08ec92fb643c638bd94 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-2`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py
index dc4b1a4c5fed9e272fe332432a5405f866a3cbde..3c8a8bed7cc38975ebe7e633298e32f8113c6c69 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-3`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py
index 55113094b5095463ba083cc2b12d72acde53b2fc..5cfc0dacec1b63d3b410df1c05819342d2a1fa40 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-4`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py
index 0bffb95e6ff791c8d95adcea66ffe5d49619e821..02a01229b66fd667ad95b2235eae10c939c1aa24 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-5`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py
index a5507999d10facdb2f000637a3e47cc028ee9233..2dff3c162132f82c8530a2ee61c6c9ec3fe02fe3 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-6`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py
index 944c1eb9bc18f6e88093a4ab3a3ea2ac2d565b07..17f051102ea3cecebc2a96c0f196656945af4f3a 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-7`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py
index db5331c6b84d887bb2aa1e98d325d434853e1825..aaf80c97b9778b25402aebd148108a39ae2de291 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-8`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py
similarity index 83%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py
index 898a46aea2dddcfc0eafc15f06b0b77b15f6f806..8b17d3201991dc8ebe8bcf47ba8a08205b245b4c 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py
@@ -9,7 +9,7 @@ datasets with ``v2-fold-9`` of TBX11k (healthy, sick and latent TB vs. active
 TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py
similarity index 84%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py
rename to src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py
index b0bce0aeed787d7d3ad9dc23dba9321d3e9785a5..6c0ab4e7751da42ebd1c40a4010ea02617b67851 100644
--- a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py
+++ b/src/mednet/libs/classification/config/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py
@@ -9,7 +9,7 @@ and Indian datasets with ``v2-others-vs-atb`` of TBX11k (healthy, sick and
 latent TB vs. active TB samples).
 """
 
-from mednet.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
+from mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k.datamodule import (
     DataModule,
 )
 
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian/__init__.py b/src/mednet/libs/classification/config/data/nih_cxr14/__init__.py
similarity index 100%
rename from src/mednet/config/data/montgomery_shenzhen_indian/__init__.py
rename to src/mednet/libs/classification/config/data/nih_cxr14/__init__.py
diff --git a/src/mednet/config/data/nih_cxr14/cardiomegaly.json b/src/mednet/libs/classification/config/data/nih_cxr14/cardiomegaly.json
similarity index 100%
rename from src/mednet/config/data/nih_cxr14/cardiomegaly.json
rename to src/mednet/libs/classification/config/data/nih_cxr14/cardiomegaly.json
diff --git a/src/mednet/config/data/nih_cxr14/cardiomegaly.py b/src/mednet/libs/classification/config/data/nih_cxr14/cardiomegaly.py
similarity index 68%
rename from src/mednet/config/data/nih_cxr14/cardiomegaly.py
rename to src/mednet/libs/classification/config/data/nih_cxr14/cardiomegaly.py
index 255be72e79840527a0e401ac8c5e048033038a2a..30c23c2afcfb12f9fb101b06c2de8646f19770a7 100644
--- a/src/mednet/config/data/nih_cxr14/cardiomegaly.py
+++ b/src/mednet/libs/classification/config/data/nih_cxr14/cardiomegaly.py
@@ -8,10 +8,12 @@ Database reference: [NIH-CXR14-2017]_
 
 This split contains cardiomegaly cases from the NIH CXR14 database.
 
-See :py:class:`mednet.config.data.nih_cxr14.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.nih_cxr14.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.nih_cxr14.datamodule import DataModule
+from mednet.libs.classification.config.data.nih_cxr14.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("cardiomegaly.json")
diff --git a/src/mednet/config/data/nih_cxr14/datamodule.py b/src/mednet/libs/classification/config/data/nih_cxr14/datamodule.py
similarity index 95%
rename from src/mednet/config/data/nih_cxr14/datamodule.py
rename to src/mednet/libs/classification/config/data/nih_cxr14/datamodule.py
index 8e72d6d414bab383452c66b5ab326cc2599ba3e8..10b02268f61c7105e7057e699f3580a4d80b89ff 100644
--- a/src/mednet/config/data/nih_cxr14/datamodule.py
+++ b/src/mednet/libs/classification/config/data/nih_cxr14/datamodule.py
@@ -10,13 +10,12 @@ import os
 import pathlib
 
 import PIL.Image
+from mednet.libs.common.data.datamodule import CachingDataModule
+from mednet.libs.common.data.split import make_split
+from mednet.libs.common.data.typing import Sample
+from mednet.libs.common.data.typing import RawDataLoader as _BaseRawDataLoader
 from torchvision.transforms.functional import to_tensor
 
-from medbase.data.datamodule import CachingDataModule
-from medbase.data.split import make_split
-from medbase.data.typing import Sample
-from medbase.data.typing import RawDataLoader as _BaseRawDataLoader
-
 from ....utils.rc import load_rc
 
 CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2])
diff --git a/src/mednet/config/data/nih_cxr14/default.json.bz2 b/src/mednet/libs/classification/config/data/nih_cxr14/default.json.bz2
similarity index 100%
rename from src/mednet/config/data/nih_cxr14/default.json.bz2
rename to src/mednet/libs/classification/config/data/nih_cxr14/default.json.bz2
diff --git a/src/mednet/config/data/nih_cxr14/default.py b/src/mednet/libs/classification/config/data/nih_cxr14/default.py
similarity index 64%
rename from src/mednet/config/data/nih_cxr14/default.py
rename to src/mednet/libs/classification/config/data/nih_cxr14/default.py
index 8c15cd71dd85ea5c3e9a9704ab81a877d926633f..80b8df2345aea45bc8fb69f505b8648c274243b5 100644
--- a/src/mednet/config/data/nih_cxr14/default.py
+++ b/src/mednet/libs/classification/config/data/nih_cxr14/default.py
@@ -7,10 +7,12 @@
 * Validation samples: 6350
 * Test samples: 4054
 
-See :py:class:`mednet.config.data.nih_cxr14.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.nih_cxr14.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.nih_cxr14.datamodule import DataModule
+from mednet.libs.classification.config.data.nih_cxr14.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("default.json.bz2")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_padchest/__init__.py b/src/mednet/libs/classification/config/data/nih_cxr14_padchest/__init__.py
similarity index 100%
rename from src/mednet/config/data/montgomery_shenzhen_indian_padchest/__init__.py
rename to src/mednet/libs/classification/config/data/nih_cxr14_padchest/__init__.py
diff --git a/src/mednet/config/data/nih_cxr14_padchest/datamodule.py b/src/mednet/libs/classification/config/data/nih_cxr14_padchest/datamodule.py
similarity index 94%
rename from src/mednet/config/data/nih_cxr14_padchest/datamodule.py
rename to src/mednet/libs/classification/config/data/nih_cxr14_padchest/datamodule.py
index 3de000c129d19bd949cc5c00c7145364b6935200..beeb3d9655cd434122d59fe36ee18eb63e7c12b8 100644
--- a/src/mednet/config/data/nih_cxr14_padchest/datamodule.py
+++ b/src/mednet/libs/classification/config/data/nih_cxr14_padchest/datamodule.py
@@ -5,8 +5,8 @@
 
 import pathlib
 
-from medbase.data.datamodule import ConcatDataModule
-from medbase.data.split import make_split
+from mednet.libs.common.data.datamodule import ConcatDataModule
+from mednet.libs.common.data.split import make_split
 
 from ..nih_cxr14.datamodule import RawDataLoader as CXR14Loader
 from ..padchest.datamodule import RawDataLoader as PadchestLoader
diff --git a/src/mednet/config/data/nih_cxr14_padchest/idiap.py b/src/mednet/libs/classification/config/data/nih_cxr14_padchest/idiap.py
similarity index 75%
rename from src/mednet/config/data/nih_cxr14_padchest/idiap.py
rename to src/mednet/libs/classification/config/data/nih_cxr14_padchest/idiap.py
index 7ba5b9bca91784f8b26a986df92220d9f998022d..86e44dca767cd594c873c295b56443fc947399a4 100644
--- a/src/mednet/config/data/nih_cxr14_padchest/idiap.py
+++ b/src/mednet/libs/classification/config/data/nih_cxr14_padchest/idiap.py
@@ -5,6 +5,8 @@
 (no-tb-idiap split).
 """
 
-from mednet.config.data.nih_cxr14_padchest.datamodule import DataModule
+from mednet.libs.classification.config.data.nih_cxr14_padchest.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("default.json.bz2", "no-tb-idiap.json.bz2")
diff --git a/src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/__init__.py b/src/mednet/libs/classification/config/data/padchest/__init__.py
similarity index 100%
rename from src/mednet/config/data/montgomery_shenzhen_indian_tbx11k/__init__.py
rename to src/mednet/libs/classification/config/data/padchest/__init__.py
diff --git a/src/mednet/config/data/padchest/cardiomegaly-idiap.json b/src/mednet/libs/classification/config/data/padchest/cardiomegaly-idiap.json
similarity index 100%
rename from src/mednet/config/data/padchest/cardiomegaly-idiap.json
rename to src/mednet/libs/classification/config/data/padchest/cardiomegaly-idiap.json
diff --git a/src/mednet/config/data/padchest/cardiomegaly_idiap.py b/src/mednet/libs/classification/config/data/padchest/cardiomegaly_idiap.py
similarity index 72%
rename from src/mednet/config/data/padchest/cardiomegaly_idiap.py
rename to src/mednet/libs/classification/config/data/padchest/cardiomegaly_idiap.py
index b8a4c0d09db1b8e4c9f103ecb18283ab4e086de4..9b4dd7e678ff2c1164acf22c8e0571002cf97e2c 100644
--- a/src/mednet/config/data/padchest/cardiomegaly_idiap.py
+++ b/src/mednet/libs/classification/config/data/padchest/cardiomegaly_idiap.py
@@ -9,10 +9,12 @@ This split contains the first 40 images with cardiomegaly, with parameters:
 Label = "Normal", MethodLabel = "Physician", Projection = "PA"
 
 Read documentation of
-:py:class:`mednet.config.data.padchest.datamodule.DataModule` for technical
+:py:class:`mednet.libs.classification.config.data.padchest.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.padchest.datamodule import DataModule
+from mednet.libs.classification.config.data.padchest.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("cardiomegaly-idiap.json")
diff --git a/src/mednet/config/data/padchest/datamodule.py b/src/mednet/libs/classification/config/data/padchest/datamodule.py
similarity index 97%
rename from src/mednet/config/data/padchest/datamodule.py
rename to src/mednet/libs/classification/config/data/padchest/datamodule.py
index 99545ee2d0b0503974f9d210dbd968ca74571d99..8ea0eb7c0262c0dac7a713828d6c0ec749589131 100644
--- a/src/mednet/config/data/padchest/datamodule.py
+++ b/src/mednet/libs/classification/config/data/padchest/datamodule.py
@@ -11,14 +11,13 @@ import pathlib
 
 import numpy
 import PIL.Image
+from mednet.libs.common.data.datamodule import CachingDataModule
+from mednet.libs.common.data.image_utils import remove_black_borders
+from mednet.libs.common.data.split import make_split
+from mednet.libs.common.data.typing import Sample
+from mednet.libs.common.data.typing import RawDataLoader as _BaseRawDataLoader
 from torchvision.transforms.functional import to_tensor
 
-from medbase.data.datamodule import CachingDataModule
-from medbase.data.image_utils import remove_black_borders
-from medbase.data.split import make_split
-from medbase.data.typing import Sample
-from medbase.data.typing import RawDataLoader as _BaseRawDataLoader
-
 from ....utils.rc import load_rc
 
 CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2])
diff --git a/src/mednet/config/data/padchest/idiap.json.bz2 b/src/mednet/libs/classification/config/data/padchest/idiap.json.bz2
similarity index 100%
rename from src/mednet/config/data/padchest/idiap.json.bz2
rename to src/mednet/libs/classification/config/data/padchest/idiap.json.bz2
diff --git a/src/mednet/config/data/padchest/idiap.py b/src/mednet/libs/classification/config/data/padchest/idiap.py
similarity index 71%
rename from src/mednet/config/data/padchest/idiap.py
rename to src/mednet/libs/classification/config/data/padchest/idiap.py
index 07afe93e591036f29b4d44eafaf473830aeafe11..e1dd56c58b023cd7e2ab3b69ca7852bfef606eb2 100644
--- a/src/mednet/config/data/padchest/idiap.py
+++ b/src/mednet/libs/classification/config/data/padchest/idiap.py
@@ -6,7 +6,7 @@
 Database reference: [PADCHEST-2019]_
 
 This split contains all images in the database.  Read documentation of
-:py:class:`mednet.config.data.padchest.datamodule.DataModule` for technical
+:py:class:`mednet.libs.classification.config.data.padchest.datamodule.DataModule` for technical
 details.
 
 * Split reference: ours
@@ -15,6 +15,8 @@ details.
   * Test samples: 0
 """
 
-from mednet.config.data.padchest.datamodule import DataModule
+from mednet.libs.classification.config.data.padchest.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("idiap.json.bz2")
diff --git a/src/mednet/config/data/padchest/no-tb-idiap.json.bz2 b/src/mednet/libs/classification/config/data/padchest/no-tb-idiap.json.bz2
similarity index 100%
rename from src/mednet/config/data/padchest/no-tb-idiap.json.bz2
rename to src/mednet/libs/classification/config/data/padchest/no-tb-idiap.json.bz2
diff --git a/src/mednet/config/data/padchest/no_tb_idiap.py b/src/mednet/libs/classification/config/data/padchest/no_tb_idiap.py
similarity index 79%
rename from src/mednet/config/data/padchest/no_tb_idiap.py
rename to src/mednet/libs/classification/config/data/padchest/no_tb_idiap.py
index 79f05da51612c7ea577d902fb91fd8116e8e05d4..061594060cfead20524c04626f59542e4c0e5d4c 100644
--- a/src/mednet/config/data/padchest/no_tb_idiap.py
+++ b/src/mednet/libs/classification/config/data/padchest/no_tb_idiap.py
@@ -29,10 +29,12 @@ Database reference: [PADCHEST-2019]_
   * edema and consolidation
 
 Read documentation of
-:py:class:`mednet.config.data.padchest.datamodule.DataModule` for technical
+:py:class:`mednet.libs.classification.config.data.padchest.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.padchest.datamodule import DataModule
+from mednet.libs.classification.config.data.padchest.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("no-tb-idiap.json.bz2")
diff --git a/src/mednet/config/data/padchest/tb-idiap.json b/src/mednet/libs/classification/config/data/padchest/tb-idiap.json
similarity index 100%
rename from src/mednet/config/data/padchest/tb-idiap.json
rename to src/mednet/libs/classification/config/data/padchest/tb-idiap.json
diff --git a/src/mednet/config/data/padchest/tb_idiap.py b/src/mednet/libs/classification/config/data/padchest/tb_idiap.py
similarity index 75%
rename from src/mednet/config/data/padchest/tb_idiap.py
rename to src/mednet/libs/classification/config/data/padchest/tb_idiap.py
index bf625d711eacabac007327fc5c63967ff9e54275..c66decb6a07439a878cb1c3bc8bdfc1939a811ee 100644
--- a/src/mednet/config/data/padchest/tb_idiap.py
+++ b/src/mednet/libs/classification/config/data/padchest/tb_idiap.py
@@ -11,10 +11,12 @@ Projection = "PA" and TB cases.  Labelling matches those for active TB (binary)
 classification datasets.
 
 Read documentation of
-:py:class:`mednet.config.data.padchest.datamodule.DataModule` for technical
+:py:class:`mednet.libs.classification.config.data.padchest.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.padchest.datamodule import DataModule
+from mednet.libs.classification.config.data.padchest.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("tb-idiap.json")
diff --git a/src/mednet/config/data/nih_cxr14/__init__.py b/src/mednet/libs/classification/config/data/shenzhen/__init__.py
similarity index 100%
rename from src/mednet/config/data/nih_cxr14/__init__.py
rename to src/mednet/libs/classification/config/data/shenzhen/__init__.py
diff --git a/src/mednet/config/data/shenzhen/alltest.json b/src/mednet/libs/classification/config/data/shenzhen/alltest.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/alltest.json
rename to src/mednet/libs/classification/config/data/shenzhen/alltest.json
diff --git a/src/mednet/config/data/shenzhen/alltest.py b/src/mednet/libs/classification/config/data/shenzhen/alltest.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/alltest.py
rename to src/mednet/libs/classification/config/data/shenzhen/alltest.py
index 12a22e1e644e02d4bddaf5099191566dac3a0658..48b7d13ae14dc97018707fcd9ec305da34e4116d 100644
--- a/src/mednet/config/data/shenzhen/alltest.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/alltest.py
@@ -7,10 +7,12 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
 * Test samples: 100% of the database
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("alltest.json")
diff --git a/src/mednet/config/data/shenzhen/datamodule.py b/src/mednet/libs/classification/config/data/shenzhen/datamodule.py
similarity index 93%
rename from src/mednet/config/data/shenzhen/datamodule.py
rename to src/mednet/libs/classification/config/data/shenzhen/datamodule.py
index ae1b463988f7d103ed963767da649732c31b37c0..f68851b6bb53ddc9fbff044c3eee87db24f23003 100644
--- a/src/mednet/config/data/shenzhen/datamodule.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/datamodule.py
@@ -10,14 +10,13 @@ import os
 import pathlib
 
 import PIL.Image
+from mednet.libs.common.data.datamodule import CachingDataModule
+from mednet.libs.common.data.image_utils import remove_black_borders
+from mednet.libs.common.data.split import make_split
+from mednet.libs.common.data.typing import Sample
+from mednet.libs.common.data.typing import RawDataLoader as _BaseRawDataLoader
 from torchvision.transforms.functional import to_tensor
 
-from medbase.data.datamodule import CachingDataModule
-from medbase.data.image_utils import remove_black_borders
-from medbase.data.split import make_split
-from medbase.data.typing import Sample
-from medbase.data.typing import RawDataLoader as _BaseRawDataLoader
-
 from ....utils.rc import load_rc
 
 CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2])
diff --git a/src/mednet/config/data/shenzhen/default.json b/src/mednet/libs/classification/config/data/shenzhen/default.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/default.json
rename to src/mednet/libs/classification/config/data/shenzhen/default.json
diff --git a/src/mednet/config/data/shenzhen/default.py b/src/mednet/libs/classification/config/data/shenzhen/default.py
similarity index 72%
rename from src/mednet/config/data/shenzhen/default.py
rename to src/mednet/libs/classification/config/data/shenzhen/default.py
index e2fa24b21510b09c549aa87ab5b71c6452a5a913..f3ee1926721ea17f6d7e3e20d747f31b857e6e21 100644
--- a/src/mednet/config/data/shenzhen/default.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/default.py
@@ -9,10 +9,12 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_
 * Validation samples: 16% of TB and healthy CXR (including labels)
 * Test samples: 20% of TB and healthy CXR (including labels)
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("default.json")
diff --git a/src/mednet/config/data/shenzhen/fold-0.json b/src/mednet/libs/classification/config/data/shenzhen/fold-0.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-0.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-0.json
diff --git a/src/mednet/config/data/shenzhen/fold-1.json b/src/mednet/libs/classification/config/data/shenzhen/fold-1.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-1.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-1.json
diff --git a/src/mednet/config/data/shenzhen/fold-2.json b/src/mednet/libs/classification/config/data/shenzhen/fold-2.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-2.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-2.json
diff --git a/src/mednet/config/data/shenzhen/fold-3.json b/src/mednet/libs/classification/config/data/shenzhen/fold-3.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-3.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-3.json
diff --git a/src/mednet/config/data/shenzhen/fold-4.json b/src/mednet/libs/classification/config/data/shenzhen/fold-4.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-4.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-4.json
diff --git a/src/mednet/config/data/shenzhen/fold-5.json b/src/mednet/libs/classification/config/data/shenzhen/fold-5.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-5.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-5.json
diff --git a/src/mednet/config/data/shenzhen/fold-6.json b/src/mednet/libs/classification/config/data/shenzhen/fold-6.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-6.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-6.json
diff --git a/src/mednet/config/data/shenzhen/fold-7.json b/src/mednet/libs/classification/config/data/shenzhen/fold-7.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-7.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-7.json
diff --git a/src/mednet/config/data/shenzhen/fold-8.json b/src/mednet/libs/classification/config/data/shenzhen/fold-8.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-8.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-8.json
diff --git a/src/mednet/config/data/shenzhen/fold-9.json b/src/mednet/libs/classification/config/data/shenzhen/fold-9.json
similarity index 100%
rename from src/mednet/config/data/shenzhen/fold-9.json
rename to src/mednet/libs/classification/config/data/shenzhen/fold-9.json
diff --git a/src/mednet/config/data/shenzhen/fold_0.py b/src/mednet/libs/classification/config/data/shenzhen/fold_0.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_0.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_0.py
index 218211fa31368d1abeb869b7f6dae58900c0effc..33ea121e8e3955285fba93e33671f7aa72676bc3 100644
--- a/src/mednet/config/data/shenzhen/fold_0.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_0.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-0.json")
diff --git a/src/mednet/config/data/shenzhen/fold_1.py b/src/mednet/libs/classification/config/data/shenzhen/fold_1.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_1.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_1.py
index cee2fd624dc617291aa9cc0a730eeb94a4a0a58c..d34826c3c4814fc43deab5507e82816278e0f3cf 100644
--- a/src/mednet/config/data/shenzhen/fold_1.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_1.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-1.json")
diff --git a/src/mednet/config/data/shenzhen/fold_2.py b/src/mednet/libs/classification/config/data/shenzhen/fold_2.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_2.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_2.py
index 1373a64ccc1ecbbe3104e659aa6739bb6684450f..67ad5d39036ec57d937807611a4a438ff98e30a1 100644
--- a/src/mednet/config/data/shenzhen/fold_2.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_2.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-2.json")
diff --git a/src/mednet/config/data/shenzhen/fold_3.py b/src/mednet/libs/classification/config/data/shenzhen/fold_3.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_3.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_3.py
index 8fa1c4c2552d240126e4e502e0a74dd5366a8ca3..6534259a0c525a241186a595dc615dfd3924518b 100644
--- a/src/mednet/config/data/shenzhen/fold_3.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_3.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-3.json")
diff --git a/src/mednet/config/data/shenzhen/fold_4.py b/src/mednet/libs/classification/config/data/shenzhen/fold_4.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_4.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_4.py
index 3998c2d2246bd98e6ec20a591dd84682b2bd0d12..c4c02114f4aef1e53c71295601b5835abf9ba158 100644
--- a/src/mednet/config/data/shenzhen/fold_4.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_4.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-4.json")
diff --git a/src/mednet/config/data/shenzhen/fold_5.py b/src/mednet/libs/classification/config/data/shenzhen/fold_5.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_5.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_5.py
index 71452ef25039f7195784e29f35af3d7e1bf06260..a76c37c4b4663e8a2cc0b97f9602e88c71e9a82f 100644
--- a/src/mednet/config/data/shenzhen/fold_5.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_5.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-5.json")
diff --git a/src/mednet/config/data/shenzhen/fold_6.py b/src/mednet/libs/classification/config/data/shenzhen/fold_6.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_6.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_6.py
index 69a51ccef6dc87bbb66cbd89d92a26a472f48ce6..eb464ebf5a80e104a198a9bc62802f37d8ffcc69 100644
--- a/src/mednet/config/data/shenzhen/fold_6.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_6.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-6.json")
diff --git a/src/mednet/config/data/shenzhen/fold_7.py b/src/mednet/libs/classification/config/data/shenzhen/fold_7.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_7.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_7.py
index 619a28d0625a0344053f01d1c25d96f6a2549482..43f350198c6b3ab99e00139fa49cd3489672f811 100644
--- a/src/mednet/config/data/shenzhen/fold_7.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_7.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-7.json")
diff --git a/src/mednet/config/data/shenzhen/fold_8.py b/src/mednet/libs/classification/config/data/shenzhen/fold_8.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_8.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_8.py
index 1eb4278a7f3c491914d98038018ea9383bf4d8e7..776f7700c451601153c4a7797a124c8c7928bf0b 100644
--- a/src/mednet/config/data/shenzhen/fold_8.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_8.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-8.json")
diff --git a/src/mednet/config/data/shenzhen/fold_9.py b/src/mednet/libs/classification/config/data/shenzhen/fold_9.py
similarity index 64%
rename from src/mednet/config/data/shenzhen/fold_9.py
rename to src/mednet/libs/classification/config/data/shenzhen/fold_9.py
index c112edf906ffda4eb03bdc6414c95e5d972a27be..351efa593ad9c280a8e9526b9a3bf01c71c05de9 100644
--- a/src/mednet/config/data/shenzhen/fold_9.py
+++ b/src/mednet/libs/classification/config/data/shenzhen/fold_9.py
@@ -5,10 +5,12 @@
 
 Database reference: [MONTGOMERY-SHENZHEN-2014]_
 
-See :py:class:`mednet.config.data.shenzhen.datamodule.DataModule` for
+See :py:class:`mednet.libs.classification.config.data.shenzhen.datamodule.DataModule` for
 technical details.
 """
 
-from mednet.config.data.shenzhen.datamodule import DataModule
+from mednet.libs.classification.config.data.shenzhen.datamodule import (
+    DataModule,
+)
 
 datamodule = DataModule("fold-9.json")
diff --git a/src/mednet/config/data/nih_cxr14_padchest/__init__.py b/src/mednet/libs/classification/config/data/tbpoc/__init__.py
similarity index 100%
rename from src/mednet/config/data/nih_cxr14_padchest/__init__.py
rename to src/mednet/libs/classification/config/data/tbpoc/__init__.py
diff --git a/src/mednet/config/data/tbpoc/datamodule.py b/src/mednet/libs/classification/config/data/tbpoc/datamodule.py
similarity index 92%
rename from src/mednet/config/data/tbpoc/datamodule.py
rename to src/mednet/libs/classification/config/data/tbpoc/datamodule.py
index 5b4b6011fee91c1ad09f1b92d9388fa253c1b518..122f6686b4831cfb74e35320a7d23e5ee64192e6 100644
--- a/src/mednet/config/data/tbpoc/datamodule.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/datamodule.py
@@ -6,14 +6,13 @@ import os
 import pathlib
 
 import PIL.Image
+from mednet.libs.common.data.datamodule import CachingDataModule
+from mednet.libs.common.data.image_utils import remove_black_borders
+from mednet.libs.common.data.split import make_split
+from mednet.libs.common.data.typing import Sample
+from mednet.libs.common.data.typing import RawDataLoader as _BaseRawDataLoader
 from torchvision.transforms.functional import to_tensor
 
-from medbase.data.datamodule import CachingDataModule
-from medbase.data.image_utils import remove_black_borders
-from medbase.data.split import make_split
-from medbase.data.typing import Sample
-from medbase.data.typing import RawDataLoader as _BaseRawDataLoader
-
 from ....utils.rc import load_rc
 
 CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2])
diff --git a/src/mednet/config/data/tbpoc/fold-0.json b/src/mednet/libs/classification/config/data/tbpoc/fold-0.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-0.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-0.json
diff --git a/src/mednet/config/data/tbpoc/fold-1.json b/src/mednet/libs/classification/config/data/tbpoc/fold-1.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-1.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-1.json
diff --git a/src/mednet/config/data/tbpoc/fold-2.json b/src/mednet/libs/classification/config/data/tbpoc/fold-2.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-2.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-2.json
diff --git a/src/mednet/config/data/tbpoc/fold-3.json b/src/mednet/libs/classification/config/data/tbpoc/fold-3.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-3.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-3.json
diff --git a/src/mednet/config/data/tbpoc/fold-4.json b/src/mednet/libs/classification/config/data/tbpoc/fold-4.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-4.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-4.json
diff --git a/src/mednet/config/data/tbpoc/fold-5.json b/src/mednet/libs/classification/config/data/tbpoc/fold-5.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-5.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-5.json
diff --git a/src/mednet/config/data/tbpoc/fold-6.json b/src/mednet/libs/classification/config/data/tbpoc/fold-6.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-6.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-6.json
diff --git a/src/mednet/config/data/tbpoc/fold-7.json b/src/mednet/libs/classification/config/data/tbpoc/fold-7.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-7.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-7.json
diff --git a/src/mednet/config/data/tbpoc/fold-8.json b/src/mednet/libs/classification/config/data/tbpoc/fold-8.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-8.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-8.json
diff --git a/src/mednet/config/data/tbpoc/fold-9.json b/src/mednet/libs/classification/config/data/tbpoc/fold-9.json
similarity index 100%
rename from src/mednet/config/data/tbpoc/fold-9.json
rename to src/mednet/libs/classification/config/data/tbpoc/fold-9.json
diff --git a/src/mednet/config/data/tbpoc/fold_0.py b/src/mednet/libs/classification/config/data/tbpoc/fold_0.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_0.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_0.py
index 03b5f6cdd2b5d2a2e3ad9fb3f28cd18e2cc889a9..68c79c5c82c874bbf2da2833502596f5e1daf153 100644
--- a/src/mednet/config/data/tbpoc/fold_0.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_0.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-0.json")
diff --git a/src/mednet/config/data/tbpoc/fold_1.py b/src/mednet/libs/classification/config/data/tbpoc/fold_1.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_1.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_1.py
index 5db4436748cca3612849487e714b338c7d77a6f1..f33b24b71c9e547570511e8d2e60a103afe93e4d 100644
--- a/src/mednet/config/data/tbpoc/fold_1.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_1.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-1.json")
diff --git a/src/mednet/config/data/tbpoc/fold_2.py b/src/mednet/libs/classification/config/data/tbpoc/fold_2.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_2.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_2.py
index 5dea9179fb4fc790216fbaa3a0d81c74afa12715..7ba9632dd776969c9b0f2febbd96069974be498f 100644
--- a/src/mednet/config/data/tbpoc/fold_2.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_2.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-2.json")
diff --git a/src/mednet/config/data/tbpoc/fold_3.py b/src/mednet/libs/classification/config/data/tbpoc/fold_3.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_3.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_3.py
index bce854fc9c8a6a55c409bcf84dcaa0934e29b066..1c174c8a205f1c680e7a5082cc20ccceafd4ba5f 100644
--- a/src/mednet/config/data/tbpoc/fold_3.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_3.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-3.json")
diff --git a/src/mednet/config/data/tbpoc/fold_4.py b/src/mednet/libs/classification/config/data/tbpoc/fold_4.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_4.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_4.py
index 55720bd307bebfc7d74dfde086f1d8a881051b11..e2f9ddd918ef2fd11e1afc6c0ef69962b46d0d26 100644
--- a/src/mednet/config/data/tbpoc/fold_4.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_4.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-4.json")
diff --git a/src/mednet/config/data/tbpoc/fold_5.py b/src/mednet/libs/classification/config/data/tbpoc/fold_5.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_5.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_5.py
index 61bc52b54d9e539538ee900a077a802aa75772f5..e8892641a9e0e929b58746588c5a929ebc8f208d 100644
--- a/src/mednet/config/data/tbpoc/fold_5.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_5.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-5.json")
diff --git a/src/mednet/config/data/tbpoc/fold_6.py b/src/mednet/libs/classification/config/data/tbpoc/fold_6.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_6.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_6.py
index b7f166e6b0d480bef430cb920e76f157db9cfb34..71078d44a0f1ced9af4c2f0fa040bb9522bd7d27 100644
--- a/src/mednet/config/data/tbpoc/fold_6.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_6.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-6.json")
diff --git a/src/mednet/config/data/tbpoc/fold_7.py b/src/mednet/libs/classification/config/data/tbpoc/fold_7.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_7.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_7.py
index 3efab4a9eba71837d1eacc06c7bc41abb6855853..02d8cac0fd21e2b452ac731c0fab70539fc79009 100644
--- a/src/mednet/config/data/tbpoc/fold_7.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_7.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-7.json")
diff --git a/src/mednet/config/data/tbpoc/fold_8.py b/src/mednet/libs/classification/config/data/tbpoc/fold_8.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_8.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_8.py
index f23b85d5bf012e1a3ac1cf2506ffca9efc192ade..4a19a705b7386dd0d073b283727c5091d958184a 100644
--- a/src/mednet/config/data/tbpoc/fold_8.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_8.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-8.json")
diff --git a/src/mednet/config/data/tbpoc/fold_9.py b/src/mednet/libs/classification/config/data/tbpoc/fold_9.py
similarity index 61%
rename from src/mednet/config/data/tbpoc/fold_9.py
rename to src/mednet/libs/classification/config/data/tbpoc/fold_9.py
index 0391b39cd5d9cfa955114cee4463d77c07c8dfdc..358d305ae2b8b9b85a6c5172c3f3d5b37b066c0b 100644
--- a/src/mednet/config/data/tbpoc/fold_9.py
+++ b/src/mednet/libs/classification/config/data/tbpoc/fold_9.py
@@ -5,10 +5,10 @@
 
 Database reference: [TB-POC-2018]_
 
-See :py:class:`mednet.config.data.tbpoc.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbpoc.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbpoc.datamodule import DataModule
+from mednet.libs.classification.config.data.tbpoc.datamodule import DataModule
 
 datamodule = DataModule("fold-9.json")
diff --git a/src/mednet/config/data/padchest/__init__.py b/src/mednet/libs/classification/config/data/tbx11k/__init__.py
similarity index 100%
rename from src/mednet/config/data/padchest/__init__.py
rename to src/mednet/libs/classification/config/data/tbx11k/__init__.py
diff --git a/src/mednet/config/data/tbx11k/datamodule.py b/src/mednet/libs/classification/config/data/tbx11k/datamodule.py
similarity index 97%
rename from src/mednet/config/data/tbx11k/datamodule.py
rename to src/mednet/libs/classification/config/data/tbx11k/datamodule.py
index c6b28ef9237c68a636708312d5147feb8838b8c2..b633d8e9e4d87fdf6c9113f16c2703e3bcf71b1b 100644
--- a/src/mednet/config/data/tbx11k/datamodule.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/datamodule.py
@@ -10,14 +10,13 @@ import typing
 
 import PIL.Image
 import typing_extensions
+from mednet.libs.common.data.datamodule import CachingDataModule
+from mednet.libs.common.data.split import make_split
+from mednet.libs.common.data.typing import Sample
+from mednet.libs.common.data.typing import RawDataLoader as _BaseRawDataLoader
 from torch.utils.data._utils.collate import default_collate_fn_map
 from torchvision.transforms.functional import to_tensor
 
-from medbase.data.datamodule import CachingDataModule
-from medbase.data.split import make_split
-from medbase.data.typing import RawDataLoader as _BaseRawDataLoader
-from medbase.data.typing import Sample
-
 from ....utils.rc import load_rc
 
 CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2])
diff --git a/src/mednet/config/data/tbx11k/v1-fold-0.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-0.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-0.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-0.json
diff --git a/src/mednet/config/data/tbx11k/v1-fold-1.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-1.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-1.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-1.json
diff --git a/src/mednet/config/data/tbx11k/v1-fold-2.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-2.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-2.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-2.json
diff --git a/src/mednet/config/data/tbx11k/v1-fold-3.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-3.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-3.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-3.json
diff --git a/src/mednet/config/data/tbx11k/v1-fold-4.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-4.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-4.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-4.json
diff --git a/src/mednet/config/data/tbx11k/v1-fold-5.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-5.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-5.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-5.json
diff --git a/src/mednet/config/data/tbx11k/v1-fold-6.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-6.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-6.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-6.json
diff --git a/src/mednet/config/data/tbx11k/v1-fold-7.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-7.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-7.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-7.json
diff --git a/src/mednet/config/data/tbx11k/v1-fold-8.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-8.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-8.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-8.json
diff --git a/src/mednet/config/data/tbx11k/v1-fold-9.json b/src/mednet/libs/classification/config/data/tbx11k/v1-fold-9.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-fold-9.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-fold-9.json
diff --git a/src/mednet/config/data/tbx11k/v1-healthy-vs-atb.json b/src/mednet/libs/classification/config/data/tbx11k/v1-healthy-vs-atb.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v1-healthy-vs-atb.json
rename to src/mednet/libs/classification/config/data/tbx11k/v1-healthy-vs-atb.json
diff --git a/src/mednet/config/data/tbx11k/v1_fold_0.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_0.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_0.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_0.py
index f2d5daa5beb241fb47e2301e0f77af3e1b869f93..c36165610f76b3026e6da28338efe3f525cd3e36 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_0.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_0.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-0.json")
diff --git a/src/mednet/config/data/tbx11k/v1_fold_1.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_1.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_1.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_1.py
index f137be5962848952cb0efd72902acbe03c55b099..a430dfb72c45a8d9c08e676a555ccec2c82ba5af 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_1.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_1.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-1.json")
diff --git a/src/mednet/config/data/tbx11k/v1_fold_2.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_2.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_2.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_2.py
index cee8bcd282a4658f00b82737c1158f346da3be87..9de386926c119fb4944fdd633ee4d7087fcdfd07 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_2.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_2.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-2.json")
diff --git a/src/mednet/config/data/tbx11k/v1_fold_3.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_3.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_3.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_3.py
index 5527c47a4b9de39ff6d992a4115ea0f113e79fed..9e57ebd9232f4a1df903d149062e100d5149dfd5 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_3.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_3.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-3.json")
diff --git a/src/mednet/config/data/tbx11k/v1_fold_4.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_4.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_4.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_4.py
index 800239d5866c0010f0390e26c5daa8f46f40e3ee..f6236f3b5e524a33bb8da32b85ff49a9a13262fa 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_4.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_4.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-4.json")
diff --git a/src/mednet/config/data/tbx11k/v1_fold_5.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_5.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_5.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_5.py
index e0ca7876f76baea4a204dd4a1f61eac7ba2d20b1..404195d3b10236e9529656e4543405d1d8854393 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_5.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_5.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-5.json")
diff --git a/src/mednet/config/data/tbx11k/v1_fold_6.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_6.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_6.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_6.py
index 79ba3cd580f6b4b44df33855ba42afe727996aca..6edf3017b83c8be4f94fad932788c1af402f0b49 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_6.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_6.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-6.json")
diff --git a/src/mednet/config/data/tbx11k/v1_fold_7.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_7.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_7.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_7.py
index e873f8583667c7c39643bbe32f1b67ce7c582025..71f989ea2c2793453d162ae67264572778eab1dc 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_7.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_7.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-7.json")
diff --git a/src/mednet/config/data/tbx11k/v1_fold_8.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_8.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_8.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_8.py
index 21aea93e946328107de50a6911a738f4f09e6160..124b64037459c60bb43f0fffb9309ecd775a1b14 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_8.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_8.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-8.json")
diff --git a/src/mednet/config/data/tbx11k/v1_fold_9.py b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_9.py
similarity index 63%
rename from src/mednet/config/data/tbx11k/v1_fold_9.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_fold_9.py
index 47e0ae339b5fc47c090c13c0e0a572833724bddb..54f807907088b24ea9fa60b3df3f59e58375b53e 100644
--- a/src/mednet/config/data/tbx11k/v1_fold_9.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_fold_9.py
@@ -6,10 +6,10 @@ cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-fold-9.json")
diff --git a/src/mednet/config/data/tbx11k/v1_healthy_vs_atb.py b/src/mednet/libs/classification/config/data/tbx11k/v1_healthy_vs_atb.py
similarity index 79%
rename from src/mednet/config/data/tbx11k/v1_healthy_vs_atb.py
rename to src/mednet/libs/classification/config/data/tbx11k/v1_healthy_vs_atb.py
index b97d7a52fe168f0f3721f64325a32c1362460817..f66852b98b5b4892dc052220d033850eded4648f 100644
--- a/src/mednet/config/data/tbx11k/v1_healthy_vs_atb.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v1_healthy_vs_atb.py
@@ -27,10 +27,10 @@ Split v1 contains healthy subjects against active TB cases (total samples =
   - Active TB only: 157
   - Total: 957
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v1-healthy-vs-atb.json")
diff --git a/src/mednet/config/data/tbx11k/v2-fold-0.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-0.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-0.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-0.json
diff --git a/src/mednet/config/data/tbx11k/v2-fold-1.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-1.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-1.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-1.json
diff --git a/src/mednet/config/data/tbx11k/v2-fold-2.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-2.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-2.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-2.json
diff --git a/src/mednet/config/data/tbx11k/v2-fold-3.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-3.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-3.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-3.json
diff --git a/src/mednet/config/data/tbx11k/v2-fold-4.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-4.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-4.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-4.json
diff --git a/src/mednet/config/data/tbx11k/v2-fold-5.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-5.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-5.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-5.json
diff --git a/src/mednet/config/data/tbx11k/v2-fold-6.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-6.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-6.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-6.json
diff --git a/src/mednet/config/data/tbx11k/v2-fold-7.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-7.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-7.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-7.json
diff --git a/src/mednet/config/data/tbx11k/v2-fold-8.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-8.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-8.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-8.json
diff --git a/src/mednet/config/data/tbx11k/v2-fold-9.json b/src/mednet/libs/classification/config/data/tbx11k/v2-fold-9.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-fold-9.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-fold-9.json
diff --git a/src/mednet/config/data/tbx11k/v2-others-vs-atb.json b/src/mednet/libs/classification/config/data/tbx11k/v2-others-vs-atb.json
similarity index 100%
rename from src/mednet/config/data/tbx11k/v2-others-vs-atb.json
rename to src/mednet/libs/classification/config/data/tbx11k/v2-others-vs-atb.json
diff --git a/src/mednet/config/data/tbx11k/v2_fold_0.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_0.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_0.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_0.py
index 565bc70653cb1edfe9c5dd40d93b52106b8f5645..230727a8a58f0c8ec541d17a2e12927075a7130d 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_0.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_0.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-0.json")
diff --git a/src/mednet/config/data/tbx11k/v2_fold_1.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_1.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_1.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_1.py
index 77d73704df6040328b0d317dd7c8145b074a2596..e35d4be1221a93a83ca1c1077e0812caa4659cf4 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_1.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_1.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-1.json")
diff --git a/src/mednet/config/data/tbx11k/v2_fold_2.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_2.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_2.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_2.py
index eac8cb9ae2c0f24c0efc97a1c0c232d133c26c6a..491830796eea5e675a4efeb60bf17addb47b6c87 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_2.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_2.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-2.json")
diff --git a/src/mednet/config/data/tbx11k/v2_fold_3.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_3.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_3.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_3.py
index ec0de16516d41408db300f2970cec962dec7d5e4..fc261fccb3cf0b5e95ce11894fade7b21e091d99 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_3.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_3.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-3.json")
diff --git a/src/mednet/config/data/tbx11k/v2_fold_4.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_4.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_4.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_4.py
index f3491d51ab18672b9441b10d2b0eb94b6b4eec1f..7d743ba73478a5d77e0b96e76a1ea72d2077c0cb 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_4.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_4.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-4.json")
diff --git a/src/mednet/config/data/tbx11k/v2_fold_5.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_5.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_5.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_5.py
index 9cb818a42cbb3583fe2e4da8118fbaac923ac020..0b72cfd7e9c5710cc870379b9e0b955958012e49 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_5.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_5.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-5.json")
diff --git a/src/mednet/config/data/tbx11k/v2_fold_6.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_6.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_6.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_6.py
index 15014857119e8613ac9c585e303f72cf15236fac..d530bd58ebd5dc1bed28d6291e75065f0b5724b8 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_6.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_6.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-6.json")
diff --git a/src/mednet/config/data/tbx11k/v2_fold_7.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_7.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_7.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_7.py
index c3a63f6cf542f38a6fe4e561028dbaa6af910f29..f5c6b5260b953c3718e0c050a30948dbb041a2df 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_7.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_7.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-7.json")
diff --git a/src/mednet/config/data/tbx11k/v2_fold_8.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_8.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_8.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_8.py
index 0a4f348eab015215a0fa92a4db5fa639f91bee05..2ea12f81b6270eb3693a5a379cbf556896e602a8 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_8.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_8.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-8.json")
diff --git a/src/mednet/config/data/tbx11k/v2_fold_9.py b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_9.py
similarity index 65%
rename from src/mednet/config/data/tbx11k/v2_fold_9.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_fold_9.py
index 2c087bd498fb652a219d7c477d6251ffce6c0ae8..8d6953889e85694c4419afed7dce84a9872655bd 100644
--- a/src/mednet/config/data/tbx11k/v2_fold_9.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_fold_9.py
@@ -6,10 +6,10 @@ TB vs. active TB cases).
 
 Database reference: [TBX11K-2020]_
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-fold-9.json")
diff --git a/src/mednet/config/data/tbx11k/v2_others_vs_atb.py b/src/mednet/libs/classification/config/data/tbx11k/v2_others_vs_atb.py
similarity index 81%
rename from src/mednet/config/data/tbx11k/v2_others_vs_atb.py
rename to src/mednet/libs/classification/config/data/tbx11k/v2_others_vs_atb.py
index 5f50e19d290e84d8961e3ef0e66cb47a96199fc2..cc330216929d4880c4f11ffbb2cc52a99f802c37 100644
--- a/src/mednet/config/data/tbx11k/v2_others_vs_atb.py
+++ b/src/mednet/libs/classification/config/data/tbx11k/v2_others_vs_atb.py
@@ -27,10 +27,10 @@ active TB cases (total samples = 8369):
   - Active TB only: 157
   - Total: 1793
 
-See :py:class:`mednet.config.data.tbx11k.datamodule.DataModule` for technical
+See :py:class:`mednet.libs.classification.config.data.tbx11k.datamodule.DataModule` for technical
 details.
 """
 
-from mednet.config.data.tbx11k.datamodule import DataModule
+from mednet.libs.classification.config.data.tbx11k.datamodule import DataModule
 
 datamodule = DataModule("v2-others-vs-atb.json")
diff --git a/src/mednet/config/data/shenzhen/__init__.py b/src/mednet/libs/classification/config/models/__init__.py
similarity index 100%
rename from src/mednet/config/data/shenzhen/__init__.py
rename to src/mednet/libs/classification/config/models/__init__.py
diff --git a/src/mednet/config/models/alexnet.py b/src/mednet/libs/classification/config/models/alexnet.py
similarity index 90%
rename from src/mednet/config/models/alexnet.py
rename to src/mednet/libs/classification/config/models/alexnet.py
index de1e95bf0a5d4b40f2a6f339c5605a936f408e86..6f1505d859c4ceee268663a272126e858919cb5d 100644
--- a/src/mednet/config/models/alexnet.py
+++ b/src/mednet/libs/classification/config/models/alexnet.py
@@ -8,11 +8,10 @@ page <alexnet-pytorch_>`_), modified for a variable number of outputs
 (defaults to 1).
 """
 
+from mednet.libs.classification.models.alexnet import Alexnet
 from torch.nn import BCEWithLogitsLoss
 from torch.optim import SGD
 
-from mednet.models.alexnet import Alexnet
-
 model = Alexnet(
     loss_type=BCEWithLogitsLoss,
     optimizer_type=SGD,
diff --git a/src/mednet/config/models/alexnet_pretrained.py b/src/mednet/libs/classification/config/models/alexnet_pretrained.py
similarity index 91%
rename from src/mednet/config/models/alexnet_pretrained.py
rename to src/mednet/libs/classification/config/models/alexnet_pretrained.py
index f3ed61ba2b8f6d2d7e5cbf0d9554efd5c265546d..9178139add6e5f6291939f8eeee27c1ea9a47b63 100644
--- a/src/mednet/config/models/alexnet_pretrained.py
+++ b/src/mednet/libs/classification/config/models/alexnet_pretrained.py
@@ -10,11 +10,10 @@ page <alexnet_pytorch_>`), modified for a variable number of outputs
 N.B.: The output layer is **always** initialized from scratch.
 """
 
+from mednet.libs.classification.models.alexnet import Alexnet
 from torch.nn import BCEWithLogitsLoss
 from torch.optim import SGD
 
-from mednet.models.alexnet import Alexnet
-
 model = Alexnet(
     loss_type=BCEWithLogitsLoss,
     optimizer_type=SGD,
diff --git a/src/mednet/config/models/cnn3d.py b/src/mednet/libs/classification/config/models/cnn3d.py
similarity index 100%
rename from src/mednet/config/models/cnn3d.py
rename to src/mednet/libs/classification/config/models/cnn3d.py
diff --git a/src/mednet/config/models/densenet.py b/src/mednet/libs/classification/config/models/densenet.py
similarity index 89%
rename from src/mednet/config/models/densenet.py
rename to src/mednet/libs/classification/config/models/densenet.py
index 3f3e69072aea5c528afa4e2bc284bfc02c2654db..bac5868cae40e28472af53e7b21617546f012c33 100644
--- a/src/mednet/config/models/densenet.py
+++ b/src/mednet/libs/classification/config/models/densenet.py
@@ -8,11 +8,10 @@ page <densenet_pytorch_>`), modified for a variable number of outputs
 (defaults to 1).
 """
 
+from mednet.libs.classification.models.densenet import Densenet
 from torch.nn import BCEWithLogitsLoss
 from torch.optim import Adam
 
-from mednet.models.densenet import Densenet
-
 model = Densenet(
     loss_type=BCEWithLogitsLoss,
     optimizer_type=Adam,
diff --git a/src/mednet/config/models/densenet_pretrained.py b/src/mednet/libs/classification/config/models/densenet_pretrained.py
similarity index 90%
rename from src/mednet/config/models/densenet_pretrained.py
rename to src/mednet/libs/classification/config/models/densenet_pretrained.py
index d7637a009d6670914edce6bd92e076775a491850..10e4a58c6c7be9ef05298331c4a9d24f1a664804 100644
--- a/src/mednet/config/models/densenet_pretrained.py
+++ b/src/mednet/libs/classification/config/models/densenet_pretrained.py
@@ -10,11 +10,10 @@ page <alexnet_pytorch_>`), modified for a variable number of outputs
 N.B.: The output layer is **always** initialized from scratch.
 """
 
+from mednet.libs.classification.models.densenet import Densenet
 from torch.nn import BCEWithLogitsLoss
 from torch.optim import Adam
 
-from mednet.models.densenet import Densenet
-
 model = Densenet(
     loss_type=BCEWithLogitsLoss,
     optimizer_type=Adam,
diff --git a/src/mednet/config/models/densenet_rs.py b/src/mednet/libs/classification/config/models/densenet_rs.py
similarity index 91%
rename from src/mednet/config/models/densenet_rs.py
rename to src/mednet/libs/classification/config/models/densenet_rs.py
index f91af6318472b9bd22e652bdcf3223b7ef5cd4a1..b3620d68d298ab921ac214389ffb1bc7434d4967 100644
--- a/src/mednet/config/models/densenet_rs.py
+++ b/src/mednet/libs/classification/config/models/densenet_rs.py
@@ -9,11 +9,10 @@ page <densenet_pytorch_>`), modified to have exactly 14 outputs
 weights from scratch for radiological sign detection.
 """
 
+from mednet.libs.classification.models.densenet import Densenet
 from torch.nn import BCEWithLogitsLoss
 from torch.optim import Adam
 
-from mednet.models.densenet import Densenet
-
 model = Densenet(
     loss_type=BCEWithLogitsLoss,
     optimizer_type=Adam,
diff --git a/src/mednet/config/models/logistic_regression.py b/src/mednet/libs/classification/config/models/logistic_regression.py
similarity index 82%
rename from src/mednet/config/models/logistic_regression.py
rename to src/mednet/libs/classification/config/models/logistic_regression.py
index bd327ed4dd5582417907471c9c352f1bb384c718..6917802718359eaaf7c4aafcb2417ffd118b1708 100644
--- a/src/mednet/config/models/logistic_regression.py
+++ b/src/mednet/libs/classification/config/models/logistic_regression.py
@@ -8,6 +8,8 @@ the output of :py:mod:`.densenet_rs` and be trained for binary classification
 (e.g. for active TB detection).
 """
 
-from mednet.models.logistic_regression import LogisticRegression
+from mednet.libs.classification.models.logistic_regression import (
+    LogisticRegression,
+)
 
 model = LogisticRegression(input_size=14)
diff --git a/src/mednet/config/models/mlp.py b/src/mednet/libs/classification/config/models/mlp.py
similarity index 84%
rename from src/mednet/config/models/mlp.py
rename to src/mednet/libs/classification/config/models/mlp.py
index 4791a8400a577808af2e70879303c69bf2893453..51a28c17858165d4b6eb6ee88eb02802332ecd09 100644
--- a/src/mednet/config/models/mlp.py
+++ b/src/mednet/libs/classification/config/models/mlp.py
@@ -8,6 +8,6 @@ output (e.g. to predict active TB presence from radiological finding
 estimates).
 """
 
-from mednet.models.mlp import MultiLayerPerceptron
+from mednet.libs.classification.models.mlp import MultiLayerPerceptron
 
 model = MultiLayerPerceptron()
diff --git a/src/mednet/config/models/pasa.py b/src/mednet/libs/classification/config/models/pasa.py
similarity index 91%
rename from src/mednet/config/models/pasa.py
rename to src/mednet/libs/classification/config/models/pasa.py
index 2db7c8d9c2bbb74ecb2becbd549237cfde4faf61..faec274496fe6609fbcbcdae9c733a0b71e05a8c 100644
--- a/src/mednet/config/models/pasa.py
+++ b/src/mednet/libs/classification/config/models/pasa.py
@@ -10,11 +10,10 @@ Screening and Visualization".
 Reference: [PASA-2019]_
 """
 
+from mednet.libs.classification.models.pasa import Pasa
 from torch.nn import BCEWithLogitsLoss
 from torch.optim import Adam
 
-from mednet.models.pasa import Pasa
-
 model = Pasa(
     loss_type=BCEWithLogitsLoss,
     optimizer_type=Adam,
diff --git a/src/mednet/config/data/tbpoc/__init__.py b/src/mednet/libs/classification/engine/__init__.py
similarity index 100%
rename from src/mednet/config/data/tbpoc/__init__.py
rename to src/mednet/libs/classification/engine/__init__.py
diff --git a/src/mednet/engine/evaluator.py b/src/mednet/libs/classification/engine/evaluator.py
similarity index 100%
rename from src/mednet/engine/evaluator.py
rename to src/mednet/libs/classification/engine/evaluator.py
diff --git a/src/mednet/engine/predictor.py b/src/mednet/libs/classification/engine/predictor.py
similarity index 98%
rename from src/mednet/engine/predictor.py
rename to src/mednet/libs/classification/engine/predictor.py
index 5a5b3545a6a296c1901ac2245b57d72f61b744e3..1701a23ed8a2b517d9ad5fb233e8c365fb45c0bf 100644
--- a/src/mednet/engine/predictor.py
+++ b/src/mednet/libs/classification/engine/predictor.py
@@ -6,7 +6,7 @@ import logging
 
 import lightning.pytorch
 import torch.utils.data
-from medbase.engine.device import DeviceManager
+from mednet.libs.common.engine.device import DeviceManager
 
 from ..models.typing import (
     BinaryPrediction,
diff --git a/src/mednet/config/data/tbx11k/__init__.py b/src/mednet/libs/classification/engine/saliency/__init__.py
similarity index 100%
rename from src/mednet/config/data/tbx11k/__init__.py
rename to src/mednet/libs/classification/engine/saliency/__init__.py
diff --git a/src/mednet/engine/saliency/completeness.py b/src/mednet/libs/classification/engine/saliency/completeness.py
similarity index 99%
rename from src/mednet/engine/saliency/completeness.py
rename to src/mednet/libs/classification/engine/saliency/completeness.py
index 84327ad4a81f544630c4f73d18f30842ebdfb714..e57ba8d1e062383d4b2f9abbe5af52a89bbf845d 100644
--- a/src/mednet/engine/saliency/completeness.py
+++ b/src/mednet/libs/classification/engine/saliency/completeness.py
@@ -11,8 +11,8 @@ import lightning.pytorch
 import numpy as np
 import torch
 import tqdm
-from medbase.data.typing import Sample
-from medbase.engine.device import DeviceManager
+from mednet.libs.common.data.typing import Sample
+from mednet.libs.common.engine.device import DeviceManager
 from pytorch_grad_cam.metrics.road import (
     ROADLeastRelevantFirstAverage,
     ROADMostRelevantFirstAverage,
diff --git a/src/mednet/engine/saliency/evaluator.py b/src/mednet/libs/classification/engine/saliency/evaluator.py
similarity index 100%
rename from src/mednet/engine/saliency/evaluator.py
rename to src/mednet/libs/classification/engine/saliency/evaluator.py
diff --git a/src/mednet/engine/saliency/generator.py b/src/mednet/libs/classification/engine/saliency/generator.py
similarity index 99%
rename from src/mednet/engine/saliency/generator.py
rename to src/mednet/libs/classification/engine/saliency/generator.py
index ddad6ce7129f0cd0dd3bfa7b44d64dfe8c7551f4..28a11674d027f0a92ba0bb9c5a6096f475899214 100644
--- a/src/mednet/engine/saliency/generator.py
+++ b/src/mednet/libs/classification/engine/saliency/generator.py
@@ -11,7 +11,7 @@ import numpy
 import torch
 import torch.nn
 import tqdm
-from medbase.engine.device import DeviceManager
+from mednet.libs.common.engine.device import DeviceManager
 
 from ...models.typing import SaliencyMapAlgorithm
 
diff --git a/src/mednet/engine/saliency/interpretability.py b/src/mednet/libs/classification/engine/saliency/interpretability.py
similarity index 100%
rename from src/mednet/engine/saliency/interpretability.py
rename to src/mednet/libs/classification/engine/saliency/interpretability.py
diff --git a/src/mednet/engine/saliency/viewer.py b/src/mednet/libs/classification/engine/saliency/viewer.py
similarity index 100%
rename from src/mednet/engine/saliency/viewer.py
rename to src/mednet/libs/classification/engine/saliency/viewer.py
diff --git a/src/mednet/config/models/__init__.py b/src/mednet/libs/classification/models/__init__.py
similarity index 100%
rename from src/mednet/config/models/__init__.py
rename to src/mednet/libs/classification/models/__init__.py
diff --git a/src/mednet/models/alexnet.py b/src/mednet/libs/classification/models/alexnet.py
similarity index 98%
rename from src/mednet/models/alexnet.py
rename to src/mednet/libs/classification/models/alexnet.py
index 5c686de328355a01c1d9caebef227cfaf9518542..481bc03fd3cfd7322187792f5020cd5e71d8aefa 100644
--- a/src/mednet/models/alexnet.py
+++ b/src/mednet/libs/classification/models/alexnet.py
@@ -11,7 +11,7 @@ import torch.optim.optimizer
 import torch.utils.data
 import torchvision.models as models
 import torchvision.transforms
-from medbase.data.typing import TransformSequence
+from mednet.libs.common.data.typing import TransformSequence
 from .model import Model
 from .separate import separate
 from .transforms import RGB, SquareCenterPad
diff --git a/src/mednet/models/densenet.py b/src/mednet/libs/classification/models/densenet.py
similarity index 98%
rename from src/mednet/models/densenet.py
rename to src/mednet/libs/classification/models/densenet.py
index e9433b994b5373f997ea9f880519e115bf75db94..bd7b83d8bfdd8d1f05c94adfc1a7a92461f74369 100644
--- a/src/mednet/models/densenet.py
+++ b/src/mednet/libs/classification/models/densenet.py
@@ -11,7 +11,7 @@ import torch.optim.optimizer
 import torch.utils.data
 import torchvision.models as models
 import torchvision.transforms
-from medbase.data.typing import TransformSequence
+from mednet.libs.common.data.typing import TransformSequence
 from .model import Model
 from .separate import separate
 from .transforms import RGB, SquareCenterPad
diff --git a/src/mednet/models/logistic_regression.py b/src/mednet/libs/classification/models/logistic_regression.py
similarity index 100%
rename from src/mednet/models/logistic_regression.py
rename to src/mednet/libs/classification/models/logistic_regression.py
diff --git a/src/mednet/models/loss_weights.py b/src/mednet/libs/classification/models/loss_weights.py
similarity index 98%
rename from src/mednet/models/loss_weights.py
rename to src/mednet/libs/classification/models/loss_weights.py
index 2264a44da1c9ebacf3a3eef193a23b62706fc3e2..8111c354f1163ad5febbe4629868da3fa901618a 100644
--- a/src/mednet/models/loss_weights.py
+++ b/src/mednet/libs/classification/models/loss_weights.py
@@ -8,7 +8,7 @@ from collections import Counter
 
 import torch
 import torch.utils.data
-from medbase.data.typing import DataLoader
+from mednet.libs.common.data.typing import DataLoader
 
 logger = logging.getLogger("mednet")
 
diff --git a/src/mednet/models/mlp.py b/src/mednet/libs/classification/models/mlp.py
similarity index 100%
rename from src/mednet/models/mlp.py
rename to src/mednet/libs/classification/models/mlp.py
diff --git a/src/mednet/models/normalizer.py b/src/mednet/libs/classification/models/normalizer.py
similarity index 100%
rename from src/mednet/models/normalizer.py
rename to src/mednet/libs/classification/models/normalizer.py
diff --git a/src/mednet/models/pasa.py b/src/mednet/libs/classification/models/pasa.py
similarity index 99%
rename from src/mednet/models/pasa.py
rename to src/mednet/libs/classification/models/pasa.py
index f6e83d83f0aa85fc7fd37dd8ce2551a823001e4a..4fddda019a86057753e5e7361e7f03198df12d61 100644
--- a/src/mednet/models/pasa.py
+++ b/src/mednet/libs/classification/models/pasa.py
@@ -11,7 +11,7 @@ import torch.nn.functional as F  # noqa: N812
 import torch.optim.optimizer
 import torch.utils.data
 import torchvision.transforms
-from medbase.data.typing import TransformSequence
+from mednet.libs.common.data.typing import TransformSequence
 from .model import Model
 from .separate import separate
 from .transforms import Grayscale, SquareCenterPad
diff --git a/src/mednet/models/separate.py b/src/mednet/libs/classification/models/separate.py
similarity index 97%
rename from src/mednet/models/separate.py
rename to src/mednet/libs/classification/models/separate.py
index 6c7afabb5769b4e5f805c9723b28a81e85facc0a..5d6065a867ac2bd104d9495a757756a65d2ae6d7 100644
--- a/src/mednet/models/separate.py
+++ b/src/mednet/libs/classification/models/separate.py
@@ -6,8 +6,7 @@
 import typing
 
 import torch
-
-from medbase.data.typing import Sample
+from mednet.libs.common.data.typing import Sample
 
 from .typing import BinaryPrediction, MultiClassPrediction
 
diff --git a/src/mednet/models/transforms.py b/src/mednet/libs/classification/models/transforms.py
similarity index 100%
rename from src/mednet/models/transforms.py
rename to src/mednet/libs/classification/models/transforms.py
diff --git a/src/mednet/models/typing.py b/src/mednet/libs/classification/models/typing.py
similarity index 100%
rename from src/mednet/models/typing.py
rename to src/mednet/libs/classification/models/typing.py
diff --git a/src/mednet/engine/__init__.py b/src/mednet/libs/classification/scripts/__init__.py
similarity index 100%
rename from src/mednet/engine/__init__.py
rename to src/mednet/libs/classification/scripts/__init__.py
diff --git a/src/mednet/libs/classification/scripts/cli.py b/src/mednet/libs/classification/scripts/cli.py
new file mode 100644
index 0000000000000000000000000000000000000000..70db90d60caf29a4fc90a01cc0288a7d11dac265
--- /dev/null
+++ b/src/mednet/libs/classification/scripts/cli.py
@@ -0,0 +1,77 @@
+# Copyright © 2022 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+import importlib
+
+import click
+from clapper.click import AliasedGroup
+
+
+@click.group(
+    cls=AliasedGroup,
+    context_settings=dict(help_option_names=["-?", "-h", "--help"]),
+)
+def classification():
+    """Image classification benchmark."""
+    pass
+
+
+classification.add_command(
+    importlib.import_module("..config", package=__name__).config
+)
+classification.add_command(
+    importlib.import_module("..database", package=__name__).database,
+)
+classification.add_command(
+    importlib.import_module("..evaluate", package=__name__).evaluate,
+)
+classification.add_command(
+    importlib.import_module("..experiment", package=__name__).experiment,
+)
+classification.add_command(
+    importlib.import_module("..predict", package=__name__).predict
+)
+classification.add_command(
+    importlib.import_module("..train", package=__name__).train
+)
+classification.add_command(
+    importlib.import_module(
+        "..train_analysis",
+        package=__name__,
+    ).train_analysis,
+)
+
+
+@click.group(
+    cls=AliasedGroup,
+    context_settings=dict(help_option_names=["-?", "-h", "--help"]),
+)
+def saliency():
+    """Generate, evaluate and view saliency maps."""
+    pass
+
+
+classification.add_command(saliency)
+
+saliency.add_command(
+    importlib.import_module("..saliency.generate", package=__name__).generate,
+)
+saliency.add_command(
+    importlib.import_module(
+        "..saliency.completeness",
+        package=__name__,
+    ).completeness,
+)
+saliency.add_command(
+    importlib.import_module(
+        "..saliency.interpretability",
+        package=__name__,
+    ).interpretability,
+)
+saliency.add_command(
+    importlib.import_module("..saliency.evaluate", package=__name__).evaluate,
+)
+saliency.add_command(
+    importlib.import_module("..saliency.view", package=__name__).view,
+)
diff --git a/src/mednet/scripts/click.py b/src/mednet/libs/classification/scripts/click.py
similarity index 100%
rename from src/mednet/scripts/click.py
rename to src/mednet/libs/classification/scripts/click.py
diff --git a/src/mednet/scripts/config.py b/src/mednet/libs/classification/scripts/config.py
similarity index 95%
rename from src/mednet/scripts/config.py
rename to src/mednet/libs/classification/scripts/config.py
index a6acc885c917634d75c95a59a19545c219f78969..3b48a197edd9944d86b4ae239bc991eaa3bc292a 100644
--- a/src/mednet/scripts/config.py
+++ b/src/mednet/libs/classification/scripts/config.py
@@ -25,7 +25,7 @@ def config():
     epilog="""Examples:
 
 \b
-  1. Lists all configuration resources (type: mednet.config) installed:
+  1. Lists all configuration resources (type: mednet.libs.classification.config) installed:
 
      .. code:: sh
 
@@ -46,7 +46,7 @@ def config():
 def list_(verbose) -> None:  # numpydoc ignore=PR01
     """List configuration files installed."""
     entry_points = importlib.metadata.entry_points().select(
-        group="mednet.config",
+        group="mednet.libs.classification.config",
     )
     entry_point_dict = {k.name: k for k in entry_points}
 
@@ -125,7 +125,7 @@ def list_(verbose) -> None:  # numpydoc ignore=PR01
 def describe(name, verbose) -> None:  # numpydoc ignore=PR01
     """Describe a specific configuration file."""
     entry_points = importlib.metadata.entry_points().select(
-        group="mednet.config",
+        group="mednet.libs.classification.config",
     )
     entry_point_dict = {k.name: k for k in entry_points}
 
@@ -178,7 +178,7 @@ def copy(source, destination) -> None:  # numpydoc ignore=PR01
     import shutil
 
     entry_points = importlib.metadata.entry_points().select(
-        group="mednet.config",
+        group="mednet.libs.classification.config",
     )
     entry_point_dict = {k.name: k for k in entry_points}
 
diff --git a/src/mednet/scripts/database.py b/src/mednet/libs/classification/scripts/database.py
similarity index 95%
rename from src/mednet/scripts/database.py
rename to src/mednet/libs/classification/scripts/database.py
index 38efd89af335ac616702033d40a2d44d84076f40..d918ad6dc2c8874688a13b85a78c9ab5ee6be8dd 100644
--- a/src/mednet/scripts/database.py
+++ b/src/mednet/libs/classification/scripts/database.py
@@ -19,7 +19,7 @@ def _get_raw_databases() -> dict[str, dict[str, str]]:
         containing two string keys:
 
         * ``module``: the full Pythonic module name (e.g.
-        ``mednet.data.montgomery``).
+        ``mednet.libs.classification.data.montgomery``).
         * ``datadir``: points to the user-configured data directory for the
         current dataset, if set, or ``None`` otherwise.
     """
@@ -70,7 +70,7 @@ def database() -> None:
     1. To install a database, set up its data directory ("datadir").  For
        example, to setup access to Montgomery files you downloaded locally at
        the directory "/path/to/montgomery/files", edit the RC file (typically
-       ``$HOME/.config/mednet.toml``), and add a line like the following:
+       ``$HOME/.config/mednet.libs.classification.toml``), and add a line like the following:
 
        .. code:: toml
 
@@ -140,7 +140,9 @@ def check(split, limit):  # numpydoc ignore=PR01
 
     click.secho(f"Checking split `{split}`...", fg="yellow")
     try:
-        module = importlib.metadata.entry_points(group="mednet.config")[split].module
+        module = importlib.metadata.entry_points(
+            group="mednet.libs.classification.config"
+        )[split].module
     except KeyError:
         raise Exception(f"Could not find database split `{split}`")
 
diff --git a/src/mednet/scripts/evaluate.py b/src/mednet/libs/classification/scripts/evaluate.py
similarity index 99%
rename from src/mednet/scripts/evaluate.py
rename to src/mednet/libs/classification/scripts/evaluate.py
index 19e01f8dbe0f0f89dbd9517ba8615f2109b15d12..bd3a48f7c58627e1ac4fd6c50408cb30dbfa1aea 100644
--- a/src/mednet/scripts/evaluate.py
+++ b/src/mednet/libs/classification/scripts/evaluate.py
@@ -17,7 +17,7 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
 
 
 @click.command(
-    entry_point_group="mednet.config",
+    entry_point_group="mednet.libs.classification.config",
     cls=ConfigCommand,
     epilog="""Examples:
 
diff --git a/src/mednet/scripts/experiment.py b/src/mednet/libs/classification/scripts/experiment.py
similarity index 99%
rename from src/mednet/scripts/experiment.py
rename to src/mednet/libs/classification/scripts/experiment.py
index ad4de8bcd7eff7684eb79cfcec0e963f33d35492..b0bedb0d408e384496a8c5a2cbbe267aa5d70eae 100644
--- a/src/mednet/scripts/experiment.py
+++ b/src/mednet/libs/classification/scripts/experiment.py
@@ -17,7 +17,7 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
 
 
 @click.command(
-    entry_point_group="mednet.config",
+    entry_point_group="mednet.libs.classification.config",
     cls=ConfigCommand,
     epilog="""Examples:
 
diff --git a/src/mednet/scripts/predict.py b/src/mednet/libs/classification/scripts/predict.py
similarity index 94%
rename from src/mednet/scripts/predict.py
rename to src/mednet/libs/classification/scripts/predict.py
index ffd42affe8f148dc1b55386c2e49b0a68d4d6704..e67a97476753d73c347a253ff1272e6f7955acea 100644
--- a/src/mednet/scripts/predict.py
+++ b/src/mednet/libs/classification/scripts/predict.py
@@ -14,7 +14,7 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
 
 
 @click.command(
-    entry_point_group="mednet.config",
+    entry_point_group="mednet.libs.classification.config",
     cls=ConfigCommand,
     epilog="""Examples:
 
@@ -134,9 +134,12 @@ def predict(
     import shutil
     import typing
 
-    from medbase.engine.device import DeviceManager
-    from mednet.engine.predictor import run
-    from medbase.utils.checkpointer import get_checkpoint_to_run_inference
+    from mednet.libs.classification.engine.predictor import run
+    from mednet.libs.common.engine.device import DeviceManager
+    from mednet.libs.common.utils.checkpointer import (
+        get_checkpoint_to_run_inference,
+    )
+
     from .utils import (
         device_properties,
         execution_metadata,
diff --git a/src/mednet/engine/saliency/__init__.py b/src/mednet/libs/classification/scripts/saliency/__init__.py
similarity index 100%
rename from src/mednet/engine/saliency/__init__.py
rename to src/mednet/libs/classification/scripts/saliency/__init__.py
diff --git a/src/mednet/scripts/saliency/completeness.py b/src/mednet/libs/classification/scripts/saliency/completeness.py
similarity index 97%
rename from src/mednet/scripts/saliency/completeness.py
rename to src/mednet/libs/classification/scripts/saliency/completeness.py
index 28a3369517a7e6660dff371e7b8f93bfeb31acf3..9ac006d542f057303f179027e6626597fd803ef0 100644
--- a/src/mednet/scripts/saliency/completeness.py
+++ b/src/mednet/libs/classification/scripts/saliency/completeness.py
@@ -16,7 +16,7 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
 
 
 @click.command(
-    entry_point_group="mednet.config",
+    entry_point_group="mednet.libs.classification.config",
     cls=ConfigCommand,
     epilog="""Examples:
 
@@ -203,8 +203,10 @@ def completeness(
     """
     import json
 
-    from medbase.engine.device import DeviceManager
-    from medbase.utils.checkpointer import get_checkpoint_to_run_inference
+    from mednet.libs.common.engine.device import DeviceManager
+    from mednet.libs.common.utils.checkpointer import (
+        get_checkpoint_to_run_inference,
+    )
 
     from ...engine.saliency.completeness import run
 
diff --git a/src/mednet/scripts/saliency/evaluate.py b/src/mednet/libs/classification/scripts/saliency/evaluate.py
similarity index 98%
rename from src/mednet/scripts/saliency/evaluate.py
rename to src/mednet/libs/classification/scripts/saliency/evaluate.py
index 5e64d240e4fd4f53ceb0f182c2f82dcd263a23ce..93390e040eb4bc27ae9cbbc2fdac0afe64771cf4 100644
--- a/src/mednet/scripts/saliency/evaluate.py
+++ b/src/mednet/libs/classification/scripts/saliency/evaluate.py
@@ -19,7 +19,7 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
 
 
 @click.command(
-    entry_point_group="mednet.config",
+    entry_point_group="mednet.libs.classification.config",
     cls=ConfigCommand,
     epilog="""Examples:
 
diff --git a/src/mednet/scripts/saliency/generate.py b/src/mednet/libs/classification/scripts/saliency/generate.py
similarity index 96%
rename from src/mednet/scripts/saliency/generate.py
rename to src/mednet/libs/classification/scripts/saliency/generate.py
index 34fb8382a4ecce911edd866d40d36dd52f160ff9..d4e8fd92dcd8dae0e6d25e12507b5acc8fbffcf9 100644
--- a/src/mednet/scripts/saliency/generate.py
+++ b/src/mednet/libs/classification/scripts/saliency/generate.py
@@ -16,7 +16,7 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
 
 
 @click.command(
-    entry_point_group="mednet.config",
+    entry_point_group="mednet.libs.classification.config",
     cls=ConfigCommand,
     epilog="""Examples:
 
@@ -169,8 +169,10 @@ def generate(
     algorithm and trained model.
     """
 
-    from medbase.engine.device import DeviceManager
-    from medbase.utils.checkpointer import get_checkpoint_to_run_inference
+    from mednet.libs.common.engine.device import DeviceManager
+    from mednet.libs.common.utils.checkpointer import (
+        get_checkpoint_to_run_inference,
+    )
 
     from ...engine.saliency.generator import run
 
diff --git a/src/mednet/scripts/saliency/interpretability.py b/src/mednet/libs/classification/scripts/saliency/interpretability.py
similarity index 98%
rename from src/mednet/scripts/saliency/interpretability.py
rename to src/mednet/libs/classification/scripts/saliency/interpretability.py
index 7bc6b891cb7f5307ced52c4526427e1ba9b7b555..65a117d3073eefed8b4690ebaa3ca74d59444b9f 100644
--- a/src/mednet/scripts/saliency/interpretability.py
+++ b/src/mednet/libs/classification/scripts/saliency/interpretability.py
@@ -14,7 +14,7 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
 
 
 @click.command(
-    entry_point_group="mednet.config",
+    entry_point_group="mednet.libs.classification.config",
     cls=ConfigCommand,
     epilog="""Examples:
 
diff --git a/src/mednet/scripts/saliency/view.py b/src/mednet/libs/classification/scripts/saliency/view.py
similarity index 98%
rename from src/mednet/scripts/saliency/view.py
rename to src/mednet/libs/classification/scripts/saliency/view.py
index 270ccbfebf86418bf458add62e71f0cda6baad67..3ad74497fa88f549171b437b91271a31ab191349 100644
--- a/src/mednet/scripts/saliency/view.py
+++ b/src/mednet/libs/classification/scripts/saliency/view.py
@@ -12,7 +12,7 @@ logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s")
 
 
 @click.command(
-    entry_point_group="mednet.config",
+    entry_point_group="mednet.libs.classification.config",
     cls=ConfigCommand,
     epilog="""Examples:
 
diff --git a/src/mednet/scripts/train.py b/src/mednet/libs/classification/scripts/train.py
similarity index 97%
rename from src/mednet/scripts/train.py
rename to src/mednet/libs/classification/scripts/train.py
index 2fd63221fda89033cb87d46dea16e89a302f6d98..ea09def8d0ce69ad0f42be23d4fe7b5ec6d5b566 100644
--- a/src/mednet/scripts/train.py
+++ b/src/mednet/libs/classification/scripts/train.py
@@ -230,7 +230,7 @@ def reusable_options(f):
 
 
 @click.command(
-    entry_point_group="mednet.config",
+    entry_point_group="mednet.libs.classification.config",
     cls=ConfigCommand,
     epilog="""Examples:
 
@@ -272,9 +272,11 @@ def train(
 
     import torch
     from lightning.pytorch import seed_everything
-    from medbase.engine.device import DeviceManager
-    from medbase.engine.trainer import run
-    from medbase.utils.checkpointer import get_checkpoint_to_resume_training
+    from mednet.libs.common.engine.device import DeviceManager
+    from mednet.libs.common.engine.trainer import run
+    from mednet.libs.common.utils.checkpointer import (
+        get_checkpoint_to_resume_training,
+    )
 
     from .utils import (
         device_properties,
diff --git a/src/mednet/scripts/train_analysis.py b/src/mednet/libs/classification/scripts/train_analysis.py
similarity index 99%
rename from src/mednet/scripts/train_analysis.py
rename to src/mednet/libs/classification/scripts/train_analysis.py
index 3938e22604fe4704bfd1d40b008acb0041ecd6af..bf3efe885b7b9f374dc96bd6035c46881b2f279b 100644
--- a/src/mednet/scripts/train_analysis.py
+++ b/src/mednet/libs/classification/scripts/train_analysis.py
@@ -230,8 +230,7 @@ def train_analysis(
     """Create a plot for each metric in the training logs and saves them in a .pdf file."""
     import matplotlib.pyplot as plt
     from matplotlib.backends.backend_pdf import PdfPages
-
-    from medbase.utils.tensorboard import scalars_to_dict
+    from mednet.libs.common.utils.tensorboard import scalars_to_dict
 
     data = scalars_to_dict(logdir)
 
diff --git a/src/mednet/scripts/utils.py b/src/mednet/libs/classification/scripts/utils.py
similarity index 98%
rename from src/mednet/scripts/utils.py
rename to src/mednet/libs/classification/scripts/utils.py
index 164f46b4831fd6b82e42d8507441d65ea7805614..c11cc8fbfc23dad1d7b76c0657d8bd2f69dd71ad 100644
--- a/src/mednet/scripts/utils.py
+++ b/src/mednet/libs/classification/scripts/utils.py
@@ -12,7 +12,7 @@ import shutil
 import lightning.pytorch
 import lightning.pytorch.callbacks
 import torch.nn
-from medbase.engine.device import SupportedPytorchDevice
+from mednet.libs.common.engine.device import SupportedPytorchDevice
 
 logger = logging.getLogger("mednet")
 
@@ -58,7 +58,7 @@ def device_properties(
         Static properties of the current machine.
     """
 
-    from medbase.utils.resources import (
+    from mednet.libs.common.utils.resources import (
         cpu_constants,
         cuda_constants,
         mps_constants,
diff --git a/src/mednet/models/__init__.py b/src/mednet/libs/classification/utils/__init__.py
similarity index 100%
rename from src/mednet/models/__init__.py
rename to src/mednet/libs/classification/utils/__init__.py
diff --git a/src/mednet/utils/gitlab.py b/src/mednet/libs/classification/utils/gitlab.py
similarity index 100%
rename from src/mednet/utils/gitlab.py
rename to src/mednet/libs/classification/utils/gitlab.py
diff --git a/src/mednet/utils/rc.py b/src/mednet/libs/classification/utils/rc.py
similarity index 100%
rename from src/mednet/utils/rc.py
rename to src/mednet/libs/classification/utils/rc.py
diff --git a/src/mednet/scripts/__init__.py b/src/mednet/libs/common/__init__.py
similarity index 100%
rename from src/mednet/scripts/__init__.py
rename to src/mednet/libs/common/__init__.py
diff --git a/src/medbase/data/__init__.py b/src/mednet/libs/common/data/__init__.py
similarity index 100%
rename from src/medbase/data/__init__.py
rename to src/mednet/libs/common/data/__init__.py
diff --git a/src/medbase/data/augmentations.py b/src/mednet/libs/common/data/augmentations.py
similarity index 99%
rename from src/medbase/data/augmentations.py
rename to src/mednet/libs/common/data/augmentations.py
index ff3f438e6f411d508a92643efdf1e0840b5a9391..cd186191291f2d6c8b4a89c21afb310499c81739 100644
--- a/src/medbase/data/augmentations.py
+++ b/src/mednet/libs/common/data/augmentations.py
@@ -22,7 +22,7 @@ import numpy.typing
 import torch
 from scipy.ndimage import gaussian_filter, map_coordinates
 
-logger = logging.getLogger("mednet.medbase")
+logger = logging.getLogger("mednet.libs.classification.common")
 
 
 def _elastic_deformation_on_image(
diff --git a/src/medbase/data/datamodule.py b/src/mednet/libs/common/data/datamodule.py
similarity index 99%
rename from src/medbase/data/datamodule.py
rename to src/mednet/libs/common/data/datamodule.py
index 1d6c14ebd084b583985bd3a2eb59791a4c2743dd..e6d0ca0e6dd38cbf6b4c1ada161294e57c7f2d02 100644
--- a/src/medbase/data/datamodule.py
+++ b/src/mednet/libs/common/data/datamodule.py
@@ -27,7 +27,7 @@ from .typing import (
     TransformSequence,
 )
 
-logger = logging.getLogger("mednet.medbase")
+logger = logging.getLogger("mednet.libs.classification.common")
 
 
 def _sample_size_bytes(s: Sample) -> int:
diff --git a/src/medbase/data/image_utils.py b/src/mednet/libs/common/data/image_utils.py
similarity index 100%
rename from src/medbase/data/image_utils.py
rename to src/mednet/libs/common/data/image_utils.py
diff --git a/src/medbase/data/split.py b/src/mednet/libs/common/data/split.py
similarity index 97%
rename from src/medbase/data/split.py
rename to src/mednet/libs/common/data/split.py
index 3b412d9673d45535d314bca32b825e173a9d0cfe..64c23fed4a8811ed788d2f4edb0ecab1c43b308d 100644
--- a/src/medbase/data/split.py
+++ b/src/mednet/libs/common/data/split.py
@@ -11,10 +11,9 @@ import pathlib
 import typing
 
 import torch
+from mednet.libs.common.data.typing import DatabaseSplit, RawDataLoader
 
-from medbase.data.typing import DatabaseSplit, RawDataLoader
-
-logger = logging.getLogger("mednet.medbase")
+logger = logging.getLogger("mednet.libs.classification.common")
 
 
 class JSONDatabaseSplit(DatabaseSplit):
diff --git a/src/medbase/data/typing.py b/src/mednet/libs/common/data/typing.py
similarity index 100%
rename from src/medbase/data/typing.py
rename to src/mednet/libs/common/data/typing.py
diff --git a/src/mednet/scripts/saliency/__init__.py b/src/mednet/libs/common/engine/__init__.py
similarity index 100%
rename from src/mednet/scripts/saliency/__init__.py
rename to src/mednet/libs/common/engine/__init__.py
diff --git a/src/medbase/engine/callbacks.py b/src/mednet/libs/common/engine/callbacks.py
similarity index 99%
rename from src/medbase/engine/callbacks.py
rename to src/mednet/libs/common/engine/callbacks.py
index bd4755eb221b43f9405307e6d4b6a928315a77c8..652f7fee5e2c949fb1361a247450ff783ade849a 100644
--- a/src/medbase/engine/callbacks.py
+++ b/src/mednet/libs/common/engine/callbacks.py
@@ -13,7 +13,7 @@ import torch
 
 from ..utils.resources import ResourceMonitor, aggregate
 
-logger = logging.getLogger("mednet.medbase")
+logger = logging.getLogger("mednet.libs.classification.common")
 
 
 class LoggingCallback(lightning.pytorch.Callback):
diff --git a/src/medbase/engine/device.py b/src/mednet/libs/common/engine/device.py
similarity index 98%
rename from src/medbase/engine/device.py
rename to src/mednet/libs/common/engine/device.py
index 851b053953ecc1b8f5c99e5fc4481aa8e91c4cce..efbbbd771b7d04b0b647e2ec36413037a4f2fe4d 100644
--- a/src/medbase/engine/device.py
+++ b/src/mednet/libs/common/engine/device.py
@@ -9,7 +9,7 @@ import typing
 import torch
 import torch.backends
 
-logger = logging.getLogger("mednet.medbase")
+logger = logging.getLogger("mednet.libs.classification.common")
 
 
 SupportedPytorchDevice: typing.TypeAlias = typing.Literal[
diff --git a/src/medbase/engine/loggers.py b/src/mednet/libs/common/engine/loggers.py
similarity index 100%
rename from src/medbase/engine/loggers.py
rename to src/mednet/libs/common/engine/loggers.py
diff --git a/src/medbase/engine/trainer.py b/src/mednet/libs/common/engine/trainer.py
similarity index 98%
rename from src/medbase/engine/trainer.py
rename to src/mednet/libs/common/engine/trainer.py
index 79b509fe51ec883eb3d64994eba64d029285578e..7d0e8b38cd0455e7d92830db0eb97ea3f983ae5c 100644
--- a/src/medbase/engine/trainer.py
+++ b/src/mednet/libs/common/engine/trainer.py
@@ -15,7 +15,7 @@ from ..utils.resources import ResourceMonitor
 from .callbacks import LoggingCallback
 from .device import DeviceManager
 
-logger = logging.getLogger("mednet.medbase")
+logger = logging.getLogger("mednet.libs.classification.common")
 
 
 def run(
diff --git a/src/mednet/utils/__init__.py b/src/mednet/libs/common/utils/__init__.py
similarity index 100%
rename from src/mednet/utils/__init__.py
rename to src/mednet/libs/common/utils/__init__.py
diff --git a/src/medbase/utils/checkpointer.py b/src/mednet/libs/common/utils/checkpointer.py
similarity index 98%
rename from src/medbase/utils/checkpointer.py
rename to src/mednet/libs/common/utils/checkpointer.py
index 44e61da870201b1483a92d214e7e5bcb1dc7b8ec..a063dbe038f2a0f79969dad50fca90ad641ac9ef 100644
--- a/src/medbase/utils/checkpointer.py
+++ b/src/mednet/libs/common/utils/checkpointer.py
@@ -7,7 +7,7 @@ import pathlib
 import re
 import typing
 
-logger = logging.getLogger("mednet.medbase")
+logger = logging.getLogger("mednet.libs.classification.common")
 
 
 CHECKPOINT_ALIASES = {
diff --git a/src/medbase/utils/resources.py b/src/mednet/libs/common/utils/resources.py
similarity index 99%
rename from src/medbase/utils/resources.py
rename to src/mednet/libs/common/utils/resources.py
index 645bf76a0c0429ba172025ca9ce304bb340129ae..ca99d2f71c94c485056eaaae84d2a0a023e90f3c 100644
--- a/src/medbase/utils/resources.py
+++ b/src/mednet/libs/common/utils/resources.py
@@ -17,8 +17,7 @@ import warnings
 
 import numpy
 import psutil
-
-from medbase.engine.device import SupportedPytorchDevice
+from mednet.libs.common.engine.device import SupportedPytorchDevice
 
 logger = logging.getLogger("mednet")
 
diff --git a/src/medbase/utils/summary.py b/src/mednet/libs/common/utils/summary.py
similarity index 90%
rename from src/medbase/utils/summary.py
rename to src/mednet/libs/common/utils/summary.py
index bff705e30b557a0314dfef929535671e3dad7f81..e559e565653a7fda8e3bbf6eefc0773c6754f2b2 100644
--- a/src/medbase/utils/summary.py
+++ b/src/mednet/libs/common/utils/summary.py
@@ -7,7 +7,6 @@
 from functools import reduce
 
 import torch
-
 from torch.nn.modules.module import _addindent
 
 
@@ -21,18 +20,18 @@ def _repr(model: torch.nn.Module) -> tuple[str, int]:
         extra_lines = extra_repr.split("\n")
     child_lines = []
     total_params = 0
-    for key, module in model._modules.items():
+    for key, module in model._modules.items():  # noqa: SLF001
         mod_str, num_params = _repr(module)
         mod_str = _addindent(mod_str, 2)
         child_lines.append("(" + key + "): " + mod_str)
         total_params += num_params
     lines = extra_lines + child_lines
 
-    for _, p in model._parameters.items():
+    for _, p in model._parameters.items():  # noqa: SLF001
         if hasattr(p, "dtype"):
             total_params += reduce(lambda x, y: x * y, p.shape)
 
-    main_str = model._get_name() + "("
+    main_str = model._get_name() + "("  # noqa: SLF001
     if lines:
         # simple one-liner info, which most builtin Modules will use
         if len(extra_lines) == 1 and not child_lines:
diff --git a/src/medbase/utils/tensorboard.py b/src/mednet/libs/common/utils/tensorboard.py
similarity index 100%
rename from src/medbase/utils/tensorboard.py
rename to src/mednet/libs/common/utils/tensorboard.py
diff --git a/src/mednet/scripts/cli.py b/src/mednet/scripts/cli.py
index 5fdec35ec1e583800f7f454620a9365be54cc918..322b8844ea9345b8ceca181f4aebf3b64b590da2 100644
--- a/src/mednet/scripts/cli.py
+++ b/src/mednet/scripts/cli.py
@@ -1,11 +1,6 @@
-# Copyright © 2022 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-import importlib
-
 import click
 from clapper.click import AliasedGroup
+from mednet.libs.classification.scripts.cli import classification
 
 
 @click.group(
@@ -17,58 +12,4 @@ def cli():
     pass
 
 
-cli.add_command(importlib.import_module("..info", package=__name__).info)
-cli.add_command(importlib.import_module("..config", package=__name__).config)
-cli.add_command(
-    importlib.import_module("..database", package=__name__).database,
-)
-cli.add_command(
-    importlib.import_module("..evaluate", package=__name__).evaluate,
-)
-cli.add_command(
-    importlib.import_module("..experiment", package=__name__).experiment,
-)
-cli.add_command(importlib.import_module("..predict", package=__name__).predict)
-cli.add_command(importlib.import_module("..train", package=__name__).train)
-cli.add_command(
-    importlib.import_module(
-        "..train_analysis",
-        package=__name__,
-    ).train_analysis,
-)
-
-
-@click.group(
-    cls=AliasedGroup,
-    context_settings=dict(help_option_names=["-?", "-h", "--help"]),
-)
-def saliency():
-    """Generate, evaluate and view saliency maps."""
-    pass
-
-
-cli.add_command(saliency)
-
-saliency.add_command(
-    importlib.import_module("..saliency.generate", package=__name__).generate,
-)
-saliency.add_command(
-    importlib.import_module(
-        "..saliency.completeness",
-        package=__name__,
-    ).completeness,
-)
-saliency.add_command(
-    importlib.import_module(
-        "..saliency.interpretability",
-        package=__name__,
-    ).interpretability,
-)
-saliency.add_command(
-    importlib.import_module("..saliency.evaluate", package=__name__).evaluate,
-)
-saliency.add_command(
-    importlib.import_module("..saliency.view", package=__name__).view,
-)
-
-cli.add_command(importlib.import_module("..upload", package=__name__).upload)
+cli.add_command(classification)
diff --git a/tests/conftest.py b/tests/conftest.py
index 89b055ec4de60cab6cacd3b4986aefd5fda91c1d..a024dbbc29345fde2110210804223f0b279d83fd 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -10,9 +10,8 @@ import numpy
 import numpy.typing
 import pytest
 import torch
-
-from medbase.data.split import JSONDatabaseSplit
-from medbase.data.typing import DatabaseSplit
+from mednet.libs.common.data.split import JSONDatabaseSplit
+from mednet.libs.common.data.typing import DatabaseSplit
 
 
 @pytest.fixture
@@ -47,7 +46,7 @@ def pytest_configure(config):
     config.addinivalue_line(
         "markers",
         "skip_if_rc_var_not_set(name): this mark skips the test if a certain "
-        "~/.config/mednet.toml variable is not set",
+        "~/.config/mednet.libs.classification.toml variable is not set",
     )
 
     config.addinivalue_line("markers", "slow: this mark indicates slow tests")
@@ -66,7 +65,7 @@ def pytest_runtest_setup(item):
         information.
     """
 
-    from mednet.utils.rc import load_rc
+    from mednet.libs.classification.utils.rc import load_rc
 
     rc = load_rc()
 
@@ -76,19 +75,19 @@ def pytest_runtest_setup(item):
         mark.args[0] for mark in item.iter_markers(name="skip_if_rc_var_not_set")
     ]
 
-    # checks all names mentioned are set in ~/.config/mednet.toml, otherwise,
+    # checks all names mentioned are set in ~/.config/mednet.libs.classification.toml, otherwise,
     # skip the test
     if rc_names:
         missing = [k for k in rc_names if rc.get(k) is None]
         if any(missing):
             pytest.skip(
                 f"Test skipped because {', '.join(missing)} is **not** "
-                f"set in ~/.config/mednet.toml",
+                f"set in ~/.config/mednet.libs.classification.toml",
             )
 
 
 def rc_variable_set(name):
-    from mednet.utils.rc import load_rc
+    from mednet.libs.classification.utils.rc import load_rc
 
     rc = load_rc()
     pytest.mark.skipif(
diff --git a/tests/test_cli.py b/tests/test_cli.py
index ab6abe57cc1417e79974d5f807d32bea9ab05e63..bb3c1ceddfa0c09c27b093eda499d702aea85564 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -61,45 +61,45 @@ def test_info():
 
 
 def test_config_help():
-    from mednet.scripts.config import config
+    from mednet.libs.classification.scripts.config import config
 
     _check_help(config)
 
 
 def test_config_list_help():
-    from mednet.scripts.config import list_
+    from mednet.libs.classification.scripts.config import list_
 
     _check_help(list_)
 
 
 def test_config_list():
-    from mednet.scripts.config import list_
+    from mednet.libs.classification.scripts.config import list_
 
     runner = CliRunner()
     result = runner.invoke(list_)
     _assert_exit_0(result)
-    assert "module: mednet.config.data" in result.output
-    assert "module: mednet.config.models" in result.output
+    assert "module: mednet.libs.classification.config.data" in result.output
+    assert "module: mednet.libs.classification.config.models" in result.output
 
 
 def test_config_list_v():
-    from mednet.scripts.config import list_
+    from mednet.libs.classification.scripts.config import list_
 
     result = CliRunner().invoke(list_, ["--verbose"])
     _assert_exit_0(result)
-    assert "module: mednet.config.data" in result.output
-    assert "module: mednet.config.models" in result.output
+    assert "module: mednet.libs.classification.config.data" in result.output
+    assert "module: mednet.libs.classification.config.models" in result.output
 
 
 def test_config_describe_help():
-    from mednet.scripts.config import describe
+    from mednet.libs.classification.scripts.config import describe
 
     _check_help(describe)
 
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 def test_config_describe_montgomery():
-    from mednet.scripts.config import describe
+    from mednet.libs.classification.scripts.config import describe
 
     runner = CliRunner()
     result = runner.invoke(describe, ["montgomery"])
@@ -108,19 +108,19 @@ def test_config_describe_montgomery():
 
 
 def test_database_help():
-    from mednet.scripts.database import database
+    from mednet.libs.classification.scripts.database import database
 
     _check_help(database)
 
 
 def test_datamodule_list_help():
-    from mednet.scripts.database import list_
+    from mednet.libs.classification.scripts.database import list_
 
     _check_help(list_)
 
 
 def test_datamodule_list():
-    from mednet.scripts.database import list_
+    from mednet.libs.classification.scripts.database import list_
 
     runner = CliRunner()
     result = runner.invoke(list_)
@@ -129,14 +129,14 @@ def test_datamodule_list():
 
 
 def test_datamodule_check_help():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     _check_help(check)
 
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["--verbose", "--limit=1", "montgomery"])
@@ -144,13 +144,13 @@ def test_database_check():
 
 
 def test_main_help():
-    from mednet.scripts.cli import cli
+    from mednet.libs.classification.scripts.cli import classification
 
-    _check_help(cli)
+    _check_help(classification)
 
 
 def test_train_help():
-    from mednet.scripts.train import train
+    from mednet.libs.classification.scripts.train import train
 
     _check_help(train)
 
@@ -160,37 +160,39 @@ def _str_counter(substr, s):
 
 
 def test_predict_help():
-    from mednet.scripts.predict import predict
+    from mednet.libs.classification.scripts.predict import predict
 
     _check_help(predict)
 
 
 def test_evaluate_help():
-    from mednet.scripts.evaluate import evaluate
+    from mednet.libs.classification.scripts.evaluate import evaluate
 
     _check_help(evaluate)
 
 
 def test_saliency_generate_help():
-    from mednet.scripts.saliency.generate import generate
+    from mednet.libs.classification.scripts.saliency.generate import generate
 
     _check_help(generate)
 
 
 def test_saliency_completeness_help():
-    from mednet.scripts.saliency.completeness import completeness
+    from mednet.libs.classification.scripts.saliency.completeness import (
+        completeness,
+    )
 
     _check_help(completeness)
 
 
 def test_saliency_view_help():
-    from mednet.scripts.saliency.view import view
+    from mednet.libs.classification.scripts.saliency.view import view
 
     _check_help(view)
 
 
 def test_saliency_evaluate_help():
-    from mednet.scripts.saliency.evaluate import evaluate
+    from mednet.libs.classification.scripts.saliency.evaluate import evaluate
 
     _check_help(evaluate)
 
@@ -204,11 +206,11 @@ def test_upload_help():
 @pytest.mark.slow
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 def test_train_pasa_montgomery(temporary_basedir):
-    from medbase.utils.checkpointer import (
+    from mednet.libs.classification.scripts.train import train
+    from mednet.libs.common.utils.checkpointer import (
         CHECKPOINT_EXTENSION,
         _get_checkpoint_from_alias,
     )
-    from mednet.scripts.train import train
 
     runner = CliRunner()
 
@@ -260,11 +262,11 @@ def test_train_pasa_montgomery(temporary_basedir):
 @pytest.mark.slow
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 def test_train_pasa_montgomery_from_checkpoint(temporary_basedir):
-    from medbase.utils.checkpointer import (
+    from mednet.libs.classification.scripts.train import train
+    from mednet.libs.common.utils.checkpointer import (
         CHECKPOINT_EXTENSION,
         _get_checkpoint_from_alias,
     )
-    from mednet.scripts.train import train
 
     runner = CliRunner()
 
@@ -338,11 +340,11 @@ def test_train_pasa_montgomery_from_checkpoint(temporary_basedir):
 @pytest.mark.slow
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 def test_predict_pasa_montgomery(temporary_basedir, datadir):
-    from medbase.utils.checkpointer import (
+    from mednet.libs.classification.scripts.predict import predict
+    from mednet.libs.common.utils.checkpointer import (
         CHECKPOINT_EXTENSION,
         _get_checkpoint_from_alias,
     )
-    from mednet.scripts.predict import predict
 
     runner = CliRunner()
 
@@ -392,7 +394,7 @@ def test_predict_pasa_montgomery(temporary_basedir, datadir):
 @pytest.mark.slow
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 def test_evaluate_pasa_montgomery(temporary_basedir):
-    from mednet.scripts.evaluate import evaluate
+    from mednet.libs.classification.scripts.evaluate import evaluate
 
     runner = CliRunner()
 
@@ -439,7 +441,7 @@ def test_evaluate_pasa_montgomery(temporary_basedir):
 @pytest.mark.slow
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 def test_experiment(temporary_basedir):
-    from mednet.scripts.experiment import experiment
+    from mednet.libs.classification.scripts.experiment import experiment
 
     runner = CliRunner()
 
diff --git a/tests/test_database_split.py b/tests/test_database_split.py
index 7ebe400a305e0e0e009822f65bb0e3034915a91b..e77c4cbf8c932f39f5a794b10a23778a1e48d837 100644
--- a/tests/test_database_split.py
+++ b/tests/test_database_split.py
@@ -3,7 +3,30 @@
 # SPDX-License-Identifier: GPL-3.0-or-later
 """Test code for datasets."""
 
+<<<<<<< HEAD
 from medbase.data.split import JSONDatabaseSplit
+=======
+from mednet.libs.common.data.split import CSVDatabaseSplit, JSONDatabaseSplit
+
+
+def test_csv_loading(datadir):
+    # tests if we can build a simple CSV loader for the Iris Flower dataset
+    database_split = CSVDatabaseSplit(datadir)
+
+    assert len(database_split["iris-train"]) == 75
+    for k in database_split["iris-train"]:
+        for f in range(4):
+            assert isinstance(k[f], str)  # csv only loads stringd
+        assert isinstance(k[4], str)
+
+    assert len(database_split["iris-test"]) == 75
+    for k in database_split["iris-test"]:
+        for f in range(4):
+            assert isinstance(k[f], str)  # csv only loads stringd
+        assert isinstance(k[4], str)
+        assert k[4] in ("Iris-setosa", "Iris-versicolor", "Iris-virginica")
+
+>>>>>>> b1ea1c0 ([mednet] Start reorganizing into monorepo)
 
 def test_json_loading(datadir):
     # tests if we can build a simple JSON loader for the Iris Flower dataset
diff --git a/tests/test_evaluator.py b/tests/test_evaluator.py
index 589d8507e309cf5debfbf37b1068b1339ab4cb14..f3291043a5cf4573debe6a8e0bfa74147fa694cc 100644
--- a/tests/test_evaluator.py
+++ b/tests/test_evaluator.py
@@ -7,7 +7,7 @@ import numpy
 
 
 def test_centered_maxf1():
-    from mednet.engine.evaluator import _get_centered_maxf1
+    from mednet.libs.classification.engine.evaluator import _get_centered_maxf1
 
     # Multiple max F1
     f1_scores = numpy.array([0.8, 0.9, 1.0, 1.0, 1.0, 0.3])
@@ -29,8 +29,8 @@ def test_centered_maxf1():
 
 
 def test_run_binary_1():
-    from mednet.engine.evaluator import run_binary
-    from mednet.models.typing import BinaryPrediction
+    from mednet.libs.classification.engine.evaluator import run_binary
+    from mednet.libs.classification.models.typing import BinaryPrediction
 
     predictions: list[BinaryPrediction] = [
         # (name, target, predicted-value)
@@ -86,8 +86,8 @@ def test_run_binary_1():
 
 
 def test_run_binary_2():
-    from mednet.engine.evaluator import run_binary
-    from mednet.models.typing import BinaryPrediction
+    from mednet.libs.classification.engine.evaluator import run_binary
+    from mednet.libs.classification.models.typing import BinaryPrediction
 
     predictions: list[BinaryPrediction] = [
         # (name, target, predicted-value)
diff --git a/tests/test_hivtb.py b/tests/test_hivtb.py
index 888571e41b58441f2cafc7f68b1026a8c9bece4b..cebf9f9ac82db1cc903ae445122bc31e0751b4c6 100644
--- a/tests/test_hivtb.py
+++ b/tests/test_hivtb.py
@@ -36,7 +36,7 @@ def test_protocol_consistency(
     split: str,
     lenghts: dict[str, int],
 ):
-    from mednet.data.split import make_split
+    from mednet.libs.common.data.split import make_split
 
     database_checkers.check_split(
         make_split("mednet.config.data.hivtb", f"{split}.json"),
@@ -48,7 +48,7 @@ def test_protocol_consistency(
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.hivtb")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["--limit=10", "hivtb-f0"])
@@ -84,7 +84,7 @@ def test_database_check():
 def test_loading(database_checkers, name: str, dataset: str):
     datamodule = importlib.import_module(
         f".{name}",
-        "mednet.config.data.hivtb",
+        "mednet.libs.classification.config.data.hivtb",
     ).datamodule
 
     datamodule.model_transforms = []  # should be done before setup()
@@ -115,7 +115,7 @@ def test_loaded_image_quality(database_checkers, datadir):
 
     datamodule = importlib.import_module(
         ".fold_0",
-        "mednet.config.data.hivtb",
+        "mednet.libs.classification.config.data.hivtb",
     ).datamodule
 
     datamodule.model_transforms = []
diff --git a/tests/test_image_utils.py b/tests/test_image_utils.py
index d81501ad6d71106dc18eab51b7068f479a834e8c..6ba40ef13e3afdd3866b9809a525a1e3af81f372 100644
--- a/tests/test_image_utils.py
+++ b/tests/test_image_utils.py
@@ -5,8 +5,7 @@
 
 import numpy
 import PIL.Image
-
-from medbase.data.image_utils import remove_black_borders
+from mednet.libs.common.data.image_utils import remove_black_borders
 
 
 def test_remove_black_borders(datadir):
diff --git a/tests/test_indian.py b/tests/test_indian.py
index 9581d90376e9e22717fcff97775470d83294095e..e5ca853dff7b1fea893b0eebc6bd5916b1b41c8b 100644
--- a/tests/test_indian.py
+++ b/tests/test_indian.py
@@ -40,7 +40,7 @@ def test_protocol_consistency(
     split: str,
     lenghts: dict[str, int],
 ):
-    from mednet.data.split import make_split
+    from mednet.libs.common.data.split import make_split
 
     database_checkers.check_split(
         make_split("mednet.config.data.indian", f"{split}.json"),
@@ -52,7 +52,7 @@ def test_protocol_consistency(
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.indian")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["indian"])
@@ -89,7 +89,7 @@ def test_database_check():
 def test_loading(database_checkers, name: str, dataset: str):
     datamodule = importlib.import_module(
         f".{name}",
-        "mednet.config.data.indian",
+        "mednet.libs.classification.config.data.indian",
     ).datamodule
 
     datamodule.model_transforms = []  # should be done before setup()
@@ -120,7 +120,7 @@ def test_loaded_image_quality(database_checkers, datadir):
 
     datamodule = importlib.import_module(
         ".default",
-        "mednet.config.data.indian",
+        "mednet.libs.classification.config.data.indian",
     ).datamodule
 
     datamodule.model_transforms = []
diff --git a/tests/test_montgomery.py b/tests/test_montgomery.py
index fddeaefaf75265d7ba31048b72704f04f28dd19e..102b232af6f7dbd1435a2e69991b7c21abb5e8d7 100644
--- a/tests/test_montgomery.py
+++ b/tests/test_montgomery.py
@@ -38,7 +38,7 @@ def test_protocol_consistency(
     split: str,
     lenghts: dict[str, int],
 ):
-    from mednet.data.split import make_split
+    from mednet.libs.common.data.split import make_split
 
     database_checkers.check_split(
         make_split("mednet.config.data.montgomery", f"{split}.json"),
@@ -50,7 +50,7 @@ def test_protocol_consistency(
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["montgomery"])
@@ -87,7 +87,7 @@ def test_database_check():
 def test_loading(database_checkers, name: str, dataset: str):
     datamodule = importlib.import_module(
         f".{name}",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).datamodule
 
     datamodule.model_transforms = []  # should be done before setup()
@@ -114,7 +114,12 @@ def test_loading(database_checkers, name: str, dataset: str):
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 def test_raw_transforms_image_quality(database_checkers, datadir: pathlib.Path):
     datamodule = importlib.import_module(
+<<<<<<< HEAD
         ".default", "mednet.config.data.montgomery"
+=======
+        ".default",
+        "mednet.libs.classification.config.data.montgomery",
+>>>>>>> b1ea1c0 ([mednet] Start reorganizing into monorepo)
     ).datamodule
 
     datamodule.model_transforms = []
@@ -150,12 +155,12 @@ def test_model_transforms_image_quality(
 ):
     datamodule = importlib.import_module(
         ".default",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).datamodule
 
     model = importlib.import_module(
         f".{model_name}",
-        "mednet.config.models",
+        "mednet.libs.classification.config.models",
     ).model
 
     datamodule.model_transforms = model.model_transforms
diff --git a/tests/test_montgomery_shenzhen.py b/tests/test_montgomery_shenzhen.py
index 58f3313c9121a2c796d2641d05b870fdf0567d5a..7d94a87a6b7deb7888b55d1953503e123d6a0f36 100644
--- a/tests/test_montgomery_shenzhen.py
+++ b/tests/test_montgomery_shenzhen.py
@@ -28,27 +28,27 @@ from click.testing import CliRunner
 def test_split_consistency(name: str):
     montgomery = importlib.import_module(
         f".{name}",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).datamodule
 
     shenzhen = importlib.import_module(
         f".{name}",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).datamodule
 
     combined = importlib.import_module(
         f".{name}",
-        "mednet.config.data.montgomery_shenzhen",
+        "mednet.libs.classification.config.data.montgomery_shenzhen",
     ).datamodule
 
     montgomery_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).RawDataLoader
 
     shenzhen_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).RawDataLoader
 
     for split in ("train", "validation", "test"):
@@ -65,7 +65,7 @@ def test_split_consistency(name: str):
 @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
 @pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["montgomery-shenzhen"])
diff --git a/tests/test_montgomery_shenzhen_indian.py b/tests/test_montgomery_shenzhen_indian.py
index 47de3afd567ce93320d8c107493978e73babc5ac..3a95cd7b1968330e668be743ccc1effa22f5e72a 100644
--- a/tests/test_montgomery_shenzhen_indian.py
+++ b/tests/test_montgomery_shenzhen_indian.py
@@ -28,37 +28,37 @@ from click.testing import CliRunner
 def test_split_consistency(name: str):
     montgomery = importlib.import_module(
         f".{name}",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).datamodule
 
     shenzhen = importlib.import_module(
         f".{name}",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).datamodule
 
     indian = importlib.import_module(
         f".{name}",
-        "mednet.config.data.indian",
+        "mednet.libs.classification.config.data.indian",
     ).datamodule
 
     combined = importlib.import_module(
         f".{name}",
-        "mednet.config.data.montgomery_shenzhen_indian",
+        "mednet.libs.classification.config.data.montgomery_shenzhen_indian",
     ).datamodule
 
     montgomery_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).RawDataLoader
 
     shenzhen_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).RawDataLoader
 
     indian_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.indian",
+        "mednet.libs.classification.config.data.indian",
     ).RawDataLoader
 
     for split in ("train", "validation", "test"):
@@ -80,7 +80,7 @@ def test_split_consistency(name: str):
 @pytest.mark.skip_if_rc_var_not_set("datadir.indian")
 @pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["montgomery-shenzhen-indian"])
diff --git a/tests/test_montgomery_shenzhen_indian_padchest.py b/tests/test_montgomery_shenzhen_indian_padchest.py
index e44b5b6082e1fbf05ee66b577a57388017b82a3b..bf7e913f2a7260d85e4ecaa6b99248f6d226aad6 100644
--- a/tests/test_montgomery_shenzhen_indian_padchest.py
+++ b/tests/test_montgomery_shenzhen_indian_padchest.py
@@ -18,47 +18,47 @@ from click.testing import CliRunner
 def test_split_consistency(name: str, padchest_name: str):
     montgomery = importlib.import_module(
         f".{name}",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).datamodule
 
     shenzhen = importlib.import_module(
         f".{name}",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).datamodule
 
     indian = importlib.import_module(
         f".{name}",
-        "mednet.config.data.indian",
+        "mednet.libs.classification.config.data.indian",
     ).datamodule
 
     padchest = importlib.import_module(
         f".{padchest_name}",
-        "mednet.config.data.padchest",
+        "mednet.libs.classification.config.data.padchest",
     ).datamodule
 
     combined = importlib.import_module(
         f".{name}",
-        "mednet.config.data.montgomery_shenzhen_indian_padchest",
+        "mednet.libs.classification.config.data.montgomery_shenzhen_indian_padchest",
     ).datamodule
 
     montgomery_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).RawDataLoader
 
     shenzhen_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).RawDataLoader
 
     indian_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.indian",
+        "mednet.libs.classification.config.data.indian",
     ).RawDataLoader
 
     padchest_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.padchest",
+        "mednet.libs.classification.config.data.padchest",
     ).RawDataLoader
 
     for split in ("train", "validation", "test"):
@@ -87,7 +87,7 @@ def test_split_consistency(name: str, padchest_name: str):
 @pytest.mark.skip_if_rc_var_not_set("datadir.indian")
 @pytest.mark.skip_if_rc_var_not_set("datadir.padchest")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["montgomery-shenzhen-indian-padchest"])
diff --git a/tests/test_montgomery_shenzhen_indian_tbx11k.py b/tests/test_montgomery_shenzhen_indian_tbx11k.py
index 491095a6389fd1b592a051b1582dc53a5e46b133..644d8073ae576d15f50e8fc3c936d1b6251ab5a7 100644
--- a/tests/test_montgomery_shenzhen_indian_tbx11k.py
+++ b/tests/test_montgomery_shenzhen_indian_tbx11k.py
@@ -39,47 +39,47 @@ from click.testing import CliRunner
 def test_split_consistency(name: str, tbx11k_name: str):
     montgomery = importlib.import_module(
         f".{name}",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).datamodule
 
     shenzhen = importlib.import_module(
         f".{name}",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).datamodule
 
     indian = importlib.import_module(
         f".{name}",
-        "mednet.config.data.indian",
+        "mednet.libs.classification.config.data.indian",
     ).datamodule
 
     tbx11k = importlib.import_module(
         f".{tbx11k_name}",
-        "mednet.config.data.tbx11k",
+        "mednet.libs.classification.config.data.tbx11k",
     ).datamodule
 
     combined = importlib.import_module(
         f".{tbx11k_name}",
-        "mednet.config.data.montgomery_shenzhen_indian_tbx11k",
+        "mednet.libs.classification.config.data.montgomery_shenzhen_indian_tbx11k",
     ).datamodule
 
     montgomery_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.montgomery",
+        "mednet.libs.classification.config.data.montgomery",
     ).RawDataLoader
 
     shenzhen_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).RawDataLoader
 
     indian_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.indian",
+        "mednet.libs.classification.config.data.indian",
     ).RawDataLoader
 
     tbx11k_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.tbx11k",
+        "mednet.libs.classification.config.data.tbx11k",
     ).RawDataLoader
 
     for split in ("train", "validation", "test"):
@@ -136,7 +136,7 @@ def test_batch_uniformity(tbx11k_name: str, dataset: str):
 @pytest.mark.skip_if_rc_var_not_set("datadir.indian")
 @pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["montgomery-shenzhen-indian-tbx11k-v1"])
diff --git a/tests/test_nih_cxr14.py b/tests/test_nih_cxr14.py
index 0d2517be7b7c4069572b5181f3c30b22c5b06943..4c8c8f389bd4d428d5baf2be54f588dc6403f050 100644
--- a/tests/test_nih_cxr14.py
+++ b/tests/test_nih_cxr14.py
@@ -28,7 +28,7 @@ def test_protocol_consistency(
     split: str,
     lenghts: dict[str, int],
 ):
-    from mednet.data.split import make_split
+    from mednet.libs.common.data.split import make_split
 
     database_checkers.check_split(
         make_split("mednet.config.data.nih_cxr14", f"{split}"),
@@ -49,7 +49,7 @@ testdata = [
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.nih_cxr14")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["--limit=10", "nih-cxr14"])
@@ -63,7 +63,7 @@ def test_database_check():
 def test_loading(database_checkers, name: str, dataset: str, num_labels: int):
     datamodule = importlib.import_module(
         f".{name}",
-        "mednet.config.data.nih_cxr14",
+        "mednet.libs.classification.config.data.nih_cxr14",
     ).datamodule
 
     datamodule.model_transforms = []  # should be done before setup()
@@ -95,7 +95,7 @@ def test_loaded_image_quality(database_checkers, datadir):
 
     datamodule = importlib.import_module(
         ".default",
-        "mednet.config.data.nih_cxr14",
+        "mednet.libs.classification.config.data.nih_cxr14",
     ).datamodule
 
     datamodule.model_transforms = []
diff --git a/tests/test_nih_cxr14_padchest.py b/tests/test_nih_cxr14_padchest.py
index a36655bbf451c649a25591d3665d4403d63675b2..bc5cde53a550dd5f2dcd24abad0c80b2b0c95b63 100644
--- a/tests/test_nih_cxr14_padchest.py
+++ b/tests/test_nih_cxr14_padchest.py
@@ -18,27 +18,27 @@ from click.testing import CliRunner
 def test_split_consistency(name: str, padchest_name: str, combined_name: str):
     nih_cxr14 = importlib.import_module(
         f".{name}",
-        "mednet.config.data.nih_cxr14",
+        "mednet.libs.classification.config.data.nih_cxr14",
     ).datamodule
 
     padchest = importlib.import_module(
         f".{padchest_name}",
-        "mednet.config.data.padchest",
+        "mednet.libs.classification.config.data.padchest",
     ).datamodule
 
     combined = importlib.import_module(
         f".{combined_name}",
-        "mednet.config.data.nih_cxr14_padchest",
+        "mednet.libs.classification.config.data.nih_cxr14_padchest",
     ).datamodule
 
     cxr14_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.nih_cxr14",
+        "mednet.libs.classification.config.data.nih_cxr14",
     ).RawDataLoader
 
     padchest_loader = importlib.import_module(
         ".datamodule",
-        "mednet.config.data.padchest",
+        "mednet.libs.classification.config.data.padchest",
     ).RawDataLoader
 
     for split in ("train", "validation", "test"):
@@ -56,7 +56,7 @@ def test_split_consistency(name: str, padchest_name: str, combined_name: str):
 @pytest.mark.skip_if_rc_var_not_set("datadir.nih_cxr14")
 @pytest.mark.skip_if_rc_var_not_set("datadir.padchest")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["--limit=10", "nih-cxr14-padchest"])
diff --git a/tests/test_padchest.py b/tests/test_padchest.py
index 403a7bd4011868ce0db2510312a42c31d97b1b32..abbc51b3714ff3bad1d83981b8f8eda90b09fa35 100644
--- a/tests/test_padchest.py
+++ b/tests/test_padchest.py
@@ -33,7 +33,7 @@ def test_protocol_consistency(
     split: str,
     lenghts: dict[str, int],
 ):
-    from mednet.data.split import make_split
+    from mednet.libs.common.data.split import make_split
 
     database_checkers.check_split(
         make_split("mednet.config.data.padchest", split),
@@ -45,7 +45,7 @@ def test_protocol_consistency(
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.padchest")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["--limit=10", "padchest-idiap"])
@@ -68,7 +68,7 @@ testdata = [
 def test_loading(database_checkers, name: str, dataset: str, num_labels: int):
     datamodule = importlib.import_module(
         f".{name}",
-        "mednet.config.data.padchest",
+        "mednet.libs.classification.config.data.padchest",
     ).datamodule
 
     datamodule.model_transforms = []  # should be done before setup()
@@ -100,7 +100,7 @@ def test_loaded_image_quality(database_checkers, datadir):
 
     datamodule = importlib.import_module(
         ".idiap",
-        "mednet.config.data.padchest",
+        "mednet.libs.classification.config.data.padchest",
     ).datamodule
 
     datamodule.model_transforms = []
diff --git a/tests/test_saliencymap_interpretability.py b/tests/test_saliencymap_interpretability.py
index f2cc19d71898ed044c7c77ea8b609892bbebb738..c91115d4e581b5b8c8366f795a7a7338af613218 100644
--- a/tests/test_saliencymap_interpretability.py
+++ b/tests/test_saliencymap_interpretability.py
@@ -2,8 +2,11 @@
 #
 # SPDX-License-Identifier: GPL-3.0-or-later
 import numpy as np
-from mednet.config.data.tbx11k.datamodule import BoundingBox, BoundingBoxes
-from mednet.engine.saliency.interpretability import (
+from mednet.libs.classification.config.data.tbx11k.datamodule import (
+    BoundingBox,
+    BoundingBoxes,
+)
+from mednet.libs.classification.engine.saliency.interpretability import (
     _compute_avg_saliency_focus,
     _compute_binary_mask,
     _compute_max_iou_and_ioda,
diff --git a/tests/test_shenzhen.py b/tests/test_shenzhen.py
index 87a47cf0bf6358d0fd4e7eadeb1ace6d3695a121..ef77906ac792f40d3f8b19642182eb42f0776163 100644
--- a/tests/test_shenzhen.py
+++ b/tests/test_shenzhen.py
@@ -37,7 +37,7 @@ def test_protocol_consistency(
     split: str,
     lenghts: dict[str, int],
 ):
-    from mednet.data.split import make_split
+    from mednet.libs.common.data.split import make_split
 
     database_checkers.check_split(
         make_split("mednet.config.data.shenzhen", f"{split}.json"),
@@ -49,7 +49,7 @@ def test_protocol_consistency(
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["shenzhen"])
@@ -86,7 +86,7 @@ def test_database_check():
 def test_loading(database_checkers, name: str, dataset: str):
     datamodule = importlib.import_module(
         f".{name}",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).datamodule
 
     datamodule.model_transforms = []  # should be done before setup()
@@ -117,7 +117,7 @@ def test_loaded_image_quality(database_checkers, datadir):
 
     datamodule = importlib.import_module(
         ".default",
-        "mednet.config.data.shenzhen",
+        "mednet.libs.classification.config.data.shenzhen",
     ).datamodule
 
     datamodule.model_transforms = []
diff --git a/tests/test_summary.py b/tests/test_summary.py
index 4e420eb29ad332655064ab177d91c985bee6d96a..c9d86ffcc4da01d3f49e7183463ccf9d41b2edb7 100644
--- a/tests/test_summary.py
+++ b/tests/test_summary.py
@@ -4,9 +4,8 @@
 
 import unittest
 
-import mednet.config.models.pasa as pasa_config
-
-from medbase.utils.summary import summary
+import mednet.libs.classification.config.models.pasa as pasa_config
+from mednet.libs.common.utils.summary import summary
 
 
 class Tester(unittest.TestCase):
diff --git a/tests/test_tbpoc.py b/tests/test_tbpoc.py
index a3a337cf29be18a3ce6372ca6bdf1ec471449d6f..4447c80907d4b32b9f6363a140eccd0c2e8df356 100644
--- a/tests/test_tbpoc.py
+++ b/tests/test_tbpoc.py
@@ -36,7 +36,7 @@ def test_protocol_consistency(
     split: str,
     lenghts: dict[str, int],
 ):
-    from mednet.data.split import make_split
+    from mednet.libs.common.data.split import make_split
 
     database_checkers.check_split(
         make_split("mednet.config.data.tbpoc", f"{split}.json"),
@@ -51,7 +51,7 @@ def test_protocol_consistency(
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.tbpoc")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["tbpoc-f0"])
@@ -87,7 +87,7 @@ def test_database_check():
 def test_loading(database_checkers, name: str, dataset: str):
     datamodule = importlib.import_module(
         f".{name}",
-        "mednet.config.data.tbpoc",
+        "mednet.libs.classification.config.data.tbpoc",
     ).datamodule
 
     datamodule.model_transforms = []  # should be done before setup()
@@ -121,7 +121,7 @@ def test_loaded_image_quality(database_checkers, datadir):
 
     datamodule = importlib.import_module(
         ".fold_0",
-        "mednet.config.data.tbpoc",
+        "mednet.libs.classification.config.data.tbpoc",
     ).datamodule
 
     datamodule.model_transforms = []
diff --git a/tests/test_tbx11k.py b/tests/test_tbx11k.py
index 65b8dbac698dce6af2d2e3162bd89cdb155502dc..19be118c898a4f04f52687ddcd4b448fe7c5191c 100644
--- a/tests/test_tbx11k.py
+++ b/tests/test_tbx11k.py
@@ -139,7 +139,7 @@ def test_protocol_consistency(
     lenghts: dict[str, int],
     prefixes: typing.Sequence[str],
 ):
-    from mednet.data.split import make_split
+    from mednet.libs.common.data.split import make_split
 
     database_checkers.check_split(
         make_split("mednet.config.data.tbx11k", f"{split}.json"),
@@ -234,7 +234,7 @@ def check_loaded_batch(
 
 @pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k")
 def test_database_check():
-    from mednet.scripts.database import check
+    from mednet.libs.classification.scripts.database import check
 
     runner = CliRunner()
     result = runner.invoke(check, ["--limit=10", "tbx11k-v1-f0"])
@@ -287,7 +287,7 @@ def test_database_check():
 def test_loading(name: str, dataset: str, prefixes: typing.Sequence[str]):
     datamodule = importlib.import_module(
         f".{name}",
-        "mednet.config.data.tbx11k",
+        "mednet.libs.classification.config.data.tbx11k",
     ).datamodule
 
     datamodule.model_transforms = []  # should be done before setup()
@@ -326,7 +326,7 @@ def test_loaded_image_quality(database_checkers, datadir, split):
 
     datamodule = importlib.import_module(
         f".{split}",
-        "mednet.config.data.tbx11k",
+        "mednet.libs.classification.config.data.tbx11k",
     ).datamodule
 
     datamodule.model_transforms = []
diff --git a/tests/test_transforms.py b/tests/test_transforms.py
index 85f599582814b1a1119b4a5f6580b3544094bffb..6b80387669297305a401dec0ece7e67f5c2d0566 100644
--- a/tests/test_transforms.py
+++ b/tests/test_transforms.py
@@ -5,9 +5,8 @@
 
 import numpy
 import PIL.Image
-import torchvision.transforms.functional as F # noqa: N812
-
-from medbase.data.augmentations import ElasticDeformation
+import torchvision.transforms.functional as F  # noqa: N812
+from mednet.libs.common.data.augmentations import ElasticDeformation
 
 
 def test_elastic_deformation(datadir):