diff --git a/qim3d/__init__.py b/qim3d/__init__.py
index 119a2f42c20d0f3a9ffe3ff1e6466bb5d7e323e9..9b02481bddbb70bf131324494550d5bfcd0339b9 100644
--- a/qim3d/__init__.py
+++ b/qim3d/__init__.py
@@ -1,4 +1,14 @@
+<<<<<<< HEAD
 """qim3d: A Python package for 3D image processing and visualization.
+=======
+import qim3d.io as io
+import qim3d.gui as gui
+import qim3d.viz as viz
+import qim3d.utils as utils
+import qim3d.models as models
+import qim3d.process as process
+import logging
+>>>>>>> 1622d378193877cb85f53b1a05207088b3f3cf0a
 
 The qim3d library is designed to make it easier to work with 3D imaging data in Python. 
 It offers a range of features, including data loading and manipulation,
diff --git a/qim3d/examples/slice_218x193.png b/qim3d/examples/slice_218x193.png
new file mode 100644
index 0000000000000000000000000000000000000000..f26c876dc030007e0d1129b42db3fa46470f3caa
Binary files /dev/null and b/qim3d/examples/slice_218x193.png differ
diff --git a/qim3d/utils/cli.py b/qim3d/utils/cli.py
new file mode 100644
index 0000000000000000000000000000000000000000..f07135782e2cb65ea0350c53d9108c7b160dca29
--- /dev/null
+++ b/qim3d/utils/cli.py
@@ -0,0 +1,39 @@
+import argparse
+from qim3d.gui import data_explorer, iso3d, annotation_tool, local_thickness, layers2d
+
+def main():
+    parser = argparse.ArgumentParser(description='Qim3d command-line interface.')
+    subparsers = parser.add_subparsers(title='Subcommands', dest='subcommand')
+
+    # subcommands
+    gui_parser = subparsers.add_parser('gui', help = 'Graphical User Interfaces.')
+
+    gui_parser.add_argument('--data-explorer', action='store_true', help='Run data explorer.')
+    gui_parser.add_argument('--iso3d', action='store_true', help='Run iso3d.')
+    gui_parser.add_argument('--annotation-tool', action='store_true', help='Run annotation tool.')
+    gui_parser.add_argument('--local-thickness', action='store_true', help='Run local thickness tool.')
+    gui_parser.add_argument('--layers2d', action='store_true', help='Run layers2d.')
+    gui_parser.add_argument('--host', default='0.0.0.0', help='Desired host.')
+
+    args = parser.parse_args()
+
+    if args.subcommand == 'gui':
+        arghost = args.host
+        if args.data_explorer:
+            
+            data_explorer.run_interface(arghost)
+
+        elif args.iso3d:
+            iso3d.run_interface(arghost)
+        
+        elif args.annotation_tool:
+            annotation_tool.run_interface(arghost)
+        
+        elif args.local_thickness:
+            local_thickness.run_interface(arghost)
+
+        elif args.layers2d:
+            layers2d.run_interface(arghost)
+            
+if __name__ == '__main__':
+    main()
\ No newline at end of file
diff --git a/qim3d/viz/__init__.py b/qim3d/viz/__init__.py
index dad09ad105f1de07f16d81cdf8bf558773cee2e9..8f341f0c9c74e747207c880bb0a57e1f91b8518c 100644
--- a/qim3d/viz/__init__.py
+++ b/qim3d/viz/__init__.py
@@ -12,4 +12,4 @@ from .local_thickness_ import local_thickness
 from .structure_tensor import vectors
 from .metrics import plot_metrics, grid_overview, grid_pred, vol_masked
 from .preview import image_preview
-from . import layers2d
\ No newline at end of file
+from . import layers2d
diff --git a/qim3d/viz/layers2d.py b/qim3d/viz/layers2d.py
index 6bd5c9157d88082e260011a2842abae064b1a9b7..478583145ce5f6372f6ec1f6b1238ccbb80dea97 100644
--- a/qim3d/viz/layers2d.py
+++ b/qim3d/viz/layers2d.py
@@ -1,7 +1,11 @@
 """ Provides a collection of visualisation functions for the Layers2d class."""
 import matplotlib.pyplot as plt
 import numpy as np
+<<<<<<< HEAD
 from qim3d.processing import layers2d as l2d
+=======
+from qim3d.process import layers2d as l2d
+>>>>>>> 1622d378193877cb85f53b1a05207088b3f3cf0a
 
 def create_subplot_of_2d_arrays(data, m_rows = 1, n_cols = 1, figsize = None):
     '''