   [string]
   (->> string (map int) (reduce + 0)))
 
-(defn enterprise
-  "Calculate the shortest string that is more complicated than itself."
+(defmacro enterprise
+  "Calculate the shortest string that is more complicated than the specified sym."
+  [sym]
+  `(let [source# (-> ~sym quote repl/source-fn)]
+     (->> (babel)
+       (drop-while #(<= (complexity %) (result-length source#)))
+       first)))
+
+(defn yo-dawg
+  "I heard you like complexity, so I put some enterprise in your enterprise."
   []
-  (let [its-own-source (repl/source-fn 'enterprise)]
-    (->> (babel)
-         (drop-while (fn [s] (<= (complexity s) (value-length its-own-source))))
-         first)))
+  (enterprise enterprise))
 
 
 ;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;
;;; Drawing Hands ;;; 
;;;;;;;;;;;;;;;;;;;;;

(defn complexity

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; The Library of Babel ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defn kleene* [elements]
