diff --git a/sqrt.lisp b/sqrt.lisp
index 39622a0..67fb84f 100644
--- a/sqrt.lisp
+++ b/sqrt.lisp
@@ -6,12 +6,13 @@
   (defun average (x y)
     (/ (+ x y)
        2))
-  (defun good-enough? (guess x)
+  (defun good-enough? (guess)
     (< (abs (- (square guess) x)) 0.001))
-  (defun improve (guess x)
+  (defun improve (guess)
     (average guess (/ x guess)))
-  (defun sqrt-iter (guess x)
-    (if (good-enough? guess x)
+  (defun sqrt-iter (guess)
+    (if (good-enough? guess)
         guess
-        (sqrt-iter (improve guess x) x)))
-  (sqrt-iter 1.0 x))
+        (sqrt-iter (improve guess))))
+  (sqrt-iter 1.0))
+
diff --git a/packages.lisp b/packages.lisp
index a8c4be0..70c429f 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -5,4 +5,5 @@
   (:documentation "Implement some math algorithms")
   (:nicknames :math-algo)
   (:use :common-lisp)
-  (:export gradually-approaching-sqrt))
+  (:export square
+           gradually-approaching-sqrt))
diff --git a/sqrt.lisp b/sqrt.lisp
index 67fb84f..0c3a556 100644
--- a/sqrt.lisp
+++ b/sqrt.lisp
@@ -1,8 +1,6 @@
 (in-package :math-algo)

 (defun gradually-approaching-sqrt (x)
-  (defun square (x)
-    (* x x))
   (defun average (x y)
     (/ (+ x y)
        2))
diff --git a/square.lisp b/square.lisp
index e69de29..3b1512f 100644
--- a/square.lisp
+++ b/square.lisp
@@ -0,0 +1,4 @@
+(in-package :math-algo)
+
+(defun square (x)
+    (* x x))
diff --git a/average.lisp b/average.lisp
index e69de29..828c260 100644
--- a/average.lisp
+++ b/average.lisp
@@ -0,0 +1,5 @@
+(in-package :math-algo)
+
+(defun average (x y)
+    (/ (+ x y)
+       2))
diff --git a/packages.lisp b/packages.lisp
index 70c429f..b486e0a 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -6,4 +6,5 @@
   (:nicknames :math-algo)
   (:use :common-lisp)
   (:export square
+           average
            gradually-approaching-sqrt))
diff --git a/sqrt.lisp b/sqrt.lisp
index 0c3a556..9ea8392 100644
--- a/sqrt.lisp
+++ b/sqrt.lisp
@@ -1,9 +1,6 @@
 (in-package :math-algo)

 (defun gradually-approaching-sqrt (x)
-  (defun average (x y)
-    (/ (+ x y)
-       2))
   (defun good-enough? (guess)
     (< (abs (- (square guess) x)) 0.001))
   (defun improve (guess)