diff --git a/.gitmodules b/.gitmodules
index e13a7994603d5d0c65f85c6038647584129f1ec2..5abc7c480624b6b7a5a5f88b29be25d3713945a2 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -3,6 +3,6 @@
     url = ../../AirShowerPhysics/corsika-data.git
     shallow = true
 [submodule "modules/conex"]
-	path = modules/conex
+	path = modules/conex/cxroot
 	url = ../../AirShowerPhysics/cxroot.git
 	shallow = true
diff --git a/modules/conex/CMakeLists.txt b/modules/conex/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..acb73a9e1d5bc381805f45ba3665aaade2dea3ed
--- /dev/null
+++ b/modules/conex/CMakeLists.txt
@@ -0,0 +1,21 @@
+add_subdirectory(cxroot)
+
+add_library(conex_random STATIC conex_random.cpp)
+target_link_libraries(conex_random PUBLIC modules_common)
+target_link_libraries(CONEXsibyll conex_random)
+
+#
+# add to combined CORSIKA8 target
+#
+add_dependencies (CORSIKA8 CONEXsibyll)
+target_link_libraries (CORSIKA8 INTERFACE CONEXsibyll)
+
+#
+# install and export
+#  
+install (
+  TARGETS CONEXsibyll conex_random
+  EXPORT CORSIKA8PublicTargets
+  ARCHIVE DESTINATION lib/corsika
+  PUBLIC_HEADER DESTINATION include/corsika_modules/conex
+  )
diff --git a/modules/conex/conex_random.cpp b/modules/conex/conex_random.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5ab66f428be9873f1f8739461a415133a1307c1e
--- /dev/null
+++ b/modules/conex/conex_random.cpp
@@ -0,0 +1,7 @@
+#include <rng_impl.hpp>
+
+IMPLEMENT_RNG(conex)
+
+extern "C" void rmmard_(double field[], int const* N, int*) {
+  for (int i = 0; i < *N; ++i) { field[i] = draw_std_rnd(); }
+}
diff --git a/modules/conex/conex_random.hpp b/modules/conex/conex_random.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..c38f54662b15bb720f9fa3c914f02172f0f3a798
--- /dev/null
+++ b/modules/conex/conex_random.hpp
@@ -0,0 +1,14 @@
+/*
+ * (c) Copyright 2023 CORSIKA Project, corsika-project@lists.kit.edu
+ *
+ * This software is distributed under the terms of the GNU General Public
+ * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
+ * the license.
+ */
+#pragma once
+
+#include <rng_decl.hpp>
+
+DECLARE_RNG(conex)
+
+extern "C" void rmmard_(double[] field, int const* N, int*);