diff --git a/.gitignore b/.gitignore
index bdd309236bc3f2fced27b5046ca82a89fe9177d5..c5045f3562d2db78a4111ef0c1a7dd19e5ca9aa3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
 /Release
 /Testing
 /Documentation/html/
+/Documentation/output_snippets/
 /CMakeLists.txt.user
 /Build
 /coverage_report
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a9e00e3141dfd53949ddbaf2dc34faa50d22ee44..b41f04d546b5b0992bc45befa34fc16db0abaf81 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,6 +12,7 @@ before_script:
 # same job.
 stages:
     - build
+    - doc_build
     - deploy
 
 # default flags for cmake
@@ -134,6 +135,10 @@ cuda_examples_Debug:
         WITH_CUDA: "yes"
         BUILD_TYPE: Debug
         WITH_EXAMPLES: "yes"
+    # store output snippets for documentation
+    artifacts:
+        paths:
+            - Documentation/output_snippets/
 
 cuda_examples_Release:
     <<: *build_template
@@ -398,12 +403,15 @@ mpi_benchmarks_tools_python_Release:
 
 
 build documentation:
-    stage: build
+    stage: doc_build
     only:
         changes:
             - Documentation/**/*
             - src/TNL/**/*.{h,hpp}
             - .gitlab-ci.yml
+    dependencies:
+        # the job which builds Documentation/output_snippets/
+        - cuda_examples_Debug
     script:
         - ./Documentation/build
     artifacts:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c929bfcfb0e77270daf199e2435867fec1a566c6..9540fe0028c4647db0e16cb7c7864c119772c2fd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -316,20 +316,12 @@ LINK_DIRECTORIES( ${LIBRARY_OUTPUT_PATH} )
 add_subdirectory( src )
 add_subdirectory( share )
 
-# FIXME !!!
-#Check for Doxygen
-#if( ${WITH_DOC} )
-#    find_package(Doxygen)
-#    if( DOXYGEN_FOUND )
-#        if( CMAKE_BUILD_TYPE MATCHES "Release" )
-#            add_subdirectory( Documentation/Tutorials )
-#        endif( CMAKE_BUILD_TYPE MATCHES "Release" )
-#    else( DOXYGEN_FOUND )
-#        message("Doxygen need to be installed to generate the doxygen documentation")
-#    endif( DOXYGEN_FOUND )
-#endif( ${WITH_DOC} )
-if( ${WITH_EXAMPLES} )
-    add_subdirectory( Documentation/Tutorials )
+# Add subdirectories for examples included in the documentation
+if( ${WITH_DOC} OR ${WITH_EXAMPLES} )
+   set( TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH "${CMAKE_SOURCE_DIR}/Documentation/output_snippets" )
+   file(MAKE_DIRECTORY ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH})
+   add_subdirectory( Documentation/Examples )
+   add_subdirectory( Documentation/Tutorials )
 endif()
 
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Template Numerical Library")
diff --git a/Documentation/Doxyfile b/Documentation/Doxyfile
index 22f50041a0f475c67e1e0febd48ff5dfe2d07f7c..d3ed00ba44073065b01d3c3631a444126a905b2c 100644
--- a/Documentation/Doxyfile
+++ b/Documentation/Doxyfile
@@ -744,7 +744,7 @@ WARNINGS               = YES
 # will automatically be disabled.
 # The default value is: YES.
 
-WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_UNDOCUMENTED   = NO
 
 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
 # potential errors in the documentation, such as not documenting some parameters
@@ -923,11 +923,9 @@ EXCLUDE_SYMBOLS += TNL::Assert::*  # internal namespace
 # that contain example code fragments that are included (see the \include
 # command).
 
-EXAMPLE_PATH += ../src/Examples
+EXAMPLE_PATH += Examples
 EXAMPLE_PATH += Tutorials
-# directories for output snippets
-EXAMPLE_PATH += ../Release/Documentation/Tutorials
-EXAMPLE_PATH += ../Debug/Documentation/Tutorials
+EXAMPLE_PATH += output_snippets
 
 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
