diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6aadb08bbb21c892519bfd4c93102963d44643d9..4c39f4b28a9fa99592442f6250e50a0ca77308fb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,57 +1,161 @@
+cmake_minimum_required(VERSION 3.11)
 
-if (BUILD_CPU_ALONE)
-    project(Aidge_CPU)
-    cmake_minimum_required(VERSION 3.11)
-    add_compile_options(-Wall -Wextra -fPIC)
+set(project aidge)
+set(version 2.0.0)
+project(${project})
+enable_testing()
+# TODO : use a file to store module_name ?
+set(module_name aidge_cpu) # This will be python module name 
+set(component cpu) # Target name must be different than pybind target (prefix module name with _ ? _${module_name} ?
 
-    # Need the Core library to compile the CPU library
-    set(BUILD_CORE_ALONE ON)
-    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../_Core _Core)
-endif()
+##############################################
+# Import utils CMakeLists
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
+include(PybindModuleCreation)
 
-if (PYBIND)
-    add_definitions(-DPYBIND)
-    Include(FetchContent)
+##############################################
+# Define options
+option(PYBIND "python binding" ON)
+option(WERROR "Warning as error" OFF)
 
-    FetchContent_Declare(
-    PyBind11
-    GIT_REPOSITORY https://github.com/pybind/pybind11.git
-    GIT_TAG        v2.10.4 # or a later release
-    )
+##############################################
+# Find system dependencies
+generate_python_binding(${module_name}) # TODO : cannot be component because of target name
 
