diff --git a/4_9_Exercises/Question 3.py b/4_9_Exercises/Question 3.py
index a2bd84b1f91c9fff7300693899e860e61ac7ec78..e406f0d6b888f3cb630772683fe0551960696bde 100644
--- a/4_9_Exercises/Question 3.py	
+++ b/4_9_Exercises/Question 3.py	
@@ -1,20 +1,9 @@
-def nsp(x, y, current=(0, 0)):
-    if current is None:
+def nsp(x, y):
+    if x < 0 or y < 0:
         return 0
-    if current == (x, y):
+    if (0, 0) == (x, y):
         return 1
     else:
-        next_corner = new_index(x, y, current)
-        # uses helper function to find the next corner
-        return nsp(x, y, next_corner[0]) + nsp(x, y, next_corner[1])
-    pass
+        return nsp(x, y - 1) + nsp(x - 1, y)
 
 
-def new_index(x, y, current):
-    # Helper function to find the possible next states, reduced clutter
-    if current[0] < x and current[1] < y:
-        return (current[0], current[1] + 1), (current[0] + 1, current[1])
-    if current[0] >= x and current[1] < y:
-        return (current[0], current[1] + 1), None
-    if current[0] < x and current[1] >= y:
-        return (current[0] + 1, current[1]), None