diff --git a/Documentation/Examples/CMakeLists.txt b/Documentation/Examples/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..817e04398031009b1485679d6585dc6221ef9d36
--- /dev/null
+++ b/Documentation/Examples/CMakeLists.txt
@@ -0,0 +1,76 @@
+ADD_SUBDIRECTORY( Containers )
+
+ADD_EXECUTABLE( FileExample FileExample.cpp )
+ADD_CUSTOM_COMMAND( COMMAND FileExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/FileExample.out OUTPUT FileExample.out )
+
+IF( BUILD_CUDA )
+   CUDA_ADD_EXECUTABLE(FileExampleCuda FileExampleCuda.cu)
+   ADD_CUSTOM_COMMAND( COMMAND FileExampleCuda > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/FileExampleCuda.out OUTPUT FileExampleCuda.out )
+ENDIF()
+
+ADD_EXECUTABLE( FileExampleSaveAndLoad FileExampleSaveAndLoad.cpp )
+ADD_CUSTOM_COMMAND( COMMAND FileExampleSaveAndLoad > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/FileExampleSaveAndLoad.out OUTPUT FileExampleSaveAndLoad.out )
+
+ADD_EXECUTABLE( FileNameExample FileNameExample.cpp )
+ADD_CUSTOM_COMMAND( COMMAND FileNameExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/FileNameExample.out OUTPUT FileNameExample.out )
+
+ADD_EXECUTABLE( FileNameExampleDistributedSystemNodeCoordinates FileNameExampleDistributedSystemNodeCoordinates.cpp )
+ADD_CUSTOM_COMMAND( COMMAND FileNameExampleDistributedSystemNodeCoordinates > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/FileNameExampleDistributedSystemNodeCoordinates.out OUTPUT FileNameExampleDistributedSystemNodeCoordinates.out )
+
+
+ADD_EXECUTABLE( FileNameExampleDistributedSystemNodeId FileNameExampleDistributedSystemNodeId.cpp )
+ADD_CUSTOM_COMMAND( COMMAND FileNameExampleDistributedSystemNodeId > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/FileNameExampleDistributedSystemNodeId.out OUTPUT FileNameExampleDistributedSystemNodeId.out )
+
+ADD_EXECUTABLE( ObjectExample_getType ObjectExample_getType.cpp )
+ADD_CUSTOM_COMMAND( COMMAND ObjectExample_getType > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ObjectExample_getType.out OUTPUT ObjectExample_getType.out )
+
+ADD_EXECUTABLE( ParameterContainerExample ParameterContainerExample.cpp )
+
+ADD_EXECUTABLE( ParseObjectTypeExample ParseObjectTypeExample.cpp )
+ADD_CUSTOM_COMMAND( COMMAND ParseObjectTypeExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ParseObjectTypeExample.out OUTPUT ParseObjectTypeExample.out )
+
+ADD_EXECUTABLE( StringExample StringExample.cpp )
+ADD_CUSTOM_COMMAND( COMMAND StringExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/StringExample.out OUTPUT StringExample.out )
+
+ADD_EXECUTABLE( StringExampleGetAllocatedSize StringExampleGetAllocatedSize.cpp )
+ADD_CUSTOM_COMMAND( COMMAND StringExampleGetAllocatedSize > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/StringExampleGetAllocatedSize.out OUTPUT StringExampleGetAllocatedSize.out )
+
+ADD_EXECUTABLE( StringExampleReplace StringExampleReplace.cpp )
+ADD_CUSTOM_COMMAND( COMMAND StringExampleReplace > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/StringExampleReplace.out OUTPUT StringExampleReplace.out )
+
+ADD_EXECUTABLE( StringExampleSetSize StringExampleSetSize.cpp )
+ADD_CUSTOM_COMMAND( COMMAND StringExampleSetSize > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/StringExampleSetSize.out OUTPUT StringExampleSetSize.out )
+
+ADD_EXECUTABLE( StringExampleSplit StringExampleSplit.cpp )
+ADD_CUSTOM_COMMAND( COMMAND StringExampleSplit > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/StringExampleSplit.out OUTPUT StringExampleSplit.out )
+
+ADD_EXECUTABLE( StringExampleStrip StringExampleStrip.cpp )
+ADD_CUSTOM_COMMAND( COMMAND StringExampleStrip > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/StringExampleStrip.out OUTPUT StringExampleStrip.out )
+
+ADD_EXECUTABLE( TimerExample TimerExample.cpp )
+ADD_CUSTOM_COMMAND( COMMAND TimerExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/TimerExample.out OUTPUT TimerExample.out )
+
+ADD_EXECUTABLE( TimerExampleLogger TimerExampleLogger.cpp )
+ADD_CUSTOM_COMMAND( COMMAND TimerExampleLogger > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/TimerExampleLogger.out OUTPUT TimerExampleLogger.out )
+
+
+ADD_CUSTOM_TARGET( RunExamples ALL DEPENDS
+   FileExample.out
+   FileExampleSaveAndLoad.out
+   FileNameExample.out
+   FileNameExampleDistributedSystemNodeCoordinates.out
+   FileNameExampleDistributedSystemNodeId.out
+   ObjectExample_getType.out
+   ParseObjectTypeExample.out
+   StringExample.out
+   StringExampleGetAllocatedSize.out
+   StringExampleReplace.out
+   StringExampleSplit.out
+   StringExampleStrip.out
+   TimerExample.out
+   TimerExampleLogger.out )
+
+if( BUILD_CUDA )
+   ADD_CUSTOM_TARGET( RunExamples-cuda ALL DEPENDS
+      FileExampleCuda.out )
+ENDIF()
diff --git a/src/Examples/Containers/ArrayExample.cpp b/Documentation/Examples/Containers/ArrayExample.cpp
similarity index 100%
rename from src/Examples/Containers/ArrayExample.cpp
rename to Documentation/Examples/Containers/ArrayExample.cpp
diff --git a/src/Examples/Containers/ArrayExample.cu b/Documentation/Examples/Containers/ArrayExample.cu
similarity index 100%
rename from src/Examples/Containers/ArrayExample.cu
rename to Documentation/Examples/Containers/ArrayExample.cu
diff --git a/src/Examples/Containers/ArrayViewExample.cpp b/Documentation/Examples/Containers/ArrayViewExample.cpp
similarity index 100%
rename from src/Examples/Containers/ArrayViewExample.cpp
rename to Documentation/Examples/Containers/ArrayViewExample.cpp
diff --git a/src/Examples/Containers/ArrayViewExample.cu b/Documentation/Examples/Containers/ArrayViewExample.cu
similarity index 100%
rename from src/Examples/Containers/ArrayViewExample.cu
rename to Documentation/Examples/Containers/ArrayViewExample.cu
diff --git a/Documentation/Examples/Containers/CMakeLists.txt b/Documentation/Examples/Containers/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..288c99d73c35a8d29a0bcf5d5667cb45f395b2ff
--- /dev/null
+++ b/Documentation/Examples/Containers/CMakeLists.txt
@@ -0,0 +1,28 @@
+IF( BUILD_CUDA )
+   CUDA_ADD_EXECUTABLE( ArrayExampleCuda ArrayExample.cu )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayExampleCuda > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayExample.out OUTPUT ArrayExample.out )
+ELSE()
+   ADD_EXECUTABLE( ArrayExample ArrayExample.cpp )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayExample.out OUTPUT ArrayExample.out )
+ENDIF()
+
+IF( BUILD_CUDA )
+   CUDA_ADD_EXECUTABLE( ArrayViewExampleCuda ArrayViewExample.cu )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayViewExampleCuda > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayViewExample.out OUTPUT ArrayViewExample.out )
+ELSE()
+   ADD_EXECUTABLE( ArrayViewExample ArrayViewExample.cpp )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayViewExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayViewExample.out OUTPUT ArrayViewExample.out )
+ENDIF()
+
+ADD_EXECUTABLE( VectorExample VectorExample.cpp )
+
+
+IF( BUILD_CUDA )
+ADD_CUSTOM_TARGET( RunContainersExamples-cuda ALL DEPENDS
+   ArrayExample.out
+   ArrayViewExample.out )
+ELSE()
+ADD_CUSTOM_TARGET( RunContainersExamples ALL DEPENDS
+   ArrayExample.out
+   ArrayViewExample.out )
+ENDIF()
diff --git a/src/Examples/VectorExample.cpp b/Documentation/Examples/Containers/VectorExample.cpp
similarity index 100%
rename from src/Examples/VectorExample.cpp
rename to Documentation/Examples/Containers/VectorExample.cpp
diff --git a/src/Examples/FileExample.cpp b/Documentation/Examples/FileExample.cpp
similarity index 100%
rename from src/Examples/FileExample.cpp
rename to Documentation/Examples/FileExample.cpp
diff --git a/src/Examples/FileExampleCuda.cpp b/Documentation/Examples/FileExampleCuda.cpp
similarity index 100%
rename from src/Examples/FileExampleCuda.cpp
rename to Documentation/Examples/FileExampleCuda.cpp
diff --git a/src/Examples/FileExampleCuda.cu b/Documentation/Examples/FileExampleCuda.cu
similarity index 100%
rename from src/Examples/FileExampleCuda.cu
rename to Documentation/Examples/FileExampleCuda.cu
diff --git a/src/Examples/FileExampleSaveAndLoad.cpp b/Documentation/Examples/FileExampleSaveAndLoad.cpp
similarity index 100%
rename from src/Examples/FileExampleSaveAndLoad.cpp
rename to Documentation/Examples/FileExampleSaveAndLoad.cpp
diff --git a/src/Examples/FileNameExample.cpp b/Documentation/Examples/FileNameExample.cpp
similarity index 100%
rename from src/Examples/FileNameExample.cpp
rename to Documentation/Examples/FileNameExample.cpp
diff --git a/src/Examples/FileNameExampleDistributedSystemNodeCoordinates.cpp b/Documentation/Examples/FileNameExampleDistributedSystemNodeCoordinates.cpp
similarity index 100%
rename from src/Examples/FileNameExampleDistributedSystemNodeCoordinates.cpp
rename to Documentation/Examples/FileNameExampleDistributedSystemNodeCoordinates.cpp
diff --git a/src/Examples/FileNameExampleDistributedSystemNodeId.cpp b/Documentation/Examples/FileNameExampleDistributedSystemNodeId.cpp
similarity index 100%
rename from src/Examples/FileNameExampleDistributedSystemNodeId.cpp
rename to Documentation/Examples/FileNameExampleDistributedSystemNodeId.cpp
diff --git a/src/Examples/ObjectExample_getType.cpp b/Documentation/Examples/ObjectExample_getType.cpp
similarity index 100%
rename from src/Examples/ObjectExample_getType.cpp
rename to Documentation/Examples/ObjectExample_getType.cpp
diff --git a/src/Examples/ParameterContainerExample.cpp b/Documentation/Examples/ParameterContainerExample.cpp
similarity index 100%
rename from src/Examples/ParameterContainerExample.cpp
rename to Documentation/Examples/ParameterContainerExample.cpp
diff --git a/src/Examples/ParseObjectTypeExample.cpp b/Documentation/Examples/ParseObjectTypeExample.cpp
similarity index 100%
rename from src/Examples/ParseObjectTypeExample.cpp
rename to Documentation/Examples/ParseObjectTypeExample.cpp
diff --git a/src/Examples/StringExample.cpp b/Documentation/Examples/StringExample.cpp
similarity index 100%
rename from src/Examples/StringExample.cpp
rename to Documentation/Examples/StringExample.cpp
diff --git a/src/Examples/StringExampleGetAllocatedSize.cpp b/Documentation/Examples/StringExampleGetAllocatedSize.cpp
similarity index 100%
rename from src/Examples/StringExampleGetAllocatedSize.cpp
rename to Documentation/Examples/StringExampleGetAllocatedSize.cpp
diff --git a/src/Examples/StringExampleReplace.cpp b/Documentation/Examples/StringExampleReplace.cpp
similarity index 100%
rename from src/Examples/StringExampleReplace.cpp
rename to Documentation/Examples/StringExampleReplace.cpp
diff --git a/src/Examples/StringExampleSetSize.cpp b/Documentation/Examples/StringExampleSetSize.cpp
similarity index 100%
rename from src/Examples/StringExampleSetSize.cpp
rename to Documentation/Examples/StringExampleSetSize.cpp
diff --git a/src/Examples/StringExampleSplit.cpp b/Documentation/Examples/StringExampleSplit.cpp
similarity index 100%
rename from src/Examples/StringExampleSplit.cpp
rename to Documentation/Examples/StringExampleSplit.cpp
diff --git a/src/Examples/StringExampleStrip.cpp b/Documentation/Examples/StringExampleStrip.cpp
similarity index 100%
rename from src/Examples/StringExampleStrip.cpp
rename to Documentation/Examples/StringExampleStrip.cpp
diff --git a/src/Examples/TimerExample.cpp b/Documentation/Examples/TimerExample.cpp
similarity index 100%
rename from src/Examples/TimerExample.cpp
rename to Documentation/Examples/TimerExample.cpp
diff --git a/src/Examples/TimerExampleLogger.cpp b/Documentation/Examples/TimerExampleLogger.cpp
similarity index 100%
rename from src/Examples/TimerExampleLogger.cpp
rename to Documentation/Examples/TimerExampleLogger.cpp
diff --git a/Documentation/Tutorials/Arrays/CMakeLists.txt b/Documentation/Tutorials/Arrays/CMakeLists.txt
index a536a768e178489ccc9796c3b02645158ed6e0ed..8377557cb0eb3446a0e65ad9dfcd27942eba0397 100644
--- a/Documentation/Tutorials/Arrays/CMakeLists.txt
+++ b/Documentation/Tutorials/Arrays/CMakeLists.txt
@@ -1,26 +1,26 @@
 IF( BUILD_CUDA )
    CUDA_ADD_EXECUTABLE( ArrayAllocation ArrayAllocation.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayAllocation > ArrayAllocation.out OUTPUT ArrayAllocation.out )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayAllocation > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayAllocation.out OUTPUT ArrayAllocation.out )
    CUDA_ADD_EXECUTABLE( ArrayBinding-1 ArrayBinding-1.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayBinding-1 > ArrayBinding-1.out OUTPUT ArrayBinding-1.out )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayBinding-1 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayBinding-1.out OUTPUT ArrayBinding-1.out )
    CUDA_ADD_EXECUTABLE( ArrayBinding-2 ArrayBinding-2.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayBinding-2 > ArrayBinding-2.out OUTPUT ArrayBinding-2.out )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayBinding-2 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayBinding-2.out OUTPUT ArrayBinding-2.out )
    CUDA_ADD_EXECUTABLE( ArrayBinding-3 ArrayBinding-3.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayBinding-3 > ArrayBinding-3.out OUTPUT ArrayBinding-3.out )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayBinding-3 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayBinding-3.out OUTPUT ArrayBinding-3.out )
    CUDA_ADD_EXECUTABLE( ArrayIO ArrayIO.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayIO > ArrayIO.out OUTPUT ArrayIO.out )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayIO > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayIO.out OUTPUT ArrayIO.out )
    CUDA_ADD_EXECUTABLE( ArrayView-1 ArrayView-1.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayView-1 > ArrayView-1.out OUTPUT ArrayView-1.out )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayView-1 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayView-1.out OUTPUT ArrayView-1.out )
    CUDA_ADD_EXECUTABLE( ArrayView-2 ArrayView-2.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayView-2 > ArrayView-2.out OUTPUT ArrayView-2.out )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayView-2 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayView-2.out OUTPUT ArrayView-2.out )
    CUDA_ADD_EXECUTABLE( ArrayViewEvaluate ArrayViewEvaluate.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayViewEvaluate > ArrayViewEvaluate.out OUTPUT ArrayViewEvaluate.out )