-    FetchContent_MakeAvailable(PyBind11)
-    file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
-    pybind11_add_module(aidge_cpu MODULE ${pybind_src_files} "NO_EXTRAS")
-    target_include_directories(aidge_cpu PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
-    target_link_libraries(aidge_cpu PUBLIC cpu)
-    # generate_python_binding(aidge_cpu cpu)
-endif()
+##############################################
+# Create target and set properties
 
-add_library(cpu STATIC)
+file(GLOB_RECURSE src_files "src/*.cpp")
+file(GLOB_RECURSE inc_files "include/*.hpp")
 
-# Add include directories 
-target_include_directories(cpu PUBLIC "include")
+add_library(${component} ${src_files} ${inc_files})
 
-# Containers module
-file(GLOB_RECURSE src_files "src/*.cpp")
-target_sources(cpu PRIVATE ${src_files})
 
-target_link_libraries(cpu PUBLIC core)
+# namespaced alias
+add_library(${project}::${component} ALIAS ${component})
+
+#Set target properties
+set_property(TARGET ${component} PROPERTY POSITION_INDEPENDENT_CODE ON)
+
 
-set_property(TARGET cpu PROPERTY POSITION_INDEPENDENT_CODE ON)
+target_include_directories(${component}
+    PUBLIC
+        $<INSTALL_INTERFACE:include>
+        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+    PRIVATE
+        ${CMAKE_CURRENT_SOURCE_DIR}/src
+)
+
+message(STATUS "INSTALL INCLUDE DIR : ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
+message(STATUS "INSTALL LIB DIR : ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+
+# TODO : is it good ? Get headers already installed
+# Need to get shared objects !
+target_include_directories(${component}
+    PUBLIC
+        $<BUILD_INTERFACE:${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}> 
+    PRIVATE
+        ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
+)
 
 if (PYBIND)
-    target_include_directories(cpu PUBLIC $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>)
-    target_link_libraries(cpu PRIVATE ${PYTHON_LIBRARIES})
-endif()
+    message(STATUS "PYTHON INCLUDE DIR : ${PYTHON_INCLUDE_DIRS}")
+    message(STATUS "PYTHON PYTHON_LIBRARY : ${PYTHON_LIBRARIES}")
 
-if (NOT BUILD_CPU_ALONE)
-    # Activate compile time reducer for aidge_core
-    set_target_properties(cpu PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
-    # set_target_properties(n2d2_cpu_lib PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "include/utils/Precompiled.hpp")
-    cotire(cpu)
+    target_include_directories(${component}
+        PUBLIC
+            $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>
+    )
+    target_link_libraries(${component}
+        PRIVATE
+            ${PYTHON_LIBRARIES}
+    )
 endif()
+target_compile_features(${component} PRIVATE cxx_std_14)
 
-if (TESTS)
-    add_subdirectory(tests)
+if(WERROR)
+    target_compile_options(${component} PRIVATE
+    $<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:
+    -Wall -Wextra -Wold-style-cast -Winline -pedantic -Werror=narrowing -Wshadow -Werror>)
+    target_compile_options(${component} PRIVATE
+    $<$<CXX_COMPILER_ID:MSVC>:
+    /W4>)
+else()
+    target_compile_options(${component} PRIVATE
+        $<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:
+        -Wall -Wextra -Wold-style-cast -Winline -pedantic -Werror=narrowing -Wshadow -Wpedantic>)
+        target_compile_options(${component} PRIVATE
+        $<$<CXX_COMPILER_ID:MSVC>:
+        /W4>)
 endif()
+
+##############################################
+# Installation instructions
+
+include(GNUInstallDirs)
+set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${project})
+
+install(TARGETS ${component} EXPORT ${component}-targets
+  COMPONENT ${component}
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+)
+
+
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+#Export the targets to a script
+install(EXPORT ${component}-targets
+  FILE "${project}-${component}-targets.cmake"
+  NAMESPACE ${project}::
+  DESTINATION ${INSTALL_CONFIGDIR}
+  COMPONENT ${component}
+)
+
+#Create a ConfigVersion.cmake file
+include(CMakePackageConfigHelpers)
+write_basic_package_version_file(
+    "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-config-version.cmake"
+    VERSION ${version}
+    COMPATIBILITY AnyNewerVersion
+)
+
+configure_package_config_file("${component}-config.cmake.in"
+    "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-config.cmake"
+    INSTALL_DESTINATION ${INSTALL_CONFIGDIR}
+)
+
+#Install the config, configversion and custom find modules
+install(FILES
+    "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-config.cmake"
+    "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-config-version.cmake"
+    DESTINATION ${INSTALL_CONFIGDIR}
+    COMPONENT ${component}
+)
+
+##############################################
+## Exporting from the build tree
+export(EXPORT ${component}-targets
+    FILE "${CMAKE_CURRENT_BINARY_DIR}/${project}-${component}-targets.cmake"
+    NAMESPACE ${project}::)
+
+
+##############################################
+## Add test
+add_subdirectory(unit_tests)
+
+include(CMakePackageConfigHelpers)
+
+write_basic_package_version_file(
+  "${CMAKE_BINARY_DIR}/${project}-config-version.cmake"
+  VERSION ${version}
+  COMPATIBILITY AnyNewerVersion
+)
+
+
+# install(
+#   FILES
+#     "${CMAKE_BINARY_DIR}/${project}-config.cmake"
+#   DESTINATION lib/cmake/${project}
+# )
diff --git a/OLD_CMakeLists.txt b/OLD_CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6aadb08bbb21c892519bfd4c93102963d44643d9
--- /dev/null
+++ b/OLD_CMakeLists.txt
@@ -0,0 +1,57 @@
+
+if (BUILD_CPU_ALONE)
+    project(Aidge_CPU)
+    cmake_minimum_required(VERSION 3.11)
+    add_compile_options(-Wall -Wextra -fPIC)
+
+    # Need the Core library to compile the CPU library
+    set(BUILD_CORE_ALONE ON)
+    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../_Core _Core)
+endif()
+
+if (PYBIND)
+    add_definitions(-DPYBIND)
+    Include(FetchContent)
+
+    FetchContent_Declare(
+    PyBind11
+    GIT_REPOSITORY https://github.com/pybind/pybind11.git
+    GIT_TAG        v2.10.4 # or a later release
+    )
+
+    FetchContent_MakeAvailable(PyBind11)
+    file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
+    pybind11_add_module(aidge_cpu MODULE ${pybind_src_files} "NO_EXTRAS")
+    target_include_directories(aidge_cpu PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
+    target_link_libraries(aidge_cpu PUBLIC cpu)
+    # generate_python_binding(aidge_cpu cpu)
+endif()
+
+add_library(cpu STATIC)
+
+# Add include directories 
+target_include_directories(cpu PUBLIC "include")
+
+# Containers module
+file(GLOB_RECURSE src_files "src/*.cpp")
+target_sources(cpu PRIVATE ${src_files})
+
+target_link_libraries(cpu PUBLIC core)
+
+set_property(TARGET cpu PROPERTY POSITION_INDEPENDENT_CODE ON)
+
+if (PYBIND)
+    target_include_directories(cpu PUBLIC $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>)
+    target_link_libraries(cpu PRIVATE ${PYTHON_LIBRARIES})
+endif()
+
+if (NOT BUILD_CPU_ALONE)
+    # Activate compile time reducer for aidge_core
+    set_target_properties(cpu PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
+    # set_target_properties(n2d2_cpu_lib PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "include/utils/Precompiled.hpp")
+    cotire(cpu)
+endif()
+
+if (TESTS)
+    add_subdirectory(tests)
+endif()
diff --git a/cmake/PybindModuleCreation.cmake b/cmake/PybindModuleCreation.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..6ca1aeffec5f07a3b50567f2033af94a714b32f4
--- /dev/null
+++ b/cmake/PybindModuleCreation.cmake
@@ -0,0 +1,19 @@
+function(generate_python_binding name) 
+    if (PYBIND)
+        add_definitions(-DPYBIND)
+        Include(FetchContent)
+
+        FetchContent_Declare(
+        PyBind11
+        GIT_REPOSITORY https://github.com/pybind/pybind11.git
+        GIT_TAG        v2.10.4 # or a later release
+        )
+
+        FetchContent_MakeAvailable(PyBind11)
+        message(STATUS "Creating binding for module ${name}")
+        file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
+        pybind11_add_module(${name} MODULE ${pybind_src_files})
+        target_include_directories(${name} PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
+        target_link_libraries(${name} PUBLIC ${component})
+    endif()
+endfunction()
diff --git a/cpu-config.cmake.in b/cpu-config.cmake.in
new file mode 100644
index 0000000000000000000000000000000000000000..5d850786b1d1894a8eb35bf9d86e70fc7687947a
--- /dev/null
+++ b/cpu-config.cmake.in
@@ -0,0 +1,3 @@
+include(${CMAKE_CURRENT_LIST_DIR}/aidge-cpu-config-version.cmake)
+
+include(${CMAKE_CURRENT_LIST_DIR}/aidge-cpu-targets.cmake)
diff --git a/include/data/TensorImpl.hpp b/include/aidge/data/TensorImpl.hpp
similarity index 91%
rename from include/data/TensorImpl.hpp
rename to include/aidge/data/TensorImpl.hpp
index 7221855a9bffc19fcc5c98da2b552591f6c15e65..002bad3ca2680b0ecb4d2125aa30e0f066af68e0 100644
--- a/include/data/TensorImpl.hpp
+++ b/include/aidge/data/TensorImpl.hpp
@@ -1,10 +1,10 @@
 #ifndef __AIDGE_CPU_DATA_TENSORIMPL_H__
 #define __AIDGE_CPU_DATA_TENSORIMPL_H__
 
-#include "backend/TensorImpl.hpp"
-#include "data/Tensor.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 template <class T>
diff --git a/include/operator/AddImpl.hpp b/include/aidge/operator/AddImpl.hpp
similarity index 98%
rename from include/operator/AddImpl.hpp
rename to include/aidge/operator/AddImpl.hpp
index a089328c1985454b121115e5ce0d2cb331c6ee6b..b5933aad54b1b91f4e493f50ad8585de083b6966 100644
--- a/include/operator/AddImpl.hpp
+++ b/include/aidge/operator/AddImpl.hpp
@@ -12,10 +12,10 @@
 #ifndef __AIDGE_CPU_OPERATOR_ADDIMPL_H__
 #define __AIDGE_CPU_OPERATOR_ADDIMPL_H__
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/Add.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Add.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 #include <memory>
 #include <vector>
 
diff --git a/include/operator/AddImpl_forward_kernels.hpp b/include/aidge/operator/AddImpl_forward_kernels.hpp
similarity index 96%
rename from include/operator/AddImpl_forward_kernels.hpp
rename to include/aidge/operator/AddImpl_forward_kernels.hpp
index 120358f686bae8404944729d2292d37948fac167..f968f94b5b5f5f7708a9f753a7d0a02e6274cb98 100644
--- a/include/operator/AddImpl_forward_kernels.hpp
+++ b/include/aidge/operator/AddImpl_forward_kernels.hpp
@@ -12,9 +12,9 @@
 #ifndef __AIDGE_CPU_OPERATOR_ADDIMPL_FORWARD_KERNEL_H__
 #define __AIDGE_CPU_OPERATOR_ADDIMPL_FORWARD_KERNEL_H__
 
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Registrar.hpp"
 
-#include "operator/AddImpl.hpp"
+#include "aidge/operator/AddImpl.hpp"
 
 namespace Aidge {
 
diff --git a/include/operator/AvgPoolingImpl.hpp b/include/aidge/operator/AvgPoolingImpl.hpp
similarity index 94%
rename from include/operator/AvgPoolingImpl.hpp
rename to include/aidge/operator/AvgPoolingImpl.hpp
index a107bd83e64504a7640594735c7607d482c22eef..58faa8b2e29d315aced712142016fb6f68782c9c 100644
--- a/include/operator/AvgPoolingImpl.hpp
+++ b/include/aidge/operator/AvgPoolingImpl.hpp
@@ -17,10 +17,10 @@
 #include <tuple>
 #include <vector>
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/AvgPooling.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/AvgPooling.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 // class AvgPooling_Op;
diff --git a/include/operator/AvgPoolingImpl_forward_kernels.hpp b/include/aidge/operator/AvgPoolingImpl_forward_kernels.hpp
similarity index 95%
rename from include/operator/AvgPoolingImpl_forward_kernels.hpp
rename to include/aidge/operator/AvgPoolingImpl_forward_kernels.hpp
index d6f8ba8e007ed9a94f43e0ca185649c2758c3ab4..cf6cd0e6ec016239bb357510766ac199de418377 100644
--- a/include/operator/AvgPoolingImpl_forward_kernels.hpp
+++ b/include/aidge/operator/AvgPoolingImpl_forward_kernels.hpp
@@ -12,11 +12,11 @@
 #ifndef __AIDGE_CPU_OPERATOR_AVGPOOLINGIMPL_FORWARD_KERNEL_H__
 #define __AIDGE_CPU_OPERATOR_AVGPOOLINGIMPL_FORWARD_KERNEL_H__
 
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Registrar.hpp"
 
-#include "operator/AvgPoolingImpl.hpp"
-#include "utils/Types.h"
-#include "data/Data.hpp"
+#include "aidge/operator/AvgPoolingImpl.hpp"
+#include "aidge/utils/Types.h"
+#include "aidge/data/Data.hpp"
 #include <array>
 #include <tuple>
 #include <cmath>
diff --git a/include/operator/BatchNormImpl.hpp b/include/aidge/operator/BatchNormImpl.hpp
similarity index 95%
rename from include/operator/BatchNormImpl.hpp
rename to include/aidge/operator/BatchNormImpl.hpp
index 61dafaf4ff6084e55db8f505ef3eebf478b62211..80ea54aeea9d75b8bc32d4a9ebbf0bd9daf16d83 100644
--- a/include/operator/BatchNormImpl.hpp
+++ b/include/aidge/operator/BatchNormImpl.hpp
@@ -17,10 +17,10 @@
 #include <tuple>
 #include <vector>
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/BatchNorm.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/BatchNorm.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 // class BatchNorm_Op;
diff --git a/include/operator/BatchNormImpl_forward_kernels.hpp b/include/aidge/operator/BatchNormImpl_forward_kernels.hpp
similarity index 95%
rename from include/operator/BatchNormImpl_forward_kernels.hpp
rename to include/aidge/operator/BatchNormImpl_forward_kernels.hpp
index 3bea9d743d12ae621b7d14af583ad56386cf9f7b..77a8f0aa12c3b5c450dfd765626acbe7e6dfe995 100644
--- a/include/operator/BatchNormImpl_forward_kernels.hpp
+++ b/include/aidge/operator/BatchNormImpl_forward_kernels.hpp
@@ -12,10 +12,10 @@
 #ifndef __AIDGE_CPU_OPERATOR_BATCHNORMIMPL_FORWARD_KERNEL_H__
 #define __AIDGE_CPU_OPERATOR_BATCHNORMIMPL_FORWARD_KERNEL_H__
 
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Registrar.hpp"
 
-#include "operator/BatchNormImpl.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/BatchNormImpl.hpp"
+#include "aidge/utils/Types.h"
 #include <array>
 #include <cmath>
 #include <algorithm>
diff --git a/include/operator/ConvDepthWiseImpl.hpp b/include/aidge/operator/ConvDepthWiseImpl.hpp
similarity index 94%
rename from include/operator/ConvDepthWiseImpl.hpp
rename to include/aidge/operator/ConvDepthWiseImpl.hpp
index 4557b37ab6ebc7bf9e9e7539922ce057d66c148e..0f219b00e4cf627c3f9c783d2f7be254f12637fa 100644
--- a/include/operator/ConvDepthWiseImpl.hpp
+++ b/include/aidge/operator/ConvDepthWiseImpl.hpp
@@ -17,10 +17,10 @@
 #include <tuple>
 #include <vector>
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/ConvDepthWise.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/ConvDepthWise.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 // class ConvDepthWise_Op;
diff --git a/include/operator/ConvDepthWiseImpl_forward_kernels.hpp b/include/aidge/operator/ConvDepthWiseImpl_forward_kernels.hpp
similarity index 96%
rename from include/operator/ConvDepthWiseImpl_forward_kernels.hpp
rename to include/aidge/operator/ConvDepthWiseImpl_forward_kernels.hpp
index 2c8cb291cb0df10d5dc065ce9353d31dd6acdea9..699a086457ee54f048182b9e318dbe1311b0c75c 100644
--- a/include/operator/ConvDepthWiseImpl_forward_kernels.hpp
+++ b/include/aidge/operator/ConvDepthWiseImpl_forward_kernels.hpp
@@ -12,10 +12,10 @@
 #ifndef __AIDGE_CPU_OPERATOR_CONVDEPTHWISEIMP_FORWARD_KERNEL_H__
 #define  __AIDGE_CPU_OPERATOR_CONVDEPTHWISEIMPL_FORWARD_KERNEL_H__
 
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Registrar.hpp"
 
-#include "operator/ConvDepthWiseImpl.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/ConvDepthWiseImpl.hpp"
+#include "aidge/utils/Types.h"
 #include <cmath>
 #include <array>
 #include <algorithm>
diff --git a/include/operator/ConvImpl.hpp b/include/aidge/operator/ConvImpl.hpp
similarity index 94%
rename from include/operator/ConvImpl.hpp
rename to include/aidge/operator/ConvImpl.hpp
index 9db557b760f5dae533ac74bc9fa3b2cd1f1d7ee4..d40cc818c26fba7cb4d7b8729230c5994a2ec2d0 100644
--- a/include/operator/ConvImpl.hpp
+++ b/include/aidge/operator/ConvImpl.hpp
@@ -17,10 +17,10 @@
 #include <tuple>
 #include <vector>
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/Conv.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Conv.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 // class Conv_Op;
diff --git a/include/operator/ConvImpl_forward_kernels.hpp b/include/aidge/operator/ConvImpl_forward_kernels.hpp
similarity index 97%
rename from include/operator/ConvImpl_forward_kernels.hpp
rename to include/aidge/operator/ConvImpl_forward_kernels.hpp
index b835ec7f8f488db6866f0286d4b5012eb06a194b..8c2aedca4855c1272838604757e3b2727f11edb0 100644
--- a/include/operator/ConvImpl_forward_kernels.hpp
+++ b/include/aidge/operator/ConvImpl_forward_kernels.hpp
@@ -12,10 +12,10 @@
 #ifndef __AIDGE_CPU_OPERATOR_CONVIMPL_FORWARD_KERNEL_H__
 #define __AIDGE_CPU_OPERATOR_CONVIMPL_FORWARD_KERNEL_H__
 
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Registrar.hpp"
 
-#include "operator/ConvImpl.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/ConvImpl.hpp"
+#include "aidge/utils/Types.h"
 #include <cmath>
 #include <array>
 #include <algorithm>
diff --git a/include/operator/FCImpl.hpp b/include/aidge/operator/FCImpl.hpp
similarity index 94%
rename from include/operator/FCImpl.hpp
rename to include/aidge/operator/FCImpl.hpp
index f06861ef07795f14dd23a951155ed55bf284b495..eea2009d04681b76a1894c380631c4582dd8cf7f 100644
--- a/include/operator/FCImpl.hpp
+++ b/include/aidge/operator/FCImpl.hpp
@@ -12,10 +12,10 @@
 #ifndef __AIDGE_CPU_OPERATOR_FCIMPL_H__
 #define __AIDGE_CPU_OPERATOR_FCIMPL_H__
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/FC.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/FC.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 #include <memory>
 #include <vector>
 #include <array>
diff --git a/include/operator/FCImpl_forward_kernels.hpp b/include/aidge/operator/FCImpl_forward_kernels.hpp
similarity index 96%
rename from include/operator/FCImpl_forward_kernels.hpp
rename to include/aidge/operator/FCImpl_forward_kernels.hpp
index 2c857a64ce4d8922cd6c6ea3061faf2098affe0b..a481e2d5f80ec9c722af7f00b688003c12a4e35a 100644
--- a/include/operator/FCImpl_forward_kernels.hpp
+++ b/include/aidge/operator/FCImpl_forward_kernels.hpp
@@ -12,10 +12,10 @@
 #ifndef __AIDGE_CPU_OPERATOR_FCIMPL_FORWARD_KERNEL_H__
 #define __AIDGE_CPU_OPERATOR_FCIMPL_FORWARD_KERNEL_H__
 
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Registrar.hpp"
 #include <algorithm>
 
-#include "operator/FCImpl.hpp"
+#include "aidge/operator/FCImpl.hpp"
 
 namespace Aidge {
 // template <class I, class W, class B, class O>
diff --git a/include/operator/LeakyReLUImpl.hpp b/include/aidge/operator/LeakyReLUImpl.hpp
similarity index 93%
rename from include/operator/LeakyReLUImpl.hpp
rename to include/aidge/operator/LeakyReLUImpl.hpp
index 7b71f4e7c89dc34c376ee6e56b81623ee7bd71eb..e810fd7e23ebdf914cd52120aa28eebb205a2237 100644
--- a/include/operator/LeakyReLUImpl.hpp
+++ b/include/aidge/operator/LeakyReLUImpl.hpp
@@ -12,10 +12,10 @@
 #ifndef __AIDGE_CPU_OPERATOR_LEAKYRELUIMPL_H__
 #define __AIDGE_CPU_OPERATOR_LEAKYRELUIMPL_H__
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/LeakyReLU.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/LeakyReLU.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 #include <memory>
 #include <vector>
 
diff --git a/include/operator/LeakyReLUImpl_forward_kernels.hpp b/include/aidge/operator/LeakyReLUImpl_forward_kernels.hpp
similarity index 93%
rename from include/operator/LeakyReLUImpl_forward_kernels.hpp
rename to include/aidge/operator/LeakyReLUImpl_forward_kernels.hpp
index 8c450d649128d8d2aed3eb6c4ad6c3c6f6ec48d9..e41a8f20ebd3c405f7adbc9ed4ded3080c9688ce 100644
--- a/include/operator/LeakyReLUImpl_forward_kernels.hpp
+++ b/include/aidge/operator/LeakyReLUImpl_forward_kernels.hpp
@@ -12,9 +12,9 @@
 #ifndef __AIDGE_CPU_OPERATOR_LEAKYRELUIMPL_FORWARD_KERNEL_H__
 #define __AIDGE_CPU_OPERATOR_LEAKYRELUIMPL_FORWARD_KERNEL_H__
 
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Registrar.hpp"
 
-#include "operator/LeakyReLUImpl.hpp"
+#include "aidge/operator/LeakyReLUImpl.hpp"
 
 namespace Aidge {
 template <class I, class O>
diff --git a/include/operator/ProducerImpl.hpp b/include/aidge/operator/ProducerImpl.hpp
similarity index 91%
rename from include/operator/ProducerImpl.hpp
rename to include/aidge/operator/ProducerImpl.hpp
index 23be4b6da6bde301807969ec4cec1df2be4c23c1..f2764b34b774c35cc26503bf60a650f4a9e67817 100644
--- a/include/operator/ProducerImpl.hpp
+++ b/include/aidge/operator/ProducerImpl.hpp
@@ -14,10 +14,10 @@
 
 #include <memory>
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/Producer.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 
 namespace Aidge {
 class ProducerImpl_cpu : public OperatorImpl {
diff --git a/include/operator/ReLUImpl.hpp b/include/aidge/operator/ReLUImpl.hpp
similarity index 93%
rename from include/operator/ReLUImpl.hpp
rename to include/aidge/operator/ReLUImpl.hpp
index 714a44a26f7820598d686e0e0ac64be517898427..d62092a5df13c51c24c4b760b3ac46c76bc66f2b 100644
--- a/include/operator/ReLUImpl.hpp
+++ b/include/aidge/operator/ReLUImpl.hpp
@@ -12,10 +12,10 @@
 #ifndef __AIDGE_CPU_OPERATOR_RELUIMPL_H__
 #define __AIDGE_CPU_OPERATOR_RELUIMPL_H__
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/ReLU.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/ReLU.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 #include <memory>
 #include <vector>
 
diff --git a/include/operator/ReLUImpl_forward_kernels.hpp b/include/aidge/operator/ReLUImpl_forward_kernels.hpp
similarity index 93%
rename from include/operator/ReLUImpl_forward_kernels.hpp
rename to include/aidge/operator/ReLUImpl_forward_kernels.hpp
index 567185fb2428cf97c3ceccd3c9f57edc19aa1242..640455a43791c72fcb4832987e1a035239f746af 100644
--- a/include/operator/ReLUImpl_forward_kernels.hpp
+++ b/include/aidge/operator/ReLUImpl_forward_kernels.hpp
@@ -12,9 +12,9 @@
 #ifndef __AIDGE_CPU_OPERATOR_RELUIMPL_FORWARD_KERNEL_H__
 #define __AIDGE_CPU_OPERATOR_RELUIMPL_FORWARD_KERNEL_H__
 
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Registrar.hpp"
 
-#include "operator/ReLUImpl.hpp"
+#include "aidge/operator/ReLUImpl.hpp"
 
 namespace Aidge {
 template <class I, class O>
diff --git a/include/operator/SoftmaxImpl.hpp b/include/aidge/operator/SoftmaxImpl.hpp
similarity index 93%
rename from include/operator/SoftmaxImpl.hpp
rename to include/aidge/operator/SoftmaxImpl.hpp
index eb4062b67de86331a56580ee5164e2f6208bb814..76309f311707e9da7ea6cac40dd38066b90605c0 100644
--- a/include/operator/SoftmaxImpl.hpp
+++ b/include/aidge/operator/SoftmaxImpl.hpp
@@ -12,10 +12,10 @@
 #ifndef __AIDGE_CPU_OPERATOR_SOFTMAXIMPL_H__
 #define __AIDGE_CPU_OPERATOR_SOFTMAXIMPL_H__
 
-#include "backend/OperatorImpl.hpp"
-#include "operator/Softmax.hpp"
-#include "utils/Registrar.hpp"
-#include "utils/Types.h"
+#include "aidge/backend/OperatorImpl.hpp"
+#include "aidge/operator/Softmax.hpp"
+#include "aidge/utils/Registrar.hpp"
+#include "aidge/utils/Types.h"
 #include <memory>
 #include <vector>
 
diff --git a/include/operator/SoftmaxImpl_forward_kernels.hpp b/include/aidge/operator/SoftmaxImpl_forward_kernels.hpp
similarity index 92%
rename from include/operator/SoftmaxImpl_forward_kernels.hpp
rename to include/aidge/operator/SoftmaxImpl_forward_kernels.hpp
index 7e5d21565904a1655e2f2fb803abb55776aba94d..d1634e28a9b57cf2f2d486237947779b41e121bd 100644
--- a/include/operator/SoftmaxImpl_forward_kernels.hpp
+++ b/include/aidge/operator/SoftmaxImpl_forward_kernels.hpp
@@ -12,13 +12,13 @@
 #ifndef __AIDGE_CPU_OPERATOR_SOFTMAXIMPL_FORWARD_KERNEL_H__
 #define __AIDGE_CPU_OPERATOR_SOFTMAXIMPL_FORWARD_KERNEL_H__
 
-#include "utils/Registrar.hpp"
+#include "aidge/utils/Registrar.hpp"
 #include <cstddef>
 #include <cmath>
-#include "data/Data.hpp"
-#include "utils/Types.h"
+#include "aidge/data/Data.hpp"
+#include "aidge/utils/Types.h"
 
-#include "operator/SoftmaxImpl.hpp"
+#include "aidge/operator/SoftmaxImpl.hpp"
 
 namespace Aidge {
 template <class I, class O>
diff --git a/include/aidge_cpu.hpp b/include/aidge_cpu.hpp
index 90536890e928b436cc732abf969c67584e983e4b..ce723a528fef7a1e62851a854b06feba34525f09 100644
--- a/include/aidge_cpu.hpp
+++ b/include/aidge_cpu.hpp
@@ -12,16 +12,16 @@
 #ifndef __AIDGE_CPU_IMPORTS_H__
 #define __AIDGE_CPU_IMPORTS_H__
 
-#include "data/TensorImpl.hpp"
-#include "operator/AddImpl.hpp"
-#include "operator/AvgPoolingImpl.hpp"
-#include "operator/BatchNormImpl.hpp"
-#include "operator/ConvDepthWiseImpl.hpp"
-#include "operator/ConvImpl.hpp"
-#include "operator/FCImpl.hpp"
-#include "operator/LeakyReLUImpl.hpp"
-#include "operator/ProducerImpl.hpp"
-#include "operator/ReLUImpl.hpp"
-#include "operator/SoftmaxImpl.hpp"
+#include "aidge/data/TensorImpl.hpp"
+#include "aidge/operator/AddImpl.hpp"
+#include "aidge/operator/AvgPoolingImpl.hpp"
+#include "aidge/operator/BatchNormImpl.hpp"
+#include "aidge/operator/ConvDepthWiseImpl.hpp"
+#include "aidge/operator/ConvImpl.hpp"
+#include "aidge/operator/FCImpl.hpp"
+#include "aidge/operator/LeakyReLUImpl.hpp"
+#include "aidge/operator/ProducerImpl.hpp"
+#include "aidge/operator/ReLUImpl.hpp"
+#include "aidge/operator/SoftmaxImpl.hpp"
 
 #endif /* __AIDGE_CPU_IMPORTS_H__ */
\ No newline at end of file
diff --git a/src/operator/AddImpl.cpp b/src/operator/AddImpl.cpp
index 5b84bc8e9f0d8509774b99b27d0b06c97053b422..770ed91a1f1cbcab558c1416c4b83f73d655ef17 100644
--- a/src/operator/AddImpl.cpp
+++ b/src/operator/AddImpl.cpp
@@ -15,11 +15,11 @@
 #include <thread>
 #include <vector>
 
-#include "operator/Conv.hpp"
+#include "aidge/operator/Conv.hpp"
 
-#include "operator/AddImpl.hpp"
-#include "operator/AddImpl_forward_kernels.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/AddImpl.hpp"
+#include "aidge/operator/AddImpl_forward_kernels.hpp"
+#include "aidge/utils/Types.h"
 
 //////////////////////////////////
 // AddImpl_cpu<1>
diff --git a/src/operator/AvgPoolingImpl.cpp b/src/operator/AvgPoolingImpl.cpp
index dfa6357e1207e1c844b09c68665cc734e3f35177..d9d345b7b551abc31099e7c6f7f8e5fbbe126654 100644
--- a/src/operator/AvgPoolingImpl.cpp
+++ b/src/operator/AvgPoolingImpl.cpp
@@ -9,16 +9,16 @@
  *
  ********************************************************************************/
 
-#include "operator/AvgPoolingImpl.hpp"
+#include "aidge/operator/AvgPoolingImpl.hpp"
 
 #include <cassert>
 #include <numeric>
 #include <thread>
 #include <vector>
 
-#include "operator/AvgPoolingImpl_forward_kernels.hpp"
-#include "operator/AvgPooling.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/AvgPoolingImpl_forward_kernels.hpp"
+#include "aidge/operator/AvgPooling.hpp"
+#include "aidge/utils/Types.h"
 
 Aidge::NbElts_t Aidge::AvgPoolingImpl2D_cpu::getNbRequiredData(Aidge::IOIndex_t inputIdx) const {
     assert(mOp.getInput(inputIdx) && "requires valid input");
diff --git a/src/operator/BatchNormImpl.cpp b/src/operator/BatchNormImpl.cpp
index d94f43892e45f5e9cd6eb4ed2982514d0abc037c..ccf03f59591aadf1c3e4609f1bf8781924ac4a71 100644
--- a/src/operator/BatchNormImpl.cpp
+++ b/src/operator/BatchNormImpl.cpp
@@ -9,16 +9,16 @@
  *
  ********************************************************************************/
 
-#include "operator/BatchNormImpl.hpp"
+#include "aidge/operator/BatchNormImpl.hpp"
 
 #include <cassert>
 #include <numeric>
 #include <thread>
 #include <vector>
 
-#include "operator/BatchNormImpl_forward_kernels.hpp"
-#include "operator/BatchNorm.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/BatchNormImpl_forward_kernels.hpp"
+#include "aidge/operator/BatchNorm.hpp"
+#include "aidge/utils/Types.h"
 
 Aidge::NbElts_t Aidge::BatchNormImpl2D_cpu::getNbRequiredData(Aidge::IOIndex_t inputIdx) const {
     assert(mOp.getInput(inputIdx) && "requires valid input");
diff --git a/src/operator/ConvDepthWiseImpl.cpp b/src/operator/ConvDepthWiseImpl.cpp
index ff5bf1e9097fc1a560cfa6ae84931420a905a327..32ee0bc876296a8a3ddb365b1efdecf8d103bbc7 100644
--- a/src/operator/ConvDepthWiseImpl.cpp
+++ b/src/operator/ConvDepthWiseImpl.cpp
@@ -9,7 +9,7 @@
  *
  ********************************************************************************/
 
-#include "operator/ConvDepthWiseImpl.hpp"
+#include "aidge/operator/ConvDepthWiseImpl.hpp"
 
 #include <cassert>
 #include <chrono>
@@ -17,9 +17,9 @@
 #include <thread>
 #include <vector>
 
-#include "operator/ConvDepthWiseImpl_forward_kernels.hpp"
-#include "operator/ConvDepthWise.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/ConvDepthWiseImpl_forward_kernels.hpp"
+#include "aidge/operator/ConvDepthWise.hpp"
+#include "aidge/utils/Types.h"
 
 Aidge::NbElts_t Aidge::ConvDepthWiseImpl2D_cpu::getNbRequiredData(Aidge::IOIndex_t inputIdx) const {
     assert(mOp.getInput(inputIdx) && "requires valid input");
diff --git a/src/operator/ConvImpl.cpp b/src/operator/ConvImpl.cpp
index 213f0a360802a68e082338b2d3b70cec2b4c83d2..e38fe612d6aedb176af60d9d563e5ac6347cb792 100644
--- a/src/operator/ConvImpl.cpp
+++ b/src/operator/ConvImpl.cpp
@@ -9,7 +9,7 @@
  *
  ********************************************************************************/
 
-#include "operator/ConvImpl.hpp"
+#include "aidge/operator/ConvImpl.hpp"
 
 #include <cassert>
 #include <chrono>
@@ -17,9 +17,9 @@
 #include <thread>
 #include <vector>
 
-#include "operator/ConvImpl_forward_kernels.hpp"
-#include "operator/Conv.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/ConvImpl_forward_kernels.hpp"
+#include "aidge/operator/Conv.hpp"
+#include "aidge/utils/Types.h"
 
 Aidge::NbElts_t Aidge::ConvImpl2D_cpu::getNbRequiredData(Aidge::IOIndex_t inputIdx) const {
     assert(mOp.getInput(inputIdx) && "requires valid input");
diff --git a/src/operator/FCImpl.cpp b/src/operator/FCImpl.cpp
index 58a7f3cef86fd464957a7182df91c9a72c5328a6..d615142bd6b358e7d86539952ec03ee0915ca8d8 100644
--- a/src/operator/FCImpl.cpp
+++ b/src/operator/FCImpl.cpp
@@ -15,10 +15,10 @@
 #include <thread>
 #include <vector>
 
-#include "operator/FC.hpp"
-#include "operator/FCImpl.hpp"
-#include "operator/FCImpl_forward_kernels.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/FC.hpp"
+#include "aidge/operator/FCImpl.hpp"
+#include "aidge/operator/FCImpl_forward_kernels.hpp"
+#include "aidge/utils/Types.h"
 
 Aidge::NbElts_t Aidge::FCImpl_cpu::getNbRequiredData(Aidge::IOIndex_t inputIdx) const
 {
diff --git a/src/operator/LeakyReLUImpl.cpp b/src/operator/LeakyReLUImpl.cpp
index f13388351a54b4ffeab59880ca5c06ea68b46c8a..b3a6e036f5503ded7f014cc0cc85cf7408e69c30 100644
--- a/src/operator/LeakyReLUImpl.cpp
+++ b/src/operator/LeakyReLUImpl.cpp
@@ -14,11 +14,11 @@
 #include <chrono>
 #include <thread>
 
-#include "operator/LeakyReLU.hpp"
+#include "aidge/operator/LeakyReLU.hpp"
 
-#include "operator/LeakyReLUImpl.hpp"
-#include "operator/LeakyReLUImpl_forward_kernels.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/LeakyReLUImpl.hpp"
+#include "aidge/operator/LeakyReLUImpl_forward_kernels.hpp"
+#include "aidge/utils/Types.h"
 #include <numeric>
 #include <vector>
 
diff --git a/src/operator/ProducerImpl.cpp b/src/operator/ProducerImpl.cpp
index cbdd05547bea971f825651707ff0bdc5a7a0cc62..067bf8f37c18ac97779a4b54290b5f7af48aef59 100644
--- a/src/operator/ProducerImpl.cpp
+++ b/src/operator/ProducerImpl.cpp
@@ -13,11 +13,11 @@
 #include <numeric>
 #include <vector>
 
-#include "data/Tensor.hpp"
-#include "operator/Producer.hpp"
-#include "utils/Types.h"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/operator/Producer.hpp"
+#include "aidge/utils/Types.h"
 
-#include "operator/ProducerImpl.hpp"
+#include "aidge/operator/ProducerImpl.hpp"
 
 
 std::size_t Aidge::ProducerImpl_cpu::getNbRequiredData(
diff --git a/src/operator/ReLUImpl.cpp b/src/operator/ReLUImpl.cpp
index 4d8472c03ed5ee1b151b46b948b92853afcf6037..dff369006746f62e9054615eef1d604aa232f5ce 100644
--- a/src/operator/ReLUImpl.cpp
+++ b/src/operator/ReLUImpl.cpp
@@ -14,11 +14,11 @@
 #include <chrono>
 #include <thread>
 
-#include "operator/ReLU.hpp"
+#include "aidge/operator/ReLU.hpp"
 
-#include "operator/ReLUImpl.hpp"
-#include "operator/ReLUImpl_forward_kernels.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/ReLUImpl.hpp"
+#include "aidge/operator/ReLUImpl_forward_kernels.hpp"
+#include "aidge/utils/Types.h"
 #include <numeric>
 #include <vector>
 
diff --git a/src/operator/SoftmaxImpl.cpp b/src/operator/SoftmaxImpl.cpp
index f5f0bb73d448b7f367665c18fd05d24c03d296e0..db91c61ec0ed2c121985e6924b0217e7b9d62be1 100644
--- a/src/operator/SoftmaxImpl.cpp
+++ b/src/operator/SoftmaxImpl.cpp
@@ -14,11 +14,11 @@
 #include <chrono>
 #include <thread>
 
-#include "operator/Softmax.hpp"
+#include "aidge/operator/Softmax.hpp"
 
-#include "operator/SoftmaxImpl.hpp"
-#include "operator/SoftmaxImpl_forward_kernels.hpp"
-#include "utils/Types.h"
+#include "aidge/operator/SoftmaxImpl.hpp"
+#include "aidge/operator/SoftmaxImpl_forward_kernels.hpp"
+#include "aidge/utils/Types.h"
 #include <numeric>
 #include <vector>
 
diff --git a/tests/CMakeLists.txt b/unit_tests/CMakeLists.txt
similarity index 100%
rename from tests/CMakeLists.txt
rename to unit_tests/CMakeLists.txt
diff --git a/tests/Test_Scheduler.cpp b/unit_tests/Test_Scheduler.cpp
similarity index 98%
rename from tests/Test_Scheduler.cpp
rename to unit_tests/Test_Scheduler.cpp
index 4e6747e8e57bf2d826da564b76a75591878353d8..57f3ce2e0ba66c6f68b4c7a49a06595f64987ca5 100644
--- a/tests/Test_Scheduler.cpp
+++ b/unit_tests/Test_Scheduler.cpp
@@ -13,11 +13,11 @@
 #include <memory>
 #include <string>
 
-#include "data/Tensor.hpp"
-#include "graph/Node.hpp"
-#include "graph/GraphView.hpp"
-#include "graph/OpArgs.hpp"
-#include "scheduler/Scheduler.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/graph/Node.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graph/OpArgs.hpp"
+#include "aidge/scheduler/Scheduler.hpp"
 #include "aidge_cpu.hpp"
 
 using namespace Aidge;
diff --git a/tests/Test_TensorImpl.cpp b/unit_tests/Test_TensorImpl.cpp
similarity index 96%
rename from tests/Test_TensorImpl.cpp
rename to unit_tests/Test_TensorImpl.cpp
index a912e3dcee06c354b05b7da51c44e69bcb3b523b..ca9e7df5617fa0ccff2ecf2c69ef45208f9f9da5 100644
--- a/tests/Test_TensorImpl.cpp
+++ b/unit_tests/Test_TensorImpl.cpp
@@ -13,8 +13,8 @@
 
 #include <catch2/catch_test_macros.hpp>
 
-#include "data/Tensor.hpp"
-#include "data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/TensorImpl.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/operator/Test_AddImpl.cpp b/unit_tests/operator/Test_AddImpl.cpp
similarity index 97%
rename from tests/operator/Test_AddImpl.cpp
rename to unit_tests/operator/Test_AddImpl.cpp
index 847e7ae96a0d3c8e89e1d36562d55f62b33d0f30..13356ba21bd50c88801e4f7a2a6e7d30e79bb97c 100644
--- a/tests/operator/Test_AddImpl.cpp
+++ b/unit_tests/operator/Test_AddImpl.cpp
@@ -11,10 +11,10 @@
 
 #include <catch2/catch_test_macros.hpp>
 
-#include "data/Tensor.hpp"
-#include "data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/TensorImpl.hpp"
 #include "aidge_cpu.hpp"
-#include "operator/Add.hpp"
+#include "aidge/operator/Add.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/operator/Test_AvgPoolingImpl.cpp b/unit_tests/operator/Test_AvgPoolingImpl.cpp
similarity index 97%
rename from tests/operator/Test_AvgPoolingImpl.cpp
rename to unit_tests/operator/Test_AvgPoolingImpl.cpp
index 2ee57560d7eccad3c5d16d7e4152a6204a7a8552..e6ff2aa7b2958805ae6bcdb97587c00dadfa574d 100644
--- a/tests/operator/Test_AvgPoolingImpl.cpp
+++ b/unit_tests/operator/Test_AvgPoolingImpl.cpp
@@ -13,10 +13,10 @@
 #include <memory>
 #include <cstdlib>
 
-#include "data/Tensor.hpp"
-#include "data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/TensorImpl.hpp"
 #include "aidge_cpu.hpp"
-#include "operator/AvgPooling.hpp"
+#include "aidge/operator/AvgPooling.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/operator/Test_BatchNormImpl.cpp b/unit_tests/operator/Test_BatchNormImpl.cpp
similarity index 97%
rename from tests/operator/Test_BatchNormImpl.cpp
rename to unit_tests/operator/Test_BatchNormImpl.cpp
index 4c6b20e182869c19eba10d99a2572b8523626d06..eace14ec4ef257e5911d15122b5c1e67d7ac169f 100644
--- a/tests/operator/Test_BatchNormImpl.cpp
+++ b/unit_tests/operator/Test_BatchNormImpl.cpp
@@ -12,10 +12,10 @@
 #include <catch2/catch_test_macros.hpp>
 #include <memory>
 
-#include "data/Tensor.hpp"
-#include "data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/TensorImpl.hpp"
 #include "aidge_cpu.hpp"
-#include "operator/BatchNorm.hpp"
+#include "aidge/operator/BatchNorm.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/operator/Test_ConvDepthWiseImpl.cpp b/unit_tests/operator/Test_ConvDepthWiseImpl.cpp
similarity index 97%
rename from tests/operator/Test_ConvDepthWiseImpl.cpp
rename to unit_tests/operator/Test_ConvDepthWiseImpl.cpp
index 835c43f62c7416a434676830b3ccaf3618e9b52b..444c0d4590a49e06089535881f704d5f8535a4ee 100644
--- a/tests/operator/Test_ConvDepthWiseImpl.cpp
+++ b/unit_tests/operator/Test_ConvDepthWiseImpl.cpp
@@ -12,10 +12,10 @@
 #include <catch2/catch_test_macros.hpp>
 #include <memory>
 
-#include "data/Tensor.hpp"
-#include "data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/TensorImpl.hpp"
 #include "aidge_cpu.hpp"
-#include "operator/ConvDepthWise.hpp"
+#include "aidge/operator/ConvDepthWise.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/operator/Test_ConvImpl.cpp b/unit_tests/operator/Test_ConvImpl.cpp
similarity index 99%
rename from tests/operator/Test_ConvImpl.cpp
rename to unit_tests/operator/Test_ConvImpl.cpp
index ca3e9926afdc83872bc0fd7d576d0e8b4f6ef05f..358c402bd9501cf274df6a20ebdce34d46295f6c 100644
--- a/tests/operator/Test_ConvImpl.cpp
+++ b/unit_tests/operator/Test_ConvImpl.cpp
@@ -13,10 +13,10 @@
 #include <cstdlib>
 #include <memory>
 
-#include "data/Tensor.hpp"
-#include "data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/TensorImpl.hpp"
 #include "aidge_cpu.hpp"
-#include "operator/Conv.hpp"
+#include "aidge/operator/Conv.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/operator/Test_FCImpl.cpp b/unit_tests/operator/Test_FCImpl.cpp
similarity index 98%
rename from tests/operator/Test_FCImpl.cpp
rename to unit_tests/operator/Test_FCImpl.cpp
index be4361bb59c7824662e0b633e4ea2f80295e13dc..f3056e078cf2aea27de4768b9a62e2fc7f9c3906 100644
--- a/tests/operator/Test_FCImpl.cpp
+++ b/unit_tests/operator/Test_FCImpl.cpp
@@ -13,9 +13,9 @@
 #include <memory>
 
 #include "aidge_cpu.hpp"
-#include "data/TensorImpl.hpp"
-#include "data/Tensor.hpp"
-#include "operator/FC.hpp"
+#include "aidge/data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/operator/FC.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/operator/Test_LeakyReLUImpl.cpp b/unit_tests/operator/Test_LeakyReLUImpl.cpp
similarity index 98%
rename from tests/operator/Test_LeakyReLUImpl.cpp
rename to unit_tests/operator/Test_LeakyReLUImpl.cpp
index b753e61887879b01c6d2c88d89f6e6668c76754a..582a2276acb4b8b2589ab051d337cb3f721fa6a2 100644
--- a/tests/operator/Test_LeakyReLUImpl.cpp
+++ b/unit_tests/operator/Test_LeakyReLUImpl.cpp
@@ -11,10 +11,10 @@
 
 #include <catch2/catch_test_macros.hpp>
 
-#include "data/Tensor.hpp"
-#include "data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/TensorImpl.hpp"
 #include "aidge_cpu.hpp"
-#include "operator/LeakyReLU.hpp"
+#include "aidge/operator/LeakyReLU.hpp"
 
 using namespace Aidge;
 
diff --git a/tests/operator/Test_ReLUImpl.cpp b/unit_tests/operator/Test_ReLUImpl.cpp
similarity index 98%
rename from tests/operator/Test_ReLUImpl.cpp
rename to unit_tests/operator/Test_ReLUImpl.cpp
index 59a5b47f5fde58a5170b6e4bbc3c3fd84094d4ac..99f5cd6a1e97dd7c8e29559f8debd438cf9b57b6 100644
--- a/tests/operator/Test_ReLUImpl.cpp
+++ b/unit_tests/operator/Test_ReLUImpl.cpp
@@ -11,10 +11,10 @@
 
 #include <catch2/catch_test_macros.hpp>
 
-#include "data/Tensor.hpp"
-#include "data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/TensorImpl.hpp"
 #include "aidge_cpu.hpp"
-#include "operator/ReLU.hpp"
+#include "aidge/operator/ReLU.hpp"
 
 #include <memory>
 
diff --git a/tests/operator/Test_SoftmaxImpl.cpp b/unit_tests/operator/Test_SoftmaxImpl.cpp
similarity index 98%
rename from tests/operator/Test_SoftmaxImpl.cpp
rename to unit_tests/operator/Test_SoftmaxImpl.cpp
index 6a3ceb5cd00c2a3d361543e2b5afbe9e1d297e02..32324b5cd2e03d33b79e7a3111d0dc4776b702e6 100644
--- a/tests/operator/Test_SoftmaxImpl.cpp
+++ b/unit_tests/operator/Test_SoftmaxImpl.cpp
@@ -11,10 +11,10 @@
 
 #include <catch2/catch_test_macros.hpp>
 
-#include "data/Tensor.hpp"
-#include "data/TensorImpl.hpp"
+#include "aidge/data/Tensor.hpp"
+#include "aidge/data/TensorImpl.hpp"
 #include "aidge_cpu.hpp"
-#include "operator/Softmax.hpp"
+#include "aidge/operator/Softmax.hpp"
 
 #include <memory>