diff --git a/CMakeLists.txt b/CMakeLists.txt
index 842a4187b5514e0b994b6c56dfab4c0fc3fc0bab..876318ceded59fd94879c50b75bc4c32ce161a9e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -80,6 +80,10 @@ set(ADIOS_USE_DataMan ${SHARED_LIBS_SUPPORTED})
 
 include(GenerateADIOSConfig)
 GenerateADIOSConfig(MPI BZip2 ADIOS1 HDF5 DataMan)
+install(
+  FILES ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
+)
 
 #------------------------------------------------------------------------------#
 # Third party libraries
diff --git a/cmake/GenerateADIOSConfig.cmake b/cmake/GenerateADIOSConfig.cmake
index 41b5b5ef6c68b4c0ccf826514376bab8d6be9328..914e235ec9404381c42894d0ae5727bd6ccae5ae 100644
--- a/cmake/GenerateADIOSConfig.cmake
+++ b/cmake/GenerateADIOSConfig.cmake
@@ -4,63 +4,45 @@
 #------------------------------------------------------------------------------#
 
 function(GenerateADIOSConfig)
+  configure_file(
+    ${ADIOS_SOURCE_DIR}/source/adios2/ADIOSConfig.h.in
+    ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
+  )
 
-  file(WRITE ${ADIOS_BINARY_DIR}/ADIOSConfig.h
-"/*
- * Distributed under the OSI-approved Apache License, Version 2.0.  See
- * accompanying file Copyright.txt for details.
- */
-
-#ifndef ADIOSCONFIG_H_
-#define ADIOSCONFIG_H_
-
-/* ADIOS Version Information */
-#define ADIOS2_VERSION_MAJOR ${ADIOS_VERSION_MAJOR}
-#define ADIOS2_VERSION_MINOR ${ADIOS_VERSION_MINOR}
-#define ADIOS2_VERSION_PATCH ${ADIOS_VERSION_PATCH}
-#define ADIOS2_VERSION       ${ADIOS_VERSION}
-" )
-
-  file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h "
-/*
- * ADIOS Build Information:
- * 
- * Compiler:
-" )
   foreach(L IN ITEMS C CXX Fortran)
     if(NOT CMAKE_${L}_COMPILER)
       continue()
     endif()
-    file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h
+    file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
       " *   ${L}: ${CMAKE_${L}_COMPILER}\n"
     )
     if(CMAKE_${L}_COMPILER_WRAPPER)
-      file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h
+      file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
         " *    Wrapper: ${CMAKE_${L}_COMPILER_WRAPPER}\n"
       )
     endif()
-    file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h
+    file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
       " *    Id: ${CMAKE_${L}_COMPILER_ID} ${CMAKE_${L}_COMPILER_VERSION}\n"
     )
   endforeach()
-  file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h " */\n")
+  file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h " */\n")
 
   foreach(OPT IN LISTS ARGN)
     string(TOUPPER ${OPT} OPT_UPPER)
-    file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h
+    file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
       "\n/* CMake Option: ADIOS_USE_${OPT}=${ADIOS_USE_${OPT}} */\n"
     )
     if(ADIOS_USE_${OPT})
-      file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h
+      file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
         "#define ADIOS2_HAVE_${OPT_UPPER} 1\n"
       )
     else()
-      file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h
+      file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
         "#undef ADIOS2_HAVE_${OPT_UPPER}\n"
       )
     endif()
   endforeach()
-  file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h
+  file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
     "\n#endif /* ADIOSCONFIG_H_ */\n"
   )
 endfunction()
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 67d28164ffb04fca6dedeaafaa5400e61213fae7..45126c37b91ed42af89c0a846b04cc6cbe3a55ec 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -3,135 +3,13 @@
 # accompanying file Copyright.txt for details.
 #------------------------------------------------------------------------------#
   
-add_library(adios2
-  ADIOS.cpp ADIOS.tcc
-  
-  capsule/heap/STLVector.cpp
-  capsule/shmem/ShmSystemV.cpp
-  
-  core/Capsule.cpp
-  core/Engine.cpp
-  core/Method.cpp
-  core/Support.cpp
-  core/Timer.cpp
-  core/Transform.cpp
-  core/Transport.cpp
-  core/adiosFunctions.cpp
-  
-  engine/bp/BPFileReader.cpp
-  engine/bp/BPFileWriter.cpp
-
-  utilities/format/bp1/BP1Base.cpp
-  utilities/format/bp1/BP1Aggregator.cpp
-  utilities/format/bp1/BP1Writer.cpp
-    
-  transport/file/FStream.cpp
-  transport/file/FileDescriptor.cpp
-  transport/file/FilePointer.cpp
-    
-  utilities/format/bp1/BP1Base.cpp
-  utilities/format/bp1/BP1Aggregator.cpp
-  utilities/format/bp1/BP1Writer.cpp
-  utilities/format/bp1/BP1Writer.tcc
-)
-target_include_directories(adios2
-  PUBLIC
-    $<BUILD_INTERFACE:${ADIOS_BINARY_DIR}>
-    $<INSTALL_INTERFACE:include>
-  PRIVATE ${ADIOS_SOURCE_DIR}/source
-)
-  
 if(ADIOS_USE_DataMan)