+   ADD_CUSTOM_COMMAND( COMMAND ArrayViewEvaluate > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ArrayViewEvaluate.out OUTPUT ArrayViewEvaluate.out )
    CUDA_ADD_EXECUTABLE( ContainsValue ContainsValue.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ContainsValue > ContainsValue.out OUTPUT ContainsValue.out )
+   ADD_CUSTOM_COMMAND( COMMAND ContainsValue > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ContainsValue.out OUTPUT ContainsValue.out )
    CUDA_ADD_EXECUTABLE( ElementsAccessing-1 ElementsAccessing-1.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ElementsAccessing-1 > ElementsAccessing-1.out OUTPUT ElementsAccessing-1.out )
+   ADD_CUSTOM_COMMAND( COMMAND ElementsAccessing-1 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ElementsAccessing-1.out OUTPUT ElementsAccessing-1.out )
    CUDA_ADD_EXECUTABLE( ElementsAccessing-2 ElementsAccessing-2.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ElementsAccessing-2 > ElementsAccessing-2.out OUTPUT ElementsAccessing-2.out )
+   ADD_CUSTOM_COMMAND( COMMAND ElementsAccessing-2 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ElementsAccessing-2.out OUTPUT ElementsAccessing-2.out )
 ENDIF()
 
 IF( BUILD_CUDA )
