diff --git a/live_wire.py b/live_wire.py
index e42f7d5412c94fbf86cc2408a66da67ac62b92a9..71fcc28db2f933eb64aaff8428d92f1cdca60b3a 100644
--- a/live_wire.py
+++ b/live_wire.py
@@ -1,4 +1,3 @@
-import time
 import cv2
 import numpy as np
 import matplotlib.pyplot as plt
@@ -8,62 +7,40 @@ from skimage.feature import canny
 from skimage.graph import route_through_array
 from scipy.signal import convolve2d
 
-'''
-### Canny Edge cost image
-def compute_cost_image(path, sigma=3):
-
-    ### Load image
-    image = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
-    
-    # Apply histogram equalization
-    image_contrasted = exposure.equalize_adapthist(image, clip_limit=0.01)
+### Disk live wire cost image
 
-    # Apply smoothing
-    smoothed_img = gaussian(image_contrasted, sigma=sigma)
+def compute_disk_size(user_radius, upscale_factor=1.2):
+    return int(np.ceil(upscale_factor * 2 * user_radius + 1) // 2 * 2 + 1)
 
-    # Apply Canny edge detection
-    canny_img = canny(smoothed_img)
 
-    # Create cost image
-    cost_img = 1.0 / (canny_img + 1e-5)  # Invert edges: higher cost where edges are stronger
+def load_image(path):
+    return cv2.imread(path, cv2.IMREAD_GRAYSCALE)
 
-    return cost_img
+def preprocess_image(image, sigma=3, clip_limit=0.01):
+    # Apply histogram equalization
+    image_contrasted = exposure.equalize_adapthist(image, clip_limit=clip_limit)
 
-def find_path(cost_image, points):
+    # Apply smoothing
+    smoothed_img = gaussian(image_contrasted, sigma=sigma)
 
-    if len(points) != 2:
-        raise ValueError("Points should be a list of 2 points: seed and target.")
-    
-    seed_rc, target_rc = points
+    return smoothed_img
 
-    path_rc, cost = route_through_array(
-        cost_image, 
-        start=seed_rc, 
-        end=target_rc, 
-        fully_connected=True
-    )
 
-    return path_rc
-'''
+def compute_cost_image(path, user_radius, sigma=3, clip_limit=0.01):
 
-### Disk live wire cost image
-def compute_cost_image(path, sigma=3, disk_size=15):
+    disk_size = compute_disk_size(user_radius)
 
     ### Load image
-    image = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
-
-    # Apply histogram equalization
-    image_contrasted = exposure.equalize_adapthist(image, clip_limit=0.01)
+    image = load_image(path)
 
     # Apply smoothing
-    smoothed_img = gaussian(image_contrasted, sigma=sigma)
+    smoothed_img = preprocess_image(image, sigma=sigma, clip_limit=clip_limit)
 
     # Apply Canny edge detection
     canny_img = canny(smoothed_img)
 
     # Do disk thing
     binary_img = canny_img
-    k_size = 17
     kernel = circle_edge_kernel(k_size=disk_size)
     convolved = convolve2d(binary_img, kernel, mode='same', boundary='fill')
 
@@ -128,12 +105,7 @@ def circle_edge_kernel(k_size=5, radius=None):
     return kernel
 
 
-
-
-
-
-
-# Other functions 
+# Other functions (to be implemented?)
 def downscale(img, points, scale_percent):
     """
     Downsample `img` to `scale_percent` size and scale the given points accordingly.
@@ -160,39 +132,4 @@ def downscale(img, points, scale_percent):
         scaled_seed_xy = (int(seed_xy[0] * scale_x), int(seed_xy[1] * scale_y))
         scaled_target_xy = (int(target_xy[0] * scale_x), int(target_xy[1] * scale_y))
 
-        return downsampled_img, (scaled_seed_xy, scaled_target_xy)
-
-def compute_cost(image, sigma=3.0, epsilon=1e-5):
-    """
-    Smooth the image, run Canny edge detection, then invert the edge map into a cost image.
-    """
-
-    # Apply histogram equalization
-    image_contrasted = exposure.equalize_adapthist(image, clip_limit=0.01)
-
-    # Apply smoothing
-    smoothed_img = gaussian(image_contrasted, sigma=sigma)
-
-    # Apply Canny edge detection
-    canny_img = canny(smoothed_img)
-
-    # Create cost image
-    cost_img = 1.0 / (canny_img + epsilon)  # Invert edges: higher cost where edges are stronger
-
-    return cost_img, canny_img
-
-def backtrack_pixels_on_image(img_color, path_coords, bgr_color=(0, 0, 255)):
-    """
-    Color the path on the (already converted BGR) image in the specified color.
-    `path_coords` should be a list of (row, col) or (y, x).
-    """
-    for (row, col) in path_coords:
-        img_color[row, col] = bgr_color
-    return img_color
-
-def export_path(path_coords, path_name):
-    """
-    Export the path to a np array.
-    """
-    np.save(path_name, path_coords)
-    return None
+        return downsampled_img, (scaled_seed_xy, scaled_target_xy)
\ No newline at end of file