anchor.diff:                       (v:debug :backup "Copying file ~a" pathname)
                        (cl-fad:copy-file pathname target-path))))))
         (v:info :backup "Starting backup.")
  -      (v:debug :backup "Stopping all active modules...")
  +      (v:debug :backup "Saving storage of all active modules...")
         (dolist (module running-modules)
           (handler-bind ((error #'(lambda (err)
  -                                  (v:error :backup "Error stopping module ~a: ~a" module err)
  +                                  (v:error :backup "Error saving storage for module ~a: ~a" module err)
                                     (invoke-restart 'skip))))
  -          (stop-module module)))
  +          (save-storage module)))
         (v:debug :backup "Copying folder ~a to ~a..." (namestring *config-directory*) (namestring target-dir))
         (copy-fun *config-directory*)
         (cl-fad:walk-directory *config-directory* #'copy-fun :directories T)
  -      (v:debug :backup "Starting all previously active modules...")
  -      (dolist (module running-modules)
  -        (handler-bind ((error #'(lambda (err)
  -                                  (v:error :backup "Error starting module ~a: ~a" module err)
  -                                  (invoke-restart 'skip))))
  -          (start-module module)))
         (v:info :backup "Backup complete."))))
   
   (defun restore (backup-name)
  
positive.code:                      (v:debug :backup "Copying file ~a" pathname)
                       (cl-fad:copy-file pathname target-path))))))
        (v:info :backup "Starting restore.")
        (v:debug :backup "Stopping all active modules...")
        (dolist (module running-modules)
          (handler-bind ((error #'(lambda (err)
                                    (v:error :backup "Error stopping module ~a: ~a" module err)
                                    (invoke-restart 'skip))))
            (stop-module module)))
        (v:debug :backup "Deleting old config folder...")
        (cl-fad:delete-directory-and-files *config-directory* :if-does-not-exist :ignore)
        (v:debug :backup "Copying folder ~a to ~a..." (namestring source-dir) (namestring *config-directory*))
        (copy-fun source-dir)
        (cl-fad:walk-directory source-dir #'copy-fun :directories T)
        (v:debug :backup "Starting all previously active modules...")
        (dolist (module running-modules)
          (handler-bind ((error #'(lambda (err)
                                    (v:error :backup "Error starting module ~a: ~a" module err)
                                    (invoke-restart 'skip))))
            (start-module module)))
        (v:info :backup "Restore complete."))))
  
  (defun start-timer ()
  
negative.code:      (%timer :initform NIL :accessor timer))
    (:documentation "Automatic periodic configuration backup module."))
  
  (defmethod load-storage :before ((backup backup))
    (with-module-storage (backup)
      (setf (interval backup) (uc:config-tree :interval)
            (backup-directory backup) (parse-namestring (or (uc:config-tree :directory)
                                                            (namestring (merge-pathnames "backup"
                                                                                         (asdf:system-source-directory :colleen))))))))
  
  (defmethod save-storage :before ((backup backup))
    (with-module-storage (backup)
      (setf (uc:config-tree :interval) (interval backup)
            (uc:config-tree :directory) (namestring (backup-directory backup)))))
  
  (defmethod start ((backup backup))
    (setf (timer backup) (trivial-timers:make-timer #'backup :name "Backup-Thread"))
    (start-timer))
  
  (defmethod stop ((backup backup))
    (trivial-timers:unschedule-timer (timer backup))
    (setf (timer backup) NIL))
  
  (defun backup ()
    (let* ((directory (backup-directory (get-module :backup)))
  