diff --git a/Documentation/Tutorials/Reduction/CMakeLists.txt b/Documentation/Tutorials/Reduction/CMakeLists.txt
index 0d6558bea85a735c9700f74a482c75ed897ffad8..d57bbe3a8656c84234b85cdce3113acdacca9e11 100644
--- a/Documentation/Tutorials/Reduction/CMakeLists.txt
+++ b/Documentation/Tutorials/Reduction/CMakeLists.txt
@@ -1,24 +1,25 @@
 IF( BUILD_CUDA )
    CUDA_ADD_EXECUTABLE( SumExample SumExample.cu )
-   ADD_CUSTOM_COMMAND( COMMAND SumExample > SumExample.out OUTPUT SumExample.out )
+   ADD_CUSTOM_COMMAND( COMMAND SumExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/SumExample.out OUTPUT SumExample.out )
    CUDA_ADD_EXECUTABLE( ProductExample ProductExample.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ProductExample > ProductExample.out OUTPUT ProductExample.out )
+   ADD_CUSTOM_COMMAND( COMMAND ProductExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ProductExample.out OUTPUT ProductExample.out )
    CUDA_ADD_EXECUTABLE( ScalarProductExample ScalarProductExample.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ScalarProductExample > ScalarProductExample.out OUTPUT ScalarProductExample.out )
