diff --git a/README.md b/README.md
index 4cce834..a8ae68e 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,9 @@ math_algorithm
 Use Common Lisp to implement it.

 Use ASDF build math_algorithm
-1、(push "/home/tyrion/Document/math_algorithm/" asdf:*central-registry*);
-2、(asdf:compile-system :com.gigamonkeys.math-algorithm);
-3、(asdf:load-system :com.gigamonkeys.math-algorithm);
+1、(push "/home/tyrion/Document/math-algorithm/" asdf:*central-registry*);
+2、(asdf:compile-system :math-algorithm);
+3、(asdf:load-system :math-algorithm);

 Test and Use:
 1、(in-package :math-algo)
diff --git a/expt.lisp b/expt.lisp
index e69de29..85fc057 100644
--- a/expt.lisp
+++ b/expt.lisp
@@ -0,0 +1,9 @@
+(in-package :math-algo)
+
+(defun my-expt-recu-impl (b n)
+  (if (= n 0)
+      1
+      (* (expt b (- n 1))
+         b)))
+
+
diff --git a/math-algorithm.asd b/math-algorithm.asd
index 7525cc5..299d29c 100644
--- a/math-algorithm.asd
+++ b/math-algorithm.asd
@@ -1,9 +1,9 @@
-(defpackage :com.gigamonkeys.math-algorithm-system
+(defpackage :math-algorithm-system
   (:use :asdf :cl))
-(in-package :com.gigamonkeys.math-algorithm-system)
+(in-package :math-algorithm-system)

-(defsystem com.gigamonkeys.math-algorithm
-  :name "com.gigamonkeys.math-algorithm"
+(defsystem math-algorithm
+  :name "math-algorithm"
   :author "Tyrion Lannister <Tyrion.Lannister.274AL@gmail.com>"
   :version "0.1"
   :maintainer "Tyrion Lannister <Tyrion.Lannister.274AL@gmail.com>"
@@ -14,6 +14,7 @@
   ((:file "packages")
    (:file "abs" :depends-on ("packages"))
    (:file "average" :depends-on ("packages"))
+   (:file "expt" :depends-on ("packages"))
    (:file "factorial" :depends-on ("packages"))
    (:file "fib" :depends-on ("packages"))
    (:file "square" :depends-on ("packages"))
diff --git a/packages.lisp b/packages.lisp
index 4470d36..41e554e 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -1,7 +1,7 @@
 ;;; -*- mode: lisp -*-
 (in-package :cl-user)

-(defpackage :com.gigamonkeys.math-algorithm
+(defpackage :math-algorithm
   (:documentation "Implement some math algorithms")
   (:nicknames :math-algo)
   (:use :common-lisp)
@@ -14,4 +14,5 @@
            my-factorial-do-impl
            my-fib-do-impl
            my-fib-recu-impl
-           my-fib-iter-impl))
+           my-fib-iter-impl
+           my-expt-recu-impl))
diff --git a/README.md b/README.md
index 4cce834..a8ae68e 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,9 @@ math_algorithm
 Use Common Lisp to implement it.

 Use ASDF build math_algorithm
-1、(push "/home/tyrion/Document/math_algorithm/" asdf:*central-registry*);
-2、(asdf:compile-system :com.gigamonkeys.math-algorithm);
-3、(asdf:load-system :com.gigamonkeys.math-algorithm);
+1、(push "/home/tyrion/Document/math-algorithm/" asdf:*central-registry*);
+2、(asdf:compile-system :math-algorithm);
+3、(asdf:load-system :math-algorithm);

 Test and Use:
 1、(in-package :math-algo)
diff --git a/expt.lisp b/expt.lisp
index 85fc057..db0f30d 100644
--- a/expt.lisp
+++ b/expt.lisp
@@ -6,4 +6,14 @@
       (* (expt b (- n 1))
          b)))

+(defun my-expt-iter-impl (b n)
+  (defun my-expt-iter (result b counter)
+    (if (= counter 0)
+        result
+        (my-expt-iter (* result b) b (- counter 1))))
+  (my-expt-iter 1 b n))

+(defun my-expt-do-impl (b n)
+  (do ((counter n (1- counter))
+       (result 1 (* b result)))
+      ((= counter 0) result)))
diff --git a/math-algorithm.asd b/math-algorithm.asd
index 7525cc5..299d29c 100644
--- a/math-algorithm.asd
+++ b/math-algorithm.asd
@@ -1,9 +1,9 @@
-(defpackage :com.gigamonkeys.math-algorithm-system
+(defpackage :math-algorithm-system
   (:use :asdf :cl))
-(in-package :com.gigamonkeys.math-algorithm-system)
+(in-package :math-algorithm-system)

-(defsystem com.gigamonkeys.math-algorithm
-  :name "com.gigamonkeys.math-algorithm"
+(defsystem math-algorithm
+  :name "math-algorithm"
   :author "Tyrion Lannister <Tyrion.Lannister.274AL@gmail.com>"
   :version "0.1"
   :maintainer "Tyrion Lannister <Tyrion.Lannister.274AL@gmail.com>"
@@ -14,6 +14,7 @@
   ((:file "packages")
    (:file "abs" :depends-on ("packages"))
    (:file "average" :depends-on ("packages"))
+   (:file "expt" :depends-on ("packages"))
    (:file "factorial" :depends-on ("packages"))
    (:file "fib" :depends-on ("packages"))
    (:file "square" :depends-on ("packages"))
diff --git a/packages.lisp b/packages.lisp
index 4470d36..41e554e 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -1,7 +1,7 @@
 ;;; -*- mode: lisp -*-
 (in-package :cl-user)

-(defpackage :com.gigamonkeys.math-algorithm
+(defpackage :math-algorithm
   (:documentation "Implement some math algorithms")
   (:nicknames :math-algo)
   (:use :common-lisp)
@@ -14,4 +14,5 @@
            my-factorial-do-impl
            my-fib-do-impl
            my-fib-recu-impl
-           my-fib-iter-impl))
+           my-fib-iter-impl
+           my-expt-recu-impl))
diff --git a/packages.lisp b/packages.lisp
index 41e554e..4477740 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -9,6 +9,9 @@
            my-abs
            my-average
            my-sqrt
+           my-expt-recu-impl
+           my-expt-iter-impl
+           my-expt-do-impl
            my-factorial-recu-impl
            my-factorial-iter-impl
            my-factorial-do-impl