diff --git a/ast2d/main.py b/ast2d/__init__.py
similarity index 85%
rename from ast2d/main.py
rename to ast2d/__init__.py
index e1f76dbb1deeac59c4ef8488c7ab23d0788dd750..f15a7c960bd7192ca1c6c06523f667e8e1785079 100644
--- a/ast2d/main.py
+++ b/ast2d/__init__.py
@@ -1,6 +1,6 @@
 import sys
 from PyQt5.QtWidgets import QApplication
-from mainWindow import MainWindow
+from .mainWindow import MainWindow
 
 def main():
     app = QApplication(sys.argv)
diff --git a/ast2d/__pycache__/__init__.cpython-310.pyc b/ast2d/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b27e7d2af13426ea3e07b8356a8d4f3a3537b643
Binary files /dev/null and b/ast2d/__pycache__/__init__.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/advancedSettingsWidget.cpython-310.pyc b/ast2d/__pycache__/advancedSettingsWidget.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..54244ebfa2b2c008c1d1c29dc26e5e41c97c324a
Binary files /dev/null and b/ast2d/__pycache__/advancedSettingsWidget.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/circleEditorGraphicsView.cpython-310.pyc b/ast2d/__pycache__/circleEditorGraphicsView.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6f9e5767d207f9cf7705b7cc0f922fbe0e7538fc
Binary files /dev/null and b/ast2d/__pycache__/circleEditorGraphicsView.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/circleEditorWidget.cpython-310.pyc b/ast2d/__pycache__/circleEditorWidget.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..7110c576008b3c637114913c35c71e289f3bb45e
Binary files /dev/null and b/ast2d/__pycache__/circleEditorWidget.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/circle_edge_kernel.cpython-310.pyc b/ast2d/__pycache__/circle_edge_kernel.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..f3c7fc0d04717ae6aca9d1cdc4d35d53995bf69e
Binary files /dev/null and b/ast2d/__pycache__/circle_edge_kernel.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/compute_cost_image.cpython-310.pyc b/ast2d/__pycache__/compute_cost_image.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..baecc404908466ddcdf86b320446ef6c083b0be9
Binary files /dev/null and b/ast2d/__pycache__/compute_cost_image.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/compute_disk_size.cpython-310.pyc b/ast2d/__pycache__/compute_disk_size.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..7b117c107aaa6b8248d9f11a59c2d464176a5243
Binary files /dev/null and b/ast2d/__pycache__/compute_disk_size.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/draggableCircleItem.cpython-310.pyc b/ast2d/__pycache__/draggableCircleItem.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e52caac1a41facfb0bd0a074a987fd9d4c5e1234
Binary files /dev/null and b/ast2d/__pycache__/draggableCircleItem.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/find_path.cpython-310.pyc b/ast2d/__pycache__/find_path.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..cb04cf6448adf91b543234b99e84c26abb94d721
Binary files /dev/null and b/ast2d/__pycache__/find_path.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/imageGraphicsView.cpython-310.pyc b/ast2d/__pycache__/imageGraphicsView.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..1aa5867d7d89d02a091b26f50864c32e42ffc379
Binary files /dev/null and b/ast2d/__pycache__/imageGraphicsView.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/labeledPointItem.cpython-310.pyc b/ast2d/__pycache__/labeledPointItem.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..978aafc5bcc2653043b1d103e1935c2baf21bff9
Binary files /dev/null and b/ast2d/__pycache__/labeledPointItem.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/load_image.cpython-310.pyc b/ast2d/__pycache__/load_image.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..963948684b5ede87065750dcf44efdfc98c3ea73
Binary files /dev/null and b/ast2d/__pycache__/load_image.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/mainWindow.cpython-310.pyc b/ast2d/__pycache__/mainWindow.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..71fe376075022673956a3c4d2a4f79e811b528a3
Binary files /dev/null and b/ast2d/__pycache__/mainWindow.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/panZoomGraphicsView.cpython-310.pyc b/ast2d/__pycache__/panZoomGraphicsView.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..f12867c40be921a81b1059fd4ad7a040e88e610b
Binary files /dev/null and b/ast2d/__pycache__/panZoomGraphicsView.cpython-310.pyc differ
diff --git a/ast2d/__pycache__/preprocess_image.cpython-310.pyc b/ast2d/__pycache__/preprocess_image.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..d0dfa7c9fb3934e154036fdb3cdef6adb6b2c66c
Binary files /dev/null and b/ast2d/__pycache__/preprocess_image.cpython-310.pyc differ
diff --git a/ast2d/circleEditorGraphicsView.py b/ast2d/circleEditorGraphicsView.py
index efa7448c947c2b8ea5a9631916eab22a2785a012..ffebeb787a22f09262dd68a5f39122a5bbd94e6a 100644
--- a/ast2d/circleEditorGraphicsView.py
+++ b/ast2d/circleEditorGraphicsView.py
@@ -1,8 +1,8 @@
 from PyQt5.QtWidgets import QGraphicsView, QWidget