+   ADD_CUSTOM_COMMAND( COMMAND ScalarProductExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ScalarProductExample.out OUTPUT ScalarProductExample.out )
    CUDA_ADD_EXECUTABLE( MaximumNormExample MaximumNormExample.cu )
-   ADD_CUSTOM_COMMAND( COMMAND MaximumNormExample > MaximumNormExample.out OUTPUT MaximumNormExample.out )
+   ADD_CUSTOM_COMMAND( COMMAND MaximumNormExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/MaximumNormExample.out OUTPUT MaximumNormExample.out )
    CUDA_ADD_EXECUTABLE( ComparisonExample ComparisonExample.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ComparisonExample > ComparisonExample.out OUTPUT ComparisonExample.out )
+   ADD_CUSTOM_COMMAND( COMMAND ComparisonExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ComparisonExample.out OUTPUT ComparisonExample.out )
    CUDA_ADD_EXECUTABLE( UpdateAndResidueExample UpdateAndResidueExample.cu )
-   ADD_CUSTOM_COMMAND( COMMAND UpdateAndResidueExample > UpdateAndResidueExample.out OUTPUT UpdateAndResidueExample.out )
-   CUDA_ADD_EXECUTABLE( MapReduceExample-1 MapReduceExample-1.cu )
-   ADD_CUSTOM_COMMAND( COMMAND MapReduceExample-1 > MapReduceExample-1.out OUTPUT MapReduceExample-1.out )
-   CUDA_ADD_EXECUTABLE( MapReduceExample-2 MapReduceExample-2.cu )
-   ADD_CUSTOM_COMMAND( COMMAND MapReduceExample-2 > MapReduceExample-2.out OUTPUT MapReduceExample-2.out )
-   CUDA_ADD_EXECUTABLE( MapReduceExample-3 MapReduceExample-3.cu )
-   ADD_CUSTOM_COMMAND( COMMAND MapReduceExample-3 > MapReduceExample-3.out OUTPUT MapReduceExample-3.out )
-   CUDA_ADD_EXECUTABLE( ReductionWithArgument ReductionWithArgument.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ReductionWithArgument > ReductionWithArgument.out OUTPUT ReductionWithArgument.out )
+   ADD_CUSTOM_COMMAND( COMMAND UpdateAndResidueExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/UpdateAndResidueExample.out OUTPUT UpdateAndResidueExample.out )
+   # FIXME
+#   CUDA_ADD_EXECUTABLE( MapReduceExample-1 MapReduceExample-1.cu )
+#   ADD_CUSTOM_COMMAND( COMMAND MapReduceExample-1 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/MapReduceExample-1.out OUTPUT MapReduceExample-1.out )
+#   CUDA_ADD_EXECUTABLE( MapReduceExample-2 MapReduceExample-2.cu )
+#   ADD_CUSTOM_COMMAND( COMMAND MapReduceExample-2 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/MapReduceExample-2.out OUTPUT MapReduceExample-2.out )
+#   CUDA_ADD_EXECUTABLE( MapReduceExample-3 MapReduceExample-3.cu )
+#   ADD_CUSTOM_COMMAND( COMMAND MapReduceExample-3 > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/MapReduceExample-3.out OUTPUT MapReduceExample-3.out )
+#   CUDA_ADD_EXECUTABLE( ReductionWithArgument ReductionWithArgument.cu )
+#   ADD_CUSTOM_COMMAND( COMMAND ReductionWithArgument > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ReductionWithArgument.out OUTPUT ReductionWithArgument.out )
 ENDIF()
 
 IF( BUILD_CUDA )