-  target_sources(adios2 PRIVATE
-    engine/dataman/DataManReader.cpp
-    engine/dataman/DataManWriter.cpp
-    transport/wan/MdtmMan.cpp
-    utilities/realtime/dataman/DataManBase.cpp
-    utilities/realtime/dataman/DataMan.cpp
-  )
-  target_link_libraries(adios2 PRIVATE ${CMAKE_DL_LIBS})
-endif()
-  
-if(ADIOS_USE_BZip2)
-  find_package(BZip2 REQUIRED)
-  target_sources(adios2 PRIVATE transform/BZip2.cpp)
-  target_link_libraries(adios2 PRIVATE BZip2::BZip2)
-endif()
-
-if(ADIOS_USE_MPI)
-  find_package(MPI COMPONENTS C REQUIRED)
-  target_include_directories(adios2 PUBLIC ${MPI_C_INCLUDE_PATH})
-  target_link_libraries(adios2 PUBLIC ${MPI_C_LIBRARIES})
-else()
-  target_sources(adios2 PRIVATE mpidummy.cpp)
-endif()
-
-if(ADIOS_USE_ADIOS1)
-  if(ADIOS_USE_MPI)
-    find_package(ADIOS1 REQUIRED)
-  else()
-    find_package(ADIOS1 COMPONENTS sequential REQUIRED)
-  endif()
-
-  target_sources(adios2 PRIVATE
-    engine/adios1/ADIOS1Reader.cpp
-    engine/adios1/ADIOS1Writer.cpp
-  )
-  target_link_libraries(adios2 PRIVATE adios1::adios)
-endif()
-
-if(ADIOS_USE_HDF5)
-  find_package(HDF5 REQUIRED)
-  if(ADIOS_USE_MPI AND (NOT HDF5_IS_PARALLEL))
-    message(FATAL_ERROR
-      "A sequential version of HDF5 was detected but the parallel version "
-      "of ADIOS is being built, which requires a parallel HDF5."
-    )
-  elseif((NOT ADIOS_USE_MPI) AND HDF5_IS_PARALLEL)
-    message(FATAL_ERROR
-      "A parallel version of HDF5 was detected but the sequential version "
-      "of ADIOS is being built, which requires a sequential HDF5."
-    )
-  endif()
-
-  target_include_directories(adios2 PRIVATE ${HDF5_INCLUDE_DIRS})
-  target_sources(adios2 PRIVATE
-    engine/hdf5/HDF5ReaderP.cpp
-    engine/hdf5/HDF5WriterP.cpp
-  )
-  target_link_libraries(adios2 PRIVATE ${HDF5_C_LIBRARIES})
+  add_subdirectory(dataman)
 endif()
 
-# Main header when using the build directory
-set(ADIOS_INCLUDE_DIR "${ADIOS_SOURCE_DIR}/source")
-set(ADIOS_CONFIG_DIR "${ADIOS_BINARY_DIR}")
-configure_file(adios2.h.in ${ADIOS_BINARY_DIR}/adios2.h)
+add_subdirectory(adios2)
 
