anchor.diff:  
   (define-command (markov ignore) (&rest nicks) (:authorization T :documentation "Add users to the ignore list." :modulevar markov)
     (dolist (nick nicks)
  -    (pushnew nick (ignored-users markov) :test #'string-equal))
  +    (pushnew nick (uc:config-tree :ignored-users) :test #'string-equal))
     (respond event "Users have been put on the ignore list."))
   
   (define-command (markov unignore) (&rest nicks) (:authorization T :documentation "Remove users from the ignore list." :modulevar markov)
  -  (setf (ignored-users markov) 
  -        (delete-if #'(lambda (nick) (find nick nicks :test #'string-equal)) (ignored-users markov)))
  +  (setf (uc:config-tree :ignored-users)
  +        (delete-if #'(lambda (nick) (find nick nicks :test #'string-equal)) (uc:config-tree :ignored-users)))
     (respond event "Users have been removed from the ignore list."))
   
   (define-command (markov list-ignored) () (:authorization T :documentation "List all ignored users." :modulevar markov)
  
positive.code:     (setf output (string-trim '(#\Space #\Tab #\Return #\Linefeed) output))
      (v:trace :markov "Generated string: ~a" output)
      (if (> (length (split-sequence:split-sequence #\Space output)) 0) output)))
  
  
negative.code:   (:use :cl :colleen :events :alexandria))
  (in-package :org.tymoonnext.colleen.mod.markov)
  
  (defvar *registry-file* (merge-pathnames "markov.registry.uc.lisp" (merge-pathnames "config/" (asdf:system-source-directory :colleen))))
  
  (define-module markov ()
    ((%registry :initarg :registry :initform (make-hash-table :test 'equal) :accessor registry))
    (:documentation "Simple markov chain module."))
  
  (defmethod start ((markov markov))
    (let ((uc:*config*))
      (uc:load-configuration *registry-file*)
      (setf (registry markov) uc:*config*))
    markov)
  
  (defmethod stop ((markov markov))
    (uc:save-configuration *registry-file* :object (registry markov)))
  
  (define-handler (privmsg-event event) (:modulevar markov)
    (when (and (char= (aref (channel event) 0) #\#)
               (find (format NIL "~a/~a" (name (server event)) (channel event)) (uc:config-tree :active-in) :test #'string-equal))
      (unless (char= (aref (message event) 0) #\!)
        (learn markov (message event)))
  
      (when (< (random 100) (uc:config-tree :probability))
        (let ((wordlist (split-sequence:split-sequence #\Space (message event) :remove-empty-subseqs T)))
          (when (cdr wordlist)
            (let ((response (generate-string markov (first wordlist) (second wordlist))))
  