@@ -26,11 +27,12 @@ ADD_CUSTOM_TARGET( TutorialsReduction-cuda ALL DEPENDS
    SumExample.out
    ProductExample.out
    ScalarProductExample.out
-   MaximumNormExample.out 
+   MaximumNormExample.out
    ComparisonExample.out
-   UpdateAndResidueExample.out
-   MapReduceExample-1.out
-   MapReduceExample-2.out
-   MapReduceExample-3.out
-   ReductionWithArgument.out )
+   UpdateAndResidueExample.out )
+   # FIXME
+#   MapReduceExample-1.out
+#   MapReduceExample-2.out
+#   MapReduceExample-3.out
+#   ReductionWithArgument.out )
 ENDIF()
diff --git a/Documentation/Tutorials/Vectors/CMakeLists.txt b/Documentation/Tutorials/Vectors/CMakeLists.txt
index cef18f404004e6b87dd1626a4ed3b35cba462a94..36173373ab9c62a54f160bc07bfe2589bf8df4e6 100644
--- a/Documentation/Tutorials/Vectors/CMakeLists.txt
+++ b/Documentation/Tutorials/Vectors/CMakeLists.txt
@@ -1,8 +1,8 @@
 IF( BUILD_CUDA )
    CUDA_ADD_EXECUTABLE( Expressions Expressions.cu )
