diff --git a/CMakeLists.txt b/CMakeLists.txt
index 644e4a03a397b0770278d474501ad7ac788d7bb9..17e200bf9c2336677009e09e5e79318125c95f04 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -396,6 +396,7 @@ target_link_libraries(
   PugsUtils
   PugsLanguage
   PugsLanguageModules
+  PugsLanguageUtils
   kokkos
   ${PARMETIS_LIBRARIES}
   ${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES}
diff --git a/src/language/ASTNodeDataTypeBuilder.cpp b/src/language/ASTNodeDataTypeBuilder.cpp
index 7ae2758fd2472cad4a63523734a59d6a40814fc8..4f3ccf8f5337c1ac250fb1e88bde66efd9275e13 100644
--- a/src/language/ASTNodeDataTypeBuilder.cpp
+++ b/src/language/ASTNodeDataTypeBuilder.cpp
@@ -1,9 +1,9 @@
 #include <language/ASTNodeDataTypeBuilder.hpp>
 
 #include <language/ASTNodeNaturalConversionChecker.hpp>
-#include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 #include <utils/PugsAssert.hpp>
 
 ASTNodeDataType
diff --git a/src/language/CMakeLists.txt b/src/language/CMakeLists.txt
index 7068b491137f4039fdd2d6c687e27a6850eabbbe..ee25c06d0a8dc2f04cdb4c761661aec147e9378b 100644
--- a/src/language/CMakeLists.txt
+++ b/src/language/CMakeLists.txt
@@ -2,11 +2,11 @@
 
 add_subdirectory(node_processor)
 add_subdirectory(modules)
+add_subdirectory(utils)
 
 add_library(
   PugsLanguage
   ASTBuilder.cpp
-  ASTDotPrinter.cpp
   ASTModulesImporter.cpp
   ASTNodeAffectationExpressionBuilder.cpp
   ASTNodeArraySubscriptExpressionBuilder.cpp
@@ -26,7 +26,6 @@ add_library(
   ASTNodeListAffectationExpressionBuilder.cpp
   ASTNodeNaturalConversionChecker.cpp
   ASTNodeUnaryOperatorExpressionBuilder.cpp
-  ASTPrinter.cpp
   ASTSymbolTableBuilder.cpp
   ASTSymbolInitializationChecker.cpp
   EmbeddedData.cpp
diff --git a/src/language/PugsParser.cpp b/src/language/PugsParser.cpp
index 8077d1737a7840261679cee3e1291effac903947..1c4163f4b624b92e971da126c73226d7a8fc5a06 100644
--- a/src/language/PugsParser.cpp
+++ b/src/language/PugsParser.cpp
@@ -1,7 +1,6 @@
 #include <language/PugsParser.hpp>
 
 #include <language/ASTBuilder.hpp>
-#include <language/ASTDotPrinter.hpp>
 #include <language/ASTModulesImporter.hpp>
 #include <language/ASTNode.hpp>
 #include <language/ASTNodeDataTypeBuilder.hpp>
@@ -11,11 +10,12 @@
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeJumpPlacementChecker.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolInitializationChecker.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/utils/ASTDotPrinter.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Exceptions.hpp>
 #include <utils/PugsAssert.hpp>
 
diff --git a/src/language/modules/BuiltinModule.cpp b/src/language/modules/BuiltinModule.cpp
index d7729964da54a1209159a796eb9c9737c21ea70d..cfb8b1a02fbea5947499dad0b2800ae2e951d202 100644
--- a/src/language/modules/BuiltinModule.cpp
+++ b/src/language/modules/BuiltinModule.cpp
@@ -1,10 +1,10 @@
 #include <language/modules/BuiltinModule.hpp>
 
-#include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/TypeDescriptor.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 #include <utils/Exceptions.hpp>
 
-#include <iostream>
+#include <memory>
 
 void
 BuiltinModule::_addBuiltinFunction(const std::string& name,
diff --git a/src/language/modules/MathModule.cpp b/src/language/modules/MathModule.cpp
index ca3056da03bbeebfe725221803f05136f8e25ece..7064dc33c1cc8eb0753edccb45ddae6ef988a2c5 100644
--- a/src/language/modules/MathModule.cpp
+++ b/src/language/modules/MathModule.cpp
@@ -1,6 +1,6 @@
 #include <language/modules/MathModule.hpp>
 
-#include <language/BuiltinFunctionEmbedder.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 
 MathModule::MathModule()
 {
diff --git a/src/language/modules/MeshModule.cpp b/src/language/modules/MeshModule.cpp
index 23f44f8af7c0be033462b5965efd23463b3b9c64..1255c44e3d28c493badde1d90a66b6cd8d580790 100644
--- a/src/language/modules/MeshModule.cpp
+++ b/src/language/modules/MeshModule.cpp
@@ -1,11 +1,11 @@
 #include <language/modules/MeshModule.hpp>
 
-#include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/FunctionTable.hpp>
 #include <language/PugsFunctionAdapter.hpp>
 #include <language/SymbolTable.hpp>
 #include <language/TypeDescriptor.hpp>
 #include <language/node_processor/ExecutionPolicy.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 #include <mesh/Connectivity.hpp>
 #include <mesh/GmshReader.hpp>
 #include <mesh/Mesh.hpp>
diff --git a/src/language/modules/ModuleRepository.cpp b/src/language/modules/ModuleRepository.cpp
index 5765979f84285f90cc22991726544effe6a95272..8f2c39b99e47d6ba99e84d8745b6077a355be71e 100644
--- a/src/language/modules/ModuleRepository.cpp
+++ b/src/language/modules/ModuleRepository.cpp
@@ -1,11 +1,11 @@
 #include <language/modules/ModuleRepository.hpp>
 
 #include <language/ASTNode.hpp>
-#include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/SymbolTable.hpp>
 #include <language/modules/MathModule.hpp>
 #include <language/modules/MeshModule.hpp>
 #include <language/modules/VTKModule.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 #include <utils/PugsAssert.hpp>
 
 void
diff --git a/src/language/modules/VTKModule.cpp b/src/language/modules/VTKModule.cpp
index 7a482a9b2721ee0648c2b0188c404d729a1d82ee..8294be3d7b17b04b0abce932406deb61c765f8c5 100644
--- a/src/language/modules/VTKModule.cpp
+++ b/src/language/modules/VTKModule.cpp
@@ -1,7 +1,7 @@
 #include <language/modules/VTKModule.hpp>
 
-#include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/TypeDescriptor.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 #include <mesh/Connectivity.hpp>
 #include <mesh/GmshReader.hpp>
 #include <mesh/Mesh.hpp>
diff --git a/src/language/node_processor/BuiltinFunctionProcessor.hpp b/src/language/node_processor/BuiltinFunctionProcessor.hpp
index a2c32d5985b14a2c1e5b12e904b764617f5dbcfb..7a7397e31fea27d66727bd9f5d99fce147ebb1d3 100644
--- a/src/language/node_processor/BuiltinFunctionProcessor.hpp
+++ b/src/language/node_processor/BuiltinFunctionProcessor.hpp
@@ -1,10 +1,10 @@
 #ifndef BUILTIN_FUNCTION_PROCESSOR_HPP
 #define BUILTIN_FUNCTION_PROCESSOR_HPP
 
-#include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/PEGGrammar.hpp>
 #include <language/node_processor/FunctionArgumentConverter.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 #include <language/utils/RuntimeError.hpp>
 
 class BuiltinFunctionExpressionProcessor final : public INodeProcessor
diff --git a/src/language/ASTDotPrinter.cpp b/src/language/utils/ASTDotPrinter.cpp
similarity index 97%
rename from src/language/ASTDotPrinter.cpp
rename to src/language/utils/ASTDotPrinter.cpp
index 060ea6b35058be7d35e12280a782d4dd01a3499d..be0795198db278e68b6db7081773da7666fda1c7 100644
--- a/src/language/ASTDotPrinter.cpp
+++ b/src/language/utils/ASTDotPrinter.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTDotPrinter.hpp>
+#include <language/utils/ASTDotPrinter.hpp>
 
 #include <language/PEGGrammar.hpp>
 #include <utils/EscapedString.hpp>
diff --git a/src/language/ASTDotPrinter.hpp b/src/language/utils/ASTDotPrinter.hpp
similarity index 100%
rename from src/language/ASTDotPrinter.hpp
rename to src/language/utils/ASTDotPrinter.hpp
diff --git a/src/language/ASTPrinter.cpp b/src/language/utils/ASTPrinter.cpp
similarity index 98%
rename from src/language/ASTPrinter.cpp
rename to src/language/utils/ASTPrinter.cpp
index 6ce5d322c21711af13d763a8d393a0b0fd523c70..9bf18bdcf88f6399283750dac9ab0b38d8bf0400 100644
--- a/src/language/ASTPrinter.cpp
+++ b/src/language/utils/ASTPrinter.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTPrinter.hpp>
+#include <language/utils/ASTPrinter.hpp>
 
 #include <language/PEGGrammar.hpp>
 #include <utils/EscapedString.hpp>
diff --git a/src/language/ASTPrinter.hpp b/src/language/utils/ASTPrinter.hpp
similarity index 100%
rename from src/language/ASTPrinter.hpp
rename to src/language/utils/ASTPrinter.hpp
diff --git a/src/language/BuiltinFunctionEmbedder.hpp b/src/language/utils/BuiltinFunctionEmbedder.hpp
similarity index 100%
rename from src/language/BuiltinFunctionEmbedder.hpp
rename to src/language/utils/BuiltinFunctionEmbedder.hpp
diff --git a/src/language/utils/CMakeLists.txt b/src/language/utils/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c7ce6eefda728dc1f368b93ce050b39f737e5c18
--- /dev/null
+++ b/src/language/utils/CMakeLists.txt
@@ -0,0 +1,12 @@
+# ------------------- Source files --------------------
+
+add_library(PugsLanguageUtils
+  ASTDotPrinter.cpp
+  ASTPrinter.cpp
+)
+
+
+
+add_dependencies(PugsLanguageModules
+  PugsUtils
+  PugsMesh)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 4c55eb2e5b5e9c41aef2a48caf4d152c97fe309c..f08ecf6b7ff5500024b96e3ab6e274ab2242f521 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -86,6 +86,7 @@ add_executable (mpi_unit_tests
 target_link_libraries (unit_tests
   PugsLanguage
   PugsLanguageModules
+  PugsLanguageUtils
   PugsMesh
   PugsUtils
   kokkos
diff --git a/tests/test_ASTBuilder.cpp b/tests/test_ASTBuilder.cpp
index 418fb979c464d4f57c61e0200f1121d4e633ecf3..51dc847f0172894b93047f63e6f8229530cf85df 100644
--- a/tests/test_ASTBuilder.cpp
+++ b/tests/test_ASTBuilder.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
 #include <language/ASTBuilder.hpp>
-#include <language/ASTPrinter.hpp>
+#include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_ASTDotPrinter.cpp b/tests/test_ASTDotPrinter.cpp
index 55917fdd25bcf47792fd02d15ca449c6bca439bb..b36ff90a211366ce49fa55ea55932f37f5b59e28 100644
--- a/tests/test_ASTDotPrinter.cpp
+++ b/tests/test_ASTDotPrinter.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
 #include <language/ASTBuilder.hpp>
-#include <language/ASTDotPrinter.hpp>
+#include <language/utils/ASTDotPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_ASTModulesImporter.cpp b/tests/test_ASTModulesImporter.cpp
index 92412553a5b2c52371c64ec885dada35aed22b37..04d2b15220b6df9fbd9e46a3a7eda51cbcb31699 100644
--- a/tests/test_ASTModulesImporter.cpp
+++ b/tests/test_ASTModulesImporter.cpp
@@ -4,8 +4,8 @@
 #include <language/ASTModulesImporter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_ASTNodeAffectationExpressionBuilder.cpp b/tests/test_ASTNodeAffectationExpressionBuilder.cpp
index 9f4c26d7fedea9aa60a5c50ad9b15f26b4c62e95..9d16f8c611d1699dbacdf8498f253c4250066cb0 100644
--- a/tests/test_ASTNodeAffectationExpressionBuilder.cpp
+++ b/tests/test_ASTNodeAffectationExpressionBuilder.cpp
@@ -6,9 +6,9 @@
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolInitializationChecker.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeBinaryOperatorExpressionBuilder.cpp b/tests/test_ASTNodeBinaryOperatorExpressionBuilder.cpp
index 91ba822fa55368dfc42af5bc77d1339d7d000c01..c575680a01791bb68b57c05436577ed60e8d40b5 100644
--- a/tests/test_ASTNodeBinaryOperatorExpressionBuilder.cpp
+++ b/tests/test_ASTNodeBinaryOperatorExpressionBuilder.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeBuiltinFunctionExpressionBuilder.cpp b/tests/test_ASTNodeBuiltinFunctionExpressionBuilder.cpp
index 614ef6a68c38c67d904ebcd7813213918a404c28..b109e3d28e9b378d0b8751c5a49bb8904e763287 100644
--- a/tests/test_ASTNodeBuiltinFunctionExpressionBuilder.cpp
+++ b/tests/test_ASTNodeBuiltinFunctionExpressionBuilder.cpp
@@ -7,13 +7,14 @@
 #include <language/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
 #include <language/ASTNodeFunctionExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
-#include <language/BuiltinFunctionEmbedder.hpp>
+#include <language/utils/ASTPrinter.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
 
+#include <memory>
 #include <unordered_map>
 
 namespace test_only
diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp
index 3f5f361f5677cbb405ec7f8aec2eea402fe50013..fa7a6d13ad0821e7ece0e0077187ee8df27de87f 100644
--- a/tests/test_ASTNodeDataTypeBuilder.cpp
+++ b/tests/test_ASTNodeDataTypeBuilder.cpp
@@ -2,8 +2,8 @@
 
 #include <language/ASTBuilder.hpp>
 #include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_ASTNodeDeclarationToAffectationConverter.cpp b/tests/test_ASTNodeDeclarationToAffectationConverter.cpp
index 538d7cf8f190e1cf77df792534e1bd1044ba4dd9..d16bc7ee2791be0052ccb35f349e98fa7d3e0c4e 100644
--- a/tests/test_ASTNodeDeclarationToAffectationConverter.cpp
+++ b/tests/test_ASTNodeDeclarationToAffectationConverter.cpp
@@ -3,8 +3,8 @@
 #include <language/ASTBuilder.hpp>
 #include <language/ASTNodeDataTypeBuilder.hpp>
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_ASTNodeEmptyBlockCleaner.cpp b/tests/test_ASTNodeEmptyBlockCleaner.cpp
index 5c8f34d849c0c8486f035d8a9d5d4e9a01dfe295..18aafa1b7dbda04754fe4a7008e4d2c14d3298ab 100644
--- a/tests/test_ASTNodeEmptyBlockCleaner.cpp
+++ b/tests/test_ASTNodeEmptyBlockCleaner.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeEmptyBlockCleaner.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeExpressionBuilder.cpp b/tests/test_ASTNodeExpressionBuilder.cpp
index 63a285e0ffdfa83d4518a8ebbc524b4020324b91..5213aa728de0b9c42c866b79a78745433b0e34b1 100644
--- a/tests/test_ASTNodeExpressionBuilder.cpp
+++ b/tests/test_ASTNodeExpressionBuilder.cpp
@@ -5,8 +5,8 @@
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeFunctionEvaluationExpressionBuilder.cpp b/tests/test_ASTNodeFunctionEvaluationExpressionBuilder.cpp
index b0dc7609bac06a46d687f0409f7b18500994e829..ddfae54dede09ee87886d25b335c903524b9a688 100644
--- a/tests/test_ASTNodeFunctionEvaluationExpressionBuilder.cpp
+++ b/tests/test_ASTNodeFunctionEvaluationExpressionBuilder.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeFunctionExpressionBuilder.cpp b/tests/test_ASTNodeFunctionExpressionBuilder.cpp
index 1bf624e6a8bc110fabe80fa8a660d8c3b1fc0d2a..e915888d8b9a0757a173e89da72a1291079d08e0 100644
--- a/tests/test_ASTNodeFunctionExpressionBuilder.cpp
+++ b/tests/test_ASTNodeFunctionExpressionBuilder.cpp
@@ -7,8 +7,8 @@
 #include <language/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
 #include <language/ASTNodeFunctionExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeIncDecExpressionBuilder.cpp b/tests/test_ASTNodeIncDecExpressionBuilder.cpp
index beb59ce2a1c70dd185998052809379606fc8dc8c..845b9f98798733b1b86ca492a48d2005a9596f63 100644
--- a/tests/test_ASTNodeIncDecExpressionBuilder.cpp
+++ b/tests/test_ASTNodeIncDecExpressionBuilder.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeIncDecExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeListAffectationExpressionBuilder.cpp b/tests/test_ASTNodeListAffectationExpressionBuilder.cpp
index bcb91c9340ffe163d872ac184bb1160aee3ead4d..a35ea34a7b2a2813a96acffce462e6fe31ad06c6 100644
--- a/tests/test_ASTNodeListAffectationExpressionBuilder.cpp
+++ b/tests/test_ASTNodeListAffectationExpressionBuilder.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeListAffectationExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeTypeCleaner.cpp b/tests/test_ASTNodeTypeCleaner.cpp
index d899878769ab04002153e6ab4b31618f74d0b935..0a02111bc9660649984d7dbecc602cd6e1a3e47e 100644
--- a/tests/test_ASTNodeTypeCleaner.cpp
+++ b/tests/test_ASTNodeTypeCleaner.cpp
@@ -3,8 +3,8 @@
 #include <language/ASTBuilder.hpp>
 #include <language/ASTNodeDataTypeBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 
 #define CHECK_AST(data, expected_output)                                                       \
   {                                                                                            \
diff --git a/tests/test_ASTNodeUnaryOperatorExpressionBuilder.cpp b/tests/test_ASTNodeUnaryOperatorExpressionBuilder.cpp
index e215f77da85626000285fe4a3adf31068f7b5331..f89c58f0e3a3bec2ebe8d15280b02ce10cbb0a09 100644
--- a/tests/test_ASTNodeUnaryOperatorExpressionBuilder.cpp
+++ b/tests/test_ASTNodeUnaryOperatorExpressionBuilder.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
 #include <language/ASTNodeUnaryOperatorExpressionBuilder.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTPrinter.cpp b/tests/test_ASTPrinter.cpp
index 34203e49a404b9c739021e128fdeecf872f9a22b..debd85edc836fb871b7316f94b1d6a175128dfd9 100644
--- a/tests/test_ASTPrinter.cpp
+++ b/tests/test_ASTPrinter.cpp
@@ -2,7 +2,7 @@
 #include <catch2/catch.hpp>
 
 #include <language/ASTBuilder.hpp>
-#include <language/ASTPrinter.hpp>
+#include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_AffectationProcessor.cpp b/tests/test_AffectationProcessor.cpp
index 9da8e5b11e4da14cd5fa5b8d33032913b7d9b100..a604644483ff01f99ebfe69bb07f5bfe9abbd95b 100644
--- a/tests/test_AffectationProcessor.cpp
+++ b/tests/test_AffectationProcessor.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_AffectationToStringProcessor.cpp b/tests/test_AffectationToStringProcessor.cpp
index 33a1866c4ff3bda2a387b5df359dd2f541269425..4a6e0837e0af5c6461077b6f478656b3b35053fe 100644
--- a/tests/test_AffectationToStringProcessor.cpp
+++ b/tests/test_AffectationToStringProcessor.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ArraySubscriptProcessor.cpp b/tests/test_ArraySubscriptProcessor.cpp
index 539308e9ae3302ac3fffa730a0b4ebd4e3e33627..1ce9a5fff3498e20766051030c308fa7f2ce665b 100644
--- a/tests/test_ArraySubscriptProcessor.cpp
+++ b/tests/test_ArraySubscriptProcessor.cpp
@@ -7,8 +7,8 @@
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_BuiltinFunctionEmbedder.cpp b/tests/test_BuiltinFunctionEmbedder.cpp
index dc8ff9081a42831d86c96ddebc264453b4c730a8..f5172381c23409e416df26221f969f23bb40d2e5 100644
--- a/tests/test_BuiltinFunctionEmbedder.cpp
+++ b/tests/test_BuiltinFunctionEmbedder.cpp
@@ -1,6 +1,6 @@
 #include <catch2/catch.hpp>
 
-#include <language/BuiltinFunctionEmbedder.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 
 // clazy:excludeall=non-pod-global-static
 
diff --git a/tests/test_BuiltinFunctionEmbedderTable.cpp b/tests/test_BuiltinFunctionEmbedderTable.cpp
index 2b14e92434a7a7497e5bf18ab81f2e5df63a049b..1388f97c2a4d043ff6f2246c6c003493c0a4acc0 100644
--- a/tests/test_BuiltinFunctionEmbedderTable.cpp
+++ b/tests/test_BuiltinFunctionEmbedderTable.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
-#include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/EmbedderTable.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 
 // clazy:excludeall=non-pod-global-static
 
diff --git a/tests/test_ConcatExpressionProcessor.cpp b/tests/test_ConcatExpressionProcessor.cpp
index ac8a2f94406b670631ab548d0305c91563a7a4ae..358aa46c616cb812c19ccce9ed0576dc5e11b655 100644
--- a/tests/test_ConcatExpressionProcessor.cpp
+++ b/tests/test_ConcatExpressionProcessor.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_DoWhileProcessor.cpp b/tests/test_DoWhileProcessor.cpp
index 228b38a6e92517ada281aab4093e89d90a09c150..1ee60e1edb56147f11af9ba4268a78a1088d079a 100644
--- a/tests/test_DoWhileProcessor.cpp
+++ b/tests/test_DoWhileProcessor.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ForProcessor.cpp b/tests/test_ForProcessor.cpp
index 115d22c033467299808119190244f29216130309..cb4166423d5d7bc5554c280dca19288e8cb6af86 100644
--- a/tests/test_ForProcessor.cpp
+++ b/tests/test_ForProcessor.cpp
@@ -6,8 +6,8 @@
 #include <language/ASTNodeDeclarationToAffectationConverter.hpp>
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTPrinter.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
+#include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_MathModule.cpp b/tests/test_MathModule.cpp
index ae3db9dc5658569582c478919ddd61060a7d8e8f..15cb845c48c90c525a06996a4065be8ff556c9c0 100644
--- a/tests/test_MathModule.cpp
+++ b/tests/test_MathModule.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
-#include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/modules/MathModule.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 
 // clazy:excludeall=non-pod-global-static
 
diff --git a/tests/test_SymbolTable.cpp b/tests/test_SymbolTable.cpp
index 91154367855f678d82a20ddb57787cd73007f62b..e8e6a82100c140c4f74f9cf162a55180f44f0a6a 100644
--- a/tests/test_SymbolTable.cpp
+++ b/tests/test_SymbolTable.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
-#include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/utils/BuiltinFunctionEmbedder.hpp>
 
 #include <pegtl/internal/iterator.hpp>