-# Header installation
-set(ADIOS_INCLUDE_DIR "adios2")
-set(ADIOS_CONFIG_DIR "adios2")
-configure_file(adios2.h.in ${ADIOS_BINARY_DIR}/adios2.install.h)
 install(
-  FILES ${ADIOS_BINARY_DIR}/adios2.install.h
+  FILES adios2.h
   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-  RENAME adios2.h
-)
-install(
-  FILES
-    ADIOS.h ADIOS.inl ADIOSMacros.h ADIOS_MPI.h ADIOSTypes.h mpidummy.h
-    ${ADIOS_BINARY_DIR}/ADIOSConfig.h
-  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
-)
-install(
-  DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/core
-  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
-  FILES_MATCHING REGEX "[^/]*\.(h|inl)$"
-)
-
-# Library installation
-install(
-  TARGETS adios2 EXPORT adios2
-  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 )
diff --git a/source/adios2.h b/source/adios2.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b54946eaf8cbe227307a02692420dfa964c8da6
--- /dev/null
+++ b/source/adios2.h
@@ -0,0 +1,16 @@
+/*
+ * Distributed under the OSI-approved Apache License, Version 2.0.  See
+ * accompanying file Copyright.txt for details.
+ */
+
+#ifndef ADIOS2_H_
+#define ADIOS2_H_
+
+#include "adios2/ADIOSConfig.h"
+#include "adios2/ADIOS.h"
+#include "adios2/ADIOSTypes.h"
+#include "adios2/core/Method.h"
+#include "adios2/core/Engine.h"
+#include "adios2/core/Transform.h"
+
+#endif /* ADIOS2_H_ */
diff --git a/source/adios2.h.in b/source/adios2.h.in
deleted file mode 100644
index 6c2a580d8865b9d52045834ccf7d4715f433c15b..0000000000000000000000000000000000000000
--- a/source/adios2.h.in
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Distributed under the OSI-approved Apache License, Version 2.0.  See
- * accompanying file Copyright.txt for details.
- */
-
-#ifndef ADIOS2_H_
-#define ADIOS2_H_
-
-#include "@ADIOS_CONFIG_DIR@/ADIOSConfig.h"
-#include "@ADIOS_INCLUDE_DIR@/ADIOS.h"
-#include "@ADIOS_INCLUDE_DIR@/ADIOSTypes.h"
-#include "@ADIOS_INCLUDE_DIR@/core/Method.h"
-#include "@ADIOS_INCLUDE_DIR@/core/Engine.h"
-#include "@ADIOS_INCLUDE_DIR@/core/Transform.h"
-
-#endif /* ADIOS2_H_ */
diff --git a/source/ADIOS.cpp b/source/adios2/ADIOS.cpp
similarity index 100%
rename from source/ADIOS.cpp
rename to source/adios2/ADIOS.cpp
diff --git a/source/ADIOS.h b/source/adios2/ADIOS.h
similarity index 100%
rename from source/ADIOS.h
rename to source/adios2/ADIOS.h
diff --git a/source/ADIOS.inl b/source/adios2/ADIOS.inl
similarity index 100%
rename from source/ADIOS.inl
rename to source/adios2/ADIOS.inl
diff --git a/source/ADIOS.tcc b/source/adios2/ADIOS.tcc
similarity index 100%
rename from source/ADIOS.tcc
rename to source/adios2/ADIOS.tcc
diff --git a/source/adios2/ADIOSConfig.h.in b/source/adios2/ADIOSConfig.h.in
new file mode 100644
index 0000000000000000000000000000000000000000..90fb88224512276e4446752a9d3853ad5bb39521
--- /dev/null
+++ b/source/adios2/ADIOSConfig.h.in
@@ -0,0 +1,18 @@
+/*
+ * Distributed under the OSI-approved Apache License, Version 2.0.  See
+ * accompanying file Copyright.txt for details.
+ */
+
+#ifndef ADIOSCONFIG_H_
+#define ADIOSCONFIG_H_
+
+/* ADIOS Version Information */
+#define ADIOS2_VERSION_MAJOR @ADIOS_VERSION_MAJOR@
+#define ADIOS2_VERSION_MINOR @ADIOS_VERSION_MINOR@
+#define ADIOS2_VERSION_PATCH @ADIOS_VERSION_PATCH@
+#define ADIOS2_VERSION       @ADIOS_VERSION@
+
+/*
+ * ADIOS Build Information:
+ *
+ * Compiler:
diff --git a/source/ADIOSMacros.h b/source/adios2/ADIOSMacros.h
similarity index 100%
rename from source/ADIOSMacros.h
rename to source/adios2/ADIOSMacros.h
diff --git a/source/ADIOSTypes.h b/source/adios2/ADIOSTypes.h
similarity index 100%
rename from source/ADIOSTypes.h
rename to source/adios2/ADIOSTypes.h
diff --git a/source/ADIOS_MPI.h b/source/adios2/ADIOS_MPI.h
similarity index 100%
rename from source/ADIOS_MPI.h
rename to source/adios2/ADIOS_MPI.h
diff --git a/source/adios2/CMakeLists.txt b/source/adios2/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..36f7d71c6155acd0054fb303c13c713711a13724
--- /dev/null
+++ b/source/adios2/CMakeLists.txt
@@ -0,0 +1,120 @@
+#------------------------------------------------------------------------------#
+# Distributed under the OSI-approved Apache License, Version 2.0.  See
+# accompanying file Copyright.txt for details.
+#------------------------------------------------------------------------------#
+  
+add_library(adios2
+  ADIOS.cpp ADIOS.tcc
+  
+  capsule/heap/STLVector.cpp
+  capsule/shmem/ShmSystemV.cpp
+  
+  core/Capsule.cpp
+  core/Engine.cpp
+  core/Method.cpp
+  core/Support.cpp
+  core/Timer.cpp
+  core/Transform.cpp
+  core/Transport.cpp
+  core/adiosFunctions.cpp
+  
+  engine/bp/BPFileReader.cpp
+  engine/bp/BPFileWriter.cpp
+
+  utilities/format/bp1/BP1Base.cpp
+  utilities/format/bp1/BP1Aggregator.cpp
+  utilities/format/bp1/BP1Writer.cpp
+    
+  transport/file/FStream.cpp
+  transport/file/FileDescriptor.cpp
+  transport/file/FilePointer.cpp
+    
+  utilities/format/bp1/BP1Base.cpp
+  utilities/format/bp1/BP1Aggregator.cpp
+  utilities/format/bp1/BP1Writer.cpp
+  utilities/format/bp1/BP1Writer.tcc
+)
+target_include_directories(adios2
+  PUBLIC
+    $<BUILD_INTERFACE:${ADIOS_BINARY_DIR}>
+    $<INSTALL_INTERFACE:include>
+  PRIVATE ${ADIOS_SOURCE_DIR}/source
+)
+  
+if(ADIOS_USE_DataMan)
+  target_sources(adios2 PRIVATE
+    engine/dataman/DataManReader.cpp
+    engine/dataman/DataManWriter.cpp
+    transport/wan/MdtmMan.cpp
+  )
+  target_link_libraries(adios2 PRIVATE dataman)
+endif()
+  
+if(ADIOS_USE_BZip2)
+  find_package(BZip2 REQUIRED)
+  target_sources(adios2 PRIVATE transform/BZip2.cpp)
+  target_link_libraries(adios2 PRIVATE BZip2::BZip2)
+endif()
+
+if(ADIOS_USE_MPI)
+  find_package(MPI COMPONENTS C REQUIRED)
+  target_include_directories(adios2 PUBLIC ${MPI_C_INCLUDE_PATH})
+  target_link_libraries(adios2 PUBLIC ${MPI_C_LIBRARIES})
+else()
+  target_sources(adios2 PRIVATE mpidummy.cpp)
+endif()
+
+if(ADIOS_USE_ADIOS1)
+  if(ADIOS_USE_MPI)
+    find_package(ADIOS1 REQUIRED)
+  else()
+    find_package(ADIOS1 COMPONENTS sequential REQUIRED)
+  endif()
+
+  target_sources(adios2 PRIVATE
+    engine/adios1/ADIOS1Reader.cpp
+    engine/adios1/ADIOS1Writer.cpp
+  )
+  target_link_libraries(adios2 PRIVATE adios1::adios)
+endif()
+
+if(ADIOS_USE_HDF5)
+  find_package(HDF5 REQUIRED)
+  if(ADIOS_USE_MPI AND (NOT HDF5_IS_PARALLEL))
+    message(FATAL_ERROR
+      "A sequential version of HDF5 was detected but the parallel version "
+      "of ADIOS is being built, which requires a parallel HDF5."
+    )
+  elseif((NOT ADIOS_USE_MPI) AND HDF5_IS_PARALLEL)
+    message(FATAL_ERROR
+      "A parallel version of HDF5 was detected but the sequential version "
+      "of ADIOS is being built, which requires a sequential HDF5."
+    )
+  endif()
+
+  target_include_directories(adios2 PRIVATE ${HDF5_INCLUDE_DIRS})
+  target_sources(adios2 PRIVATE
+    engine/hdf5/HDF5ReaderP.cpp
+    engine/hdf5/HDF5WriterP.cpp
+  )
+  target_link_libraries(adios2 PRIVATE ${HDF5_C_LIBRARIES})
+endif()
+
+install(
+  FILES
+    ADIOS.h ADIOS.inl ADIOSMacros.h ADIOS_MPI.h ADIOSTypes.h mpidummy.h adios2.h
+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
+)
+install(
+  DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/core
+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
+  FILES_MATCHING REGEX "[^/]*\.(h|inl)$"
+)
+
+# Library installation
+install(
+  TARGETS adios2 EXPORT adios2
+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
diff --git a/source/capsule/heap/STLVector.cpp b/source/adios2/capsule/heap/STLVector.cpp
similarity index 100%
rename from source/capsule/heap/STLVector.cpp
rename to source/adios2/capsule/heap/STLVector.cpp
diff --git a/source/capsule/heap/STLVector.h b/source/adios2/capsule/heap/STLVector.h
similarity index 100%
rename from source/capsule/heap/STLVector.h
rename to source/adios2/capsule/heap/STLVector.h
diff --git a/source/capsule/shmem/ShmSystemV.cpp b/source/adios2/capsule/shmem/ShmSystemV.cpp
similarity index 100%
rename from source/capsule/shmem/ShmSystemV.cpp
rename to source/adios2/capsule/shmem/ShmSystemV.cpp
diff --git a/source/capsule/shmem/ShmSystemV.h b/source/adios2/capsule/shmem/ShmSystemV.h
similarity index 100%
rename from source/capsule/shmem/ShmSystemV.h
rename to source/adios2/capsule/shmem/ShmSystemV.h
diff --git a/source/core/Attribute.h b/source/adios2/core/Attribute.h
similarity index 100%
rename from source/core/Attribute.h
rename to source/adios2/core/Attribute.h
diff --git a/source/core/Capsule.cpp b/source/adios2/core/Capsule.cpp
similarity index 100%
rename from source/core/Capsule.cpp
rename to source/adios2/core/Capsule.cpp
diff --git a/source/core/Capsule.h b/source/adios2/core/Capsule.h
similarity index 100%
rename from source/core/Capsule.h
rename to source/adios2/core/Capsule.h
diff --git a/source/core/Engine.cpp b/source/adios2/core/Engine.cpp
similarity index 100%
rename from source/core/Engine.cpp
rename to source/adios2/core/Engine.cpp
diff --git a/source/core/Engine.h b/source/adios2/core/Engine.h
similarity index 100%
rename from source/core/Engine.h
rename to source/adios2/core/Engine.h
diff --git a/source/core/IOChrono.h b/source/adios2/core/IOChrono.h
similarity index 100%
rename from source/core/IOChrono.h
rename to source/adios2/core/IOChrono.h
diff --git a/source/core/Method.cpp b/source/adios2/core/Method.cpp
similarity index 100%
rename from source/core/Method.cpp
rename to source/adios2/core/Method.cpp
diff --git a/source/core/Method.h b/source/adios2/core/Method.h
similarity index 100%
rename from source/core/Method.h
rename to source/adios2/core/Method.h
diff --git a/source/core/Selection.h b/source/adios2/core/Selection.h
similarity index 100%
rename from source/core/Selection.h
rename to source/adios2/core/Selection.h
diff --git a/source/core/SelectionBoundingBox.h b/source/adios2/core/SelectionBoundingBox.h
similarity index 100%
rename from source/core/SelectionBoundingBox.h
rename to source/adios2/core/SelectionBoundingBox.h
diff --git a/source/core/SelectionPoints.h b/source/adios2/core/SelectionPoints.h
similarity index 100%
rename from source/core/SelectionPoints.h
rename to source/adios2/core/SelectionPoints.h
diff --git a/source/core/Support.cpp b/source/adios2/core/Support.cpp
similarity index 100%
rename from source/core/Support.cpp
rename to source/adios2/core/Support.cpp
diff --git a/source/core/Support.h b/source/adios2/core/Support.h
similarity index 100%
rename from source/core/Support.h
rename to source/adios2/core/Support.h
diff --git a/source/core/Timer.cpp b/source/adios2/core/Timer.cpp
similarity index 100%
rename from source/core/Timer.cpp
rename to source/adios2/core/Timer.cpp
diff --git a/source/core/Timer.h b/source/adios2/core/Timer.h
similarity index 100%
rename from source/core/Timer.h
rename to source/adios2/core/Timer.h
diff --git a/source/core/Transform.cpp b/source/adios2/core/Transform.cpp
similarity index 100%
rename from source/core/Transform.cpp
rename to source/adios2/core/Transform.cpp
diff --git a/source/core/Transform.h b/source/adios2/core/Transform.h
similarity index 100%
rename from source/core/Transform.h
rename to source/adios2/core/Transform.h
diff --git a/source/core/Transport.cpp b/source/adios2/core/Transport.cpp
similarity index 100%
rename from source/core/Transport.cpp
rename to source/adios2/core/Transport.cpp
diff --git a/source/core/Transport.h b/source/adios2/core/Transport.h
similarity index 100%
rename from source/core/Transport.h
rename to source/adios2/core/Transport.h
diff --git a/source/core/Variable.h b/source/adios2/core/Variable.h
similarity index 100%
rename from source/core/Variable.h
rename to source/adios2/core/Variable.h
diff --git a/source/core/VariableBase.h b/source/adios2/core/VariableBase.h
similarity index 100%
rename from source/core/VariableBase.h
rename to source/adios2/core/VariableBase.h
diff --git a/source/core/VariableCompound.h b/source/adios2/core/VariableCompound.h
similarity index 100%
rename from source/core/VariableCompound.h
rename to source/adios2/core/VariableCompound.h
diff --git a/source/core/adiosFunctions.cpp b/source/adios2/core/adiosFunctions.cpp
similarity index 100%
rename from source/core/adiosFunctions.cpp
rename to source/adios2/core/adiosFunctions.cpp
diff --git a/source/core/adiosFunctions.h b/source/adios2/core/adiosFunctions.h
similarity index 100%
rename from source/core/adiosFunctions.h
rename to source/adios2/core/adiosFunctions.h
diff --git a/source/core/adiosTemplates.h b/source/adios2/core/adiosTemplates.h
similarity index 100%
rename from source/core/adiosTemplates.h
rename to source/adios2/core/adiosTemplates.h
diff --git a/source/core/capsuleTemplates.h b/source/adios2/core/capsuleTemplates.h
similarity index 100%
rename from source/core/capsuleTemplates.h
rename to source/adios2/core/capsuleTemplates.h
diff --git a/source/engine/adios1/ADIOS1Reader.cpp b/source/adios2/engine/adios1/ADIOS1Reader.cpp
similarity index 100%
rename from source/engine/adios1/ADIOS1Reader.cpp
rename to source/adios2/engine/adios1/ADIOS1Reader.cpp
diff --git a/source/engine/adios1/ADIOS1Reader.h b/source/adios2/engine/adios1/ADIOS1Reader.h
similarity index 100%
rename from source/engine/adios1/ADIOS1Reader.h
rename to source/adios2/engine/adios1/ADIOS1Reader.h
diff --git a/source/engine/adios1/ADIOS1Writer.cpp b/source/adios2/engine/adios1/ADIOS1Writer.cpp
similarity index 100%
rename from source/engine/adios1/ADIOS1Writer.cpp
rename to source/adios2/engine/adios1/ADIOS1Writer.cpp
diff --git a/source/engine/adios1/ADIOS1Writer.h b/source/adios2/engine/adios1/ADIOS1Writer.h
similarity index 100%
rename from source/engine/adios1/ADIOS1Writer.h
rename to source/adios2/engine/adios1/ADIOS1Writer.h
diff --git a/source/engine/bp/BPFileReader.cpp b/source/adios2/engine/bp/BPFileReader.cpp
similarity index 100%
rename from source/engine/bp/BPFileReader.cpp
rename to source/adios2/engine/bp/BPFileReader.cpp
diff --git a/source/engine/bp/BPFileReader.h b/source/adios2/engine/bp/BPFileReader.h
similarity index 100%
rename from source/engine/bp/BPFileReader.h
rename to source/adios2/engine/bp/BPFileReader.h
diff --git a/source/engine/bp/BPFileWriter.cpp b/source/adios2/engine/bp/BPFileWriter.cpp
similarity index 100%
rename from source/engine/bp/BPFileWriter.cpp
rename to source/adios2/engine/bp/BPFileWriter.cpp
diff --git a/source/engine/bp/BPFileWriter.h b/source/adios2/engine/bp/BPFileWriter.h
similarity index 100%
rename from source/engine/bp/BPFileWriter.h
rename to source/adios2/engine/bp/BPFileWriter.h
diff --git a/source/engine/dataman/DataManReader.cpp b/source/adios2/engine/dataman/DataManReader.cpp
similarity index 100%
rename from source/engine/dataman/DataManReader.cpp
rename to source/adios2/engine/dataman/DataManReader.cpp
diff --git a/source/engine/dataman/DataManReader.h b/source/adios2/engine/dataman/DataManReader.h
similarity index 100%
rename from source/engine/dataman/DataManReader.h
rename to source/adios2/engine/dataman/DataManReader.h
diff --git a/source/engine/dataman/DataManWriter.cpp b/source/adios2/engine/dataman/DataManWriter.cpp
similarity index 100%
rename from source/engine/dataman/DataManWriter.cpp
rename to source/adios2/engine/dataman/DataManWriter.cpp
diff --git a/source/engine/dataman/DataManWriter.h b/source/adios2/engine/dataman/DataManWriter.h
similarity index 100%
rename from source/engine/dataman/DataManWriter.h
rename to source/adios2/engine/dataman/DataManWriter.h
diff --git a/source/engine/hdf5/HDF5ReaderP.cpp b/source/adios2/engine/hdf5/HDF5ReaderP.cpp
similarity index 100%
rename from source/engine/hdf5/HDF5ReaderP.cpp
rename to source/adios2/engine/hdf5/HDF5ReaderP.cpp
diff --git a/source/engine/hdf5/HDF5ReaderP.h b/source/adios2/engine/hdf5/HDF5ReaderP.h
similarity index 100%
rename from source/engine/hdf5/HDF5ReaderP.h
rename to source/adios2/engine/hdf5/HDF5ReaderP.h
diff --git a/source/engine/hdf5/HDF5WriterP.cpp b/source/adios2/engine/hdf5/HDF5WriterP.cpp
similarity index 100%
rename from source/engine/hdf5/HDF5WriterP.cpp
rename to source/adios2/engine/hdf5/HDF5WriterP.cpp
diff --git a/source/engine/hdf5/HDF5WriterP.h b/source/adios2/engine/hdf5/HDF5WriterP.h
similarity index 100%
rename from source/engine/hdf5/HDF5WriterP.h
rename to source/adios2/engine/hdf5/HDF5WriterP.h
diff --git a/source/external/adios_selection.h b/source/adios2/external/adios_selection.h
similarity index 100%
rename from source/external/adios_selection.h
rename to source/adios2/external/adios_selection.h
diff --git a/source/mpidummy.cpp b/source/adios2/mpidummy.cpp
similarity index 100%
rename from source/mpidummy.cpp
rename to source/adios2/mpidummy.cpp
diff --git a/source/mpidummy.h b/source/adios2/mpidummy.h
similarity index 100%
rename from source/mpidummy.h
rename to source/adios2/mpidummy.h
diff --git a/source/transform/BZip2.cpp b/source/adios2/transform/BZip2.cpp
similarity index 100%
rename from source/transform/BZip2.cpp
rename to source/adios2/transform/BZip2.cpp
diff --git a/source/transform/BZip2.h b/source/adios2/transform/BZip2.h
similarity index 100%
rename from source/transform/BZip2.h
rename to source/adios2/transform/BZip2.h
diff --git a/source/transport/file/FStream.cpp b/source/adios2/transport/file/FStream.cpp
similarity index 100%
rename from source/transport/file/FStream.cpp
rename to source/adios2/transport/file/FStream.cpp
diff --git a/source/transport/file/FStream.h b/source/adios2/transport/file/FStream.h
similarity index 100%
rename from source/transport/file/FStream.h
rename to source/adios2/transport/file/FStream.h
diff --git a/source/transport/file/FileDescriptor.cpp b/source/adios2/transport/file/FileDescriptor.cpp
similarity index 100%
rename from source/transport/file/FileDescriptor.cpp
rename to source/adios2/transport/file/FileDescriptor.cpp
diff --git a/source/transport/file/FileDescriptor.h b/source/adios2/transport/file/FileDescriptor.h
similarity index 100%
rename from source/transport/file/FileDescriptor.h
rename to source/adios2/transport/file/FileDescriptor.h
diff --git a/source/transport/file/FilePointer.cpp b/source/adios2/transport/file/FilePointer.cpp
similarity index 100%
rename from source/transport/file/FilePointer.cpp
rename to source/adios2/transport/file/FilePointer.cpp
diff --git a/source/transport/file/FilePointer.h b/source/adios2/transport/file/FilePointer.h
similarity index 100%
rename from source/transport/file/FilePointer.h
rename to source/adios2/transport/file/FilePointer.h
diff --git a/source/transport/file/MPI_File.h b/source/adios2/transport/file/MPI_File.h
similarity index 100%
rename from source/transport/file/MPI_File.h
rename to source/adios2/transport/file/MPI_File.h
diff --git a/source/transport/wan/MdtmMan.cpp b/source/adios2/transport/wan/MdtmMan.cpp
similarity index 100%
rename from source/transport/wan/MdtmMan.cpp
rename to source/adios2/transport/wan/MdtmMan.cpp
diff --git a/source/transport/wan/MdtmMan.h b/source/adios2/transport/wan/MdtmMan.h
similarity index 100%
rename from source/transport/wan/MdtmMan.h
rename to source/adios2/transport/wan/MdtmMan.h
diff --git a/source/utilities/format/bp1/BP1.h b/source/adios2/utilities/format/bp1/BP1.h
similarity index 100%
rename from source/utilities/format/bp1/BP1.h
rename to source/adios2/utilities/format/bp1/BP1.h
diff --git a/source/utilities/format/bp1/BP1Aggregator.cpp b/source/adios2/utilities/format/bp1/BP1Aggregator.cpp
similarity index 100%
rename from source/utilities/format/bp1/BP1Aggregator.cpp
rename to source/adios2/utilities/format/bp1/BP1Aggregator.cpp
diff --git a/source/utilities/format/bp1/BP1Aggregator.h b/source/adios2/utilities/format/bp1/BP1Aggregator.h
similarity index 100%
rename from source/utilities/format/bp1/BP1Aggregator.h
rename to source/adios2/utilities/format/bp1/BP1Aggregator.h
diff --git a/source/utilities/format/bp1/BP1Base.cpp b/source/adios2/utilities/format/bp1/BP1Base.cpp
similarity index 100%
rename from source/utilities/format/bp1/BP1Base.cpp
rename to source/adios2/utilities/format/bp1/BP1Base.cpp
diff --git a/source/utilities/format/bp1/BP1Base.h b/source/adios2/utilities/format/bp1/BP1Base.h
similarity index 100%
rename from source/utilities/format/bp1/BP1Base.h
rename to source/adios2/utilities/format/bp1/BP1Base.h
diff --git a/source/utilities/format/bp1/BP1Structs.h b/source/adios2/utilities/format/bp1/BP1Structs.h
similarity index 100%
rename from source/utilities/format/bp1/BP1Structs.h
rename to source/adios2/utilities/format/bp1/BP1Structs.h
diff --git a/source/utilities/format/bp1/BP1Writer.cpp b/source/adios2/utilities/format/bp1/BP1Writer.cpp
similarity index 100%
rename from source/utilities/format/bp1/BP1Writer.cpp
rename to source/adios2/utilities/format/bp1/BP1Writer.cpp
diff --git a/source/utilities/format/bp1/BP1Writer.h b/source/adios2/utilities/format/bp1/BP1Writer.h
similarity index 100%
rename from source/utilities/format/bp1/BP1Writer.h
rename to source/adios2/utilities/format/bp1/BP1Writer.h
diff --git a/source/utilities/format/bp1/BP1Writer.tcc b/source/adios2/utilities/format/bp1/BP1Writer.tcc
similarity index 100%
rename from source/utilities/format/bp1/BP1Writer.tcc
rename to source/adios2/utilities/format/bp1/BP1Writer.tcc
diff --git a/source/dataman/CMakeLists.txt b/source/dataman/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..947f927d18b1d961c902170f943c1816e2d24b60
--- /dev/null
+++ b/source/dataman/CMakeLists.txt
@@ -0,0 +1,18 @@
+#------------------------------------------------------------------------------#
+# Distributed under the OSI-approved Apache License, Version 2.0.  See
+# accompanying file Copyright.txt for details.
+#------------------------------------------------------------------------------#
+
+add_library(dataman
+  DataManBase.h DataManBase.cpp
+  DataMan.h DataMan.cpp
+)
+target_include_directories(dataman PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_link_libraries(dataman PUBLIC ${CMAKE_DL_LIBS})
+
+install(
+  TARGETS dataman EXPORT adios2
+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
diff --git a/source/utilities/realtime/dataman/DataMan.cpp b/source/dataman/DataMan.cpp
similarity index 94%
rename from source/utilities/realtime/dataman/DataMan.cpp
rename to source/dataman/DataMan.cpp
index 84bad36c983018ada867d94f8dfead272f518e6e..5d8f446a4bc8002f797ddaacb8093bff706654f5 100644
--- a/source/utilities/realtime/dataman/DataMan.cpp
+++ b/source/dataman/DataMan.cpp
@@ -10,11 +10,6 @@
 
 #include "DataMan.h"
 
-namespace adios
-{
-namespace realtime
-{
-
 int DataMan::init(json p_jmsg) { return 0; }
 
 int DataMan::put(const void *p_data, std::string p_doid, std::string p_var,
@@ -72,8 +67,3 @@ void DataMan::add_stream(json p_jmsg)
 void DataMan::flush() { flush_next(); }
 
 int DataMan::get(void *p_data, json &p_jmsg) { return 0; }
-
-// end namespace realtime
-}
-// end namespace adios
-}
diff --git a/source/utilities/realtime/dataman/DataMan.h b/source/dataman/DataMan.h
similarity index 88%
rename from source/utilities/realtime/dataman/DataMan.h
rename to source/dataman/DataMan.h
index 5ce0fc3a20f149c44c73e2837f8403bda2ffff0d..82bfa9c88a420263edf9b366321416716f7c9962 100644
--- a/source/utilities/realtime/dataman/DataMan.h
+++ b/source/dataman/DataMan.h
@@ -11,13 +11,7 @@
 #ifndef DATAMANAGER_H_
 #define DATAMANAGER_H_
 
-#include "ADIOSConfig.h"
-#include "utilities/realtime/dataman/DataManBase.h"
-
-namespace adios
-{
-namespace realtime
-{
+#include "DataManBase.h"
 
 class DataMan : public DataManBase
 {
@@ -48,8 +42,4 @@ private:
     std::vector<int> m_priority;
 };
 
-// end namespace realtime
-}
-// end namespace adios
-}
 #endif
diff --git a/source/utilities/realtime/dataman/DataManBase.cpp b/source/dataman/DataManBase.cpp
similarity index 98%
rename from source/utilities/realtime/dataman/DataManBase.cpp
rename to source/dataman/DataManBase.cpp
index c2f8ca6114e830ad99f0ea95b8fb3cf985fe1b6f..5f9f73ec8b53b456a2dd2d4c589ae5e98c4276f4 100644
--- a/source/utilities/realtime/dataman/DataManBase.cpp
+++ b/source/dataman/DataManBase.cpp
@@ -10,11 +10,6 @@
 
 #include "DataManBase.h"
 
-namespace adios
-{
-namespace realtime
-{
-
 DataManBase::DataManBase()
 {
     m_profiling["total_manager_time"] = 0.0f;
@@ -261,8 +256,3 @@ std::shared_ptr<DataManBase> DataManBase::get_man(std::string method)
     }
     return nullptr;
 }
-
-// end namespace realtime
-}
-// end namespace adios
-}
diff --git a/source/utilities/realtime/dataman/DataManBase.h b/source/dataman/DataManBase.h
similarity index 98%
rename from source/utilities/realtime/dataman/DataManBase.h
rename to source/dataman/DataManBase.h
index 9d14457427a4feeaeff65222c1d6a42fef352a12..f7e9c3d88194d4f8fff366735fc18195a37f4119 100644
--- a/source/utilities/realtime/dataman/DataManBase.h
+++ b/source/dataman/DataManBase.h
@@ -24,12 +24,7 @@
 #include <string>
 #include <vector>
 
-#include "external/json.hpp"
-
-namespace adios
-{
-namespace realtime
-{
+#include "json.hpp"
 
 class DataManBase
 {
@@ -276,8 +271,4 @@ private:
     bool m_profiling_enabled = false;
 };
 
-// end namespace realtime
-}
-// end namespace adios
-}
 #endif
diff --git a/source/external/json.hpp b/source/dataman/json.hpp
similarity index 100%
rename from source/external/json.hpp
rename to source/dataman/json.hpp