diff --git a/src/toolbox_scs/__init__.py b/src/toolbox_scs/__init__.py
index f1acd8952e8152f74d61597f7d86e179b079c846..a3fdeb0f7cf5022ebf46c056fae411f95cfc8e54 100644
--- a/src/toolbox_scs/__init__.py
+++ b/src/toolbox_scs/__init__.py
@@ -1,39 +1,22 @@
-from .load import (load, concatenateRuns, get_array, run_by_path)
-from .constants import mnemonics
-from .mnemonics_machinery import mnemonics_for_run
-
-__all__ = (
-    # functions
-    "load",
-    "concatenateRuns",
-    "get_array",
-    "run_by_path",
-    "mnemonics_for_run",
-    # Classes
-    # Variables
-    "mnemonics",
-)
+from .constants import *
+from .detectors import *
 
+# Module name is the same as a child function, we use alias to avoid conflict
+import load as load_module
+from .load import *
 
-# ------------------------------------------------------------------------------
-# Clean namespace
-# clean_ns is a collection of undesired items in the namespace
-# ------------------------------------------------------------------------------
+from .misc import *
+from .mnemonics_machinery import *
+from .routines import *
 
-clean_ns = [
-    # filenames
-    'constants',
-    'mnemonics_machinery'
-    # folders
-    'misc',
-    'util',
-    'detectors',
-    'routines',
-    ]
-
-for name in dir():
-    if name in clean_ns:
-        del globals()[name]
+__all__ = (
+    # top-level modules
+    constants.__all__
+    + load_module.__all__
+    + mnemonics_machinery.__all__
 
-del globals()['clean_ns']
-del globals()['name']
+    # submodules
+    + detectors.__all__
+    + misc.__all__
+    + routines.__all__
+)
diff --git a/src/toolbox_scs/constants.py b/src/toolbox_scs/constants.py
index 28587b5e544d7dfd66adf0ca88d22d2c0e92f298..09784e727a6e1934cd13f2e3117b5402113c13ef 100644
--- a/src/toolbox_scs/constants.py
+++ b/src/toolbox_scs/constants.py
@@ -1,3 +1,8 @@
+__all__ = [
+    'mnemonics'
+]
+
+
 mnemonics = {
     # Machine
     "sase3": ({'source': 'SCS_RR_UTC/MDL/BUNCH_DECODER',
diff --git a/src/toolbox_scs/load.py b/src/toolbox_scs/load.py
index 48360c79ec152c8221a2d705949d13d20743e3be..d51b5b1933d2f17b22e5d5080992e2ab15846677 100644
--- a/src/toolbox_scs/load.py
+++ b/src/toolbox_scs/load.py
@@ -21,6 +21,13 @@ from .mnemonics_machinery import mnemonics_for_run
 from .util.exceptions import ToolBoxValueError
 import toolbox_scs.detectors as tbdet
 
+__all__ = [
+    'concatenateRuns',
+    'get_array',
+    'load',
+    'run_by_path',
+]
+
 log = logging.getLogger(__name__)
 
 
diff --git a/src/toolbox_scs/mnemonics_machinery.py b/src/toolbox_scs/mnemonics_machinery.py
index f09e14bc32b8de35bdb916b1151d069e1735d677..a3aa8f03d230542ed426c0ca985d43619e65f5c9 100644
--- a/src/toolbox_scs/mnemonics_machinery.py
+++ b/src/toolbox_scs/mnemonics_machinery.py
@@ -10,6 +10,10 @@ import logging
 
 from .constants import mnemonics as _mnemonics
 
+__all__ = [
+    'mnemonics_for_run'
+]
+
 log = logging.getLogger(__name__)