-   ADD_CUSTOM_COMMAND( COMMAND Expressions > Expressions.out OUTPUT Expressions.out )
+   ADD_CUSTOM_COMMAND( COMMAND Expressions > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/Expressions.out OUTPUT Expressions.out )
    CUDA_ADD_EXECUTABLE( Reduction Reduction.cu )
-   ADD_CUSTOM_COMMAND( COMMAND Reduction > Reduction.out OUTPUT Reduction.out )
+   ADD_CUSTOM_COMMAND( COMMAND Reduction > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/Reduction.out OUTPUT Reduction.out )
 ENDIF()
 
 IF( BUILD_CUDA )
diff --git a/src/Examples/CMakeLists.txt b/src/Examples/CMakeLists.txt
index 2d46b24465629193ff505257561e974f8fa55a4a..4038095719828aed5da45f9b62da30ac120d74cd 100644
--- a/src/Examples/CMakeLists.txt
+++ b/src/Examples/CMakeLists.txt
@@ -1,5 +1,3 @@
-ADD_SUBDIRECTORY( Containers )
-
 add_subdirectory( simple-examples )
 add_subdirectory( heat-equation )
 add_subdirectory( transport-equation )
@@ -14,83 +12,6 @@ add_subdirectory( flow-vl )
 
 
 ADD_EXECUTABLE( ConfigDescriptionExample ConfigDescriptionExample.cpp )
-
-ADD_EXECUTABLE( FileExample FileExample.cpp )
-ADD_CUSTOM_COMMAND( COMMAND FileExample > FileExample.out OUTPUT FileExample.out )
-
-IF( BUILD_CUDA )
-   CUDA_ADD_EXECUTABLE(FileExampleCuda FileExampleCuda.cu)
-   ADD_CUSTOM_COMMAND( COMMAND FileExampleCuda > FileExampleCuda.out OUTPUT FileExampleCuda.out )
-ENDIF()
-
-ADD_EXECUTABLE( FileExampleSaveAndLoad FileExampleSaveAndLoad.cpp )
-ADD_CUSTOM_COMMAND( COMMAND FileExampleSaveAndLoad > FileExampleSaveAndLoad.out OUTPUT FileExampleSaveAndLoad.out )
-
-ADD_EXECUTABLE( FileNameExample FileNameExample.cpp )
-ADD_CUSTOM_COMMAND( COMMAND FileNameExample > FileNameExample.out OUTPUT FileNameExample.out )
-
-ADD_EXECUTABLE( FileNameExampleDistributedSystemNodeCoordinates FileNameExampleDistributedSystemNodeCoordinates.cpp )
-ADD_CUSTOM_COMMAND( COMMAND FileNameExampleDistributedSystemNodeCoordinates > FileNameExampleDistributedSystemNodeCoordinates.out OUTPUT FileNameExampleDistributedSystemNodeCoordinates.out )
-
-
-ADD_EXECUTABLE( FileNameExampleDistributedSystemNodeId FileNameExampleDistributedSystemNodeId.cpp )
-ADD_CUSTOM_COMMAND( COMMAND FileNameExampleDistributedSystemNodeId > FileNameExampleDistributedSystemNodeId.out OUTPUT FileNameExampleDistributedSystemNodeId.out )
-
 ADD_EXECUTABLE( ListExample ListExample.cpp )
 ADD_EXECUTABLE( LoggerExample LoggerExample.cpp )
 ADD_EXECUTABLE( MathExample MathExample.cpp )
