diff --git a/src/imcflibs/__init__.py b/src/imcflibs/__init__.py
index 3b59a6fd781f93d8605357a582adeaeb04ad9dd1..14ba8834b3496eea2171fd17f35a3ef3bfc36ff1 100644
--- a/src/imcflibs/__init__.py
+++ b/src/imcflibs/__init__.py
@@ -22,3 +22,14 @@ Biozentrum, University of Basel, Switzerland.
 """
 
 __version__ = "${project.version}"
+
+from . import iotools
+from . import log
+from . import pathtools
+from . import strtools
+
+# check if we're running in Jython, then also import the 'imagej' submodule:
+import platform as _python_platform
+if _python_platform.python_implementation() == "Jython":
+    from . import imagej
+del _python_platform
diff --git a/src/imcflibs/imagej/__init__.py b/src/imcflibs/imagej/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2ae7bfd90a9da32cb6e5c47afb632a807893cf2c 100644
--- a/src/imcflibs/imagej/__init__.py
+++ b/src/imcflibs/imagej/__init__.py
@@ -0,0 +1,15 @@
+"""ImageJ related functions, mostly convenience wrappers and combined workflows.
+
+NOTE: this is only useful for Python (actually Jython) running within Fiji / ImageJ
+and therefore will not be imported by the main 'imcflibs' package unless that
+particular environment is detected.
+"""
+
+from . import bioformats
+from . import misc
+from . import prefs
+from . import projections
+from . import shading
+from . import sjlog
+from . import split
+from . import stitching