-from panZoomGraphicsView import PanZoomGraphicsView
+from .panZoomGraphicsView import PanZoomGraphicsView
 from PyQt5.QtCore import Qt
 from PyQt5.QtGui import QMouseEvent, QWheelEvent
-from draggableCircleItem import DraggableCircleItem
+from .draggableCircleItem import DraggableCircleItem
 from typing import Optional
 
 # A specialized PanZoomGraphicsView for the circle editor (disk size calibration)
diff --git a/ast2d/circleEditorWidget.py b/ast2d/circleEditorWidget.py
index b8230e8ef1e5350888cf1124ebeb864ccfafeb6f..280787e5f462f7573d1fbd9d863dc42bcda72b9b 100644
--- a/ast2d/circleEditorWidget.py
+++ b/ast2d/circleEditorWidget.py
@@ -4,8 +4,8 @@ from PyQt5.QtWidgets import (
 )
 from PyQt5.QtGui import QFont, QPixmap
 from PyQt5.QtCore import Qt, QRectF, QSize
-from circleEditorGraphicsView import CircleEditorGraphicsView
-from draggableCircleItem import DraggableCircleItem
+from .circleEditorGraphicsView import CircleEditorGraphicsView
+from .draggableCircleItem import DraggableCircleItem
 from typing import Optional, Callable
 
 class CircleEditorWidget(QWidget):
diff --git a/ast2d/compute_cost_image.py b/ast2d/compute_cost_image.py
index 3c88768bd224759efb98c0b5f369f7a878ceca04..4e8b61b3b11ad9ffbde82d07ce6efa6238b2e6c8 100644
--- a/ast2d/compute_cost_image.py
+++ b/ast2d/compute_cost_image.py
@@ -1,9 +1,9 @@
 from skimage.feature import canny
 from scipy.signal import convolve2d
-from compute_disk_size import compute_disk_size
-from load_image import load_image
-from preprocess_image import preprocess_image
-from circle_edge_kernel import circle_edge_kernel
+from .compute_disk_size import compute_disk_size
+from .load_image import load_image
+from .preprocess_image import preprocess_image
+from .circle_edge_kernel import circle_edge_kernel
 import numpy as np
 
 def compute_cost_image(path: str, user_radius: int, sigma: int = 3, clip_limit: float = 0.01) -> np.ndarray:
diff --git a/ast2d/imageGraphicsView.py b/ast2d/imageGraphicsView.py
index 1fe73941973a08882a943efc0cda6d4c299f67ee..77bb7bb9cc93b3efab5df50de005ff38f3814405 100644
--- a/ast2d/imageGraphicsView.py
+++ b/ast2d/imageGraphicsView.py
@@ -4,9 +4,9 @@ from PyQt5.QtGui import QPixmap, QColor
 from PyQt5.QtCore import Qt, QRectF, QPoint
 import math
 import numpy as np
-from panZoomGraphicsView import PanZoomGraphicsView
-from labeledPointItem import LabeledPointItem
-from find_path import find_path
+from .panZoomGraphicsView import PanZoomGraphicsView
+from .labeledPointItem import LabeledPointItem
+from .find_path import find_path
 
 
 class ImageGraphicsView(PanZoomGraphicsView):
diff --git a/ast2d/mainWindow.py b/ast2d/mainWindow.py
index 16127783ac741536a65f16092625131f07233865..94dd3239d8060017840dca4cca7748a04f2d79b1 100644
--- a/ast2d/mainWindow.py
+++ b/ast2d/mainWindow.py
@@ -5,11 +5,11 @@ from PyQt5.QtWidgets import (
     QVBoxLayout, QWidget, QFileDialog
 )
 from PyQt5.QtGui import QPixmap, QImage, QCloseEvent
-from compute_cost_image import compute_cost_image
-from preprocess_image import preprocess_image
-from advancedSettingsWidget import AdvancedSettingsWidget
-from imageGraphicsView import ImageGraphicsView
-from circleEditorWidget import CircleEditorWidget
+from .compute_cost_image import compute_cost_image
+from .preprocess_image import preprocess_image
+from .advancedSettingsWidget import AdvancedSettingsWidget
+from .imageGraphicsView import ImageGraphicsView
+from .circleEditorWidget import CircleEditorWidget
 
 class MainWindow(QMainWindow):
     def __init__(self):
diff --git a/setup.py b/setup.py
index 909a6822b480471286ebe77602748768b2da762c..e34828040a293414d65dc1a20093de4b265b414a 100644
--- a/setup.py
+++ b/setup.py
@@ -17,7 +17,7 @@ setup(
     include_package_data=True,
     entry_points = {
         'console_scripts': [
-            'ast2d=ast2d.main:main'
+            'ast2d=ast2d:main'
         ]
     },
     classifiers=[
@@ -34,7 +34,7 @@ setup(
     ],
     python_requires=">=3.10",
     install_requires=[
-        "numpy>=1.23.3",
+        "numpy<=1.26.4",
         "opencv_python>=4.9.0.80",
         "PyQt5>=5.15.11",
         "PyQt5_sip>=12.11.1",