-
-ADD_EXECUTABLE( ObjectExample_getType ObjectExample_getType.cpp )
-ADD_CUSTOM_COMMAND( COMMAND ObjectExample_getType > ObjectExample_getType.out OUTPUT ObjectExample_getType.out )
-
-ADD_EXECUTABLE( ParameterContainerExample ParameterContainerExample.cpp )
-
-ADD_EXECUTABLE( ParseObjectTypeExample ParseObjectTypeExample.cpp )
-ADD_CUSTOM_COMMAND( COMMAND ParseObjectTypeExample > ParseObjectTypeExample.out OUTPUT ParseObjectTypeExample.out )
-
-ADD_EXECUTABLE( StringExample StringExample.cpp )
-ADD_CUSTOM_COMMAND( COMMAND StringExample > StringExample.out OUTPUT StringExample.out )
-
-ADD_EXECUTABLE( StringExampleGetAllocatedSize StringExampleGetAllocatedSize.cpp )
-ADD_CUSTOM_COMMAND( COMMAND StringExampleGetAllocatedSize > StringExampleGetAllocatedSize.out OUTPUT StringExampleGetAllocatedSize.out )
-
-ADD_EXECUTABLE( StringExampleReplace StringExampleReplace.cpp )
-ADD_CUSTOM_COMMAND( COMMAND StringExampleReplace > StringExampleReplace.out OUTPUT StringExampleReplace.out )
-
-ADD_EXECUTABLE( StringExampleSetSize StringExampleSetSize.cpp )
-ADD_CUSTOM_COMMAND( COMMAND StringExampleSetSize > StringExampleSetSize.out OUTPUT StringExampleSetSize.out )
-
-ADD_EXECUTABLE( StringExampleSplit StringExampleSplit.cpp )
-ADD_CUSTOM_COMMAND( COMMAND StringExampleSplit > StringExampleSplit.out OUTPUT StringExampleSplit.out )
-
-ADD_EXECUTABLE( StringExampleStrip StringExampleStrip.cpp )
-ADD_CUSTOM_COMMAND( COMMAND StringExampleStrip > StringExampleStrip.out OUTPUT StringExampleStrip.out )
-
-ADD_EXECUTABLE( TimerExample TimerExample.cpp )
-ADD_CUSTOM_COMMAND( COMMAND TimerExample > TimerExample.out OUTPUT TimerExample.out )
-
-ADD_EXECUTABLE( TimerExampleLogger TimerExampleLogger.cpp )
-ADD_CUSTOM_COMMAND( COMMAND TimerExampleLogger > TimerExampleLogger.out OUTPUT TimerExampleLogger.out )
-
-ADD_EXECUTABLE( VectorExample VectorExample.cpp )
-
-ADD_CUSTOM_TARGET( RunExamples ALL DEPENDS
-   FileExample.out
-   FileExampleSaveAndLoad.out
-   FileNameExample.out
-   FileNameExampleDistributedSystemNodeCoordinates.out
-   FileNameExampleDistributedSystemNodeId.out
-   ObjectExample_getType.out
-   ParseObjectTypeExample.out
-   StringExample.out
-   StringExampleGetAllocatedSize.out
-   StringExampleReplace.out
-   StringExampleSplit.out
-   StringExampleStrip.out
-   TimerExample.out
-   TimerExampleLogger.out )
-
-if( BUILD_CUDA )
-   ADD_CUSTOM_TARGET( RunExamples-cuda ALL DEPENDS
-      FileExampleCuda.out )
-ENDIF()
\ No newline at end of file
diff --git a/src/Examples/Containers/CMakeLists.txt b/src/Examples/Containers/CMakeLists.txt
deleted file mode 100644
index 9b855d93be3b24a54067b3c473e216f59e9baa03..0000000000000000000000000000000000000000
--- a/src/Examples/Containers/CMakeLists.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-IF( BUILD_CUDA )
-   CUDA_ADD_EXECUTABLE( ArrayExampleCuda ArrayExample.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayExampleCuda > ArrayExample.out OUTPUT ArrayExample.out )
-ELSE()
-   ADD_EXECUTABLE( ArrayExample ArrayExample.cpp )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayExample > ArrayExample.out OUTPUT ArrayExample.out )
-ENDIF()
-
-IF( BUILD_CUDA )
-   CUDA_ADD_EXECUTABLE( ArrayViewExampleCuda ArrayViewExample.cu )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayViewExampleCuda > ArrayViewExample.out OUTPUT ArrayViewExample.out )
-ELSE()
-   ADD_EXECUTABLE( ArrayViewExample ArrayViewExample.cpp )
-   ADD_CUSTOM_COMMAND( COMMAND ArrayViewExample > ArrayViewExample.out OUTPUT ArrayViewExample.out )
-ENDIF()
-
-
-IF( BUILD_CUDA )
-ADD_CUSTOM_TARGET( RunContainersExamples-cuda ALL DEPENDS
-   ArrayExample.out
-   ArrayViewExample.out )
-ELSE()
-ADD_CUSTOM_TARGET( RunContainersExamples ALL DEPENDS
-   ArrayExample.out
-   ArrayViewExample.out )
-ENDIF()