diff --git a/sqrt.lisp b/sqrt.lisp
index e69de29..39622a0 100644
--- a/sqrt.lisp
+++ b/sqrt.lisp
@@ -0,0 +1,17 @@
+(in-package :math-algo)
+
+(defun gradually-approaching-sqrt (x)
+  (defun square (x)
+    (* x x))
+  (defun average (x y)
+    (/ (+ x y)
+       2))
+  (defun good-enough? (guess x)
+    (< (abs (- (square guess) x)) 0.001))
+  (defun improve (guess x)
+    (average guess (/ x guess)))
+  (defun sqrt-iter (guess x)
+    (if (good-enough? guess x)
+        guess
+        (sqrt-iter (improve guess x) x)))
+  (sqrt-iter 1.0 x))
diff --git a/package.lisp b/package.lisp
index 15202b8..e908c09 100644
--- a/package.lisp
+++ b/package.lisp
@@ -4,4 +4,4 @@
   (:documentation "Implement some math algorithms")
   (:nicknames :math-algo)
   (:use :common-lisp)
-  (:export sqrt))
+  (:export gradually-approaching-sqrt))
rename package.lisp->packages.lisp
merge