   (interactive)
   (setq pos (point))
   (setq ns (get-text-property 1 'ns))
+  (sayid-select-traced-buf)
   (nrepl-send-sync-request (list "op" "sayid-trace-fn"
                                  "fn-name" (get-text-property (point) 'name)
                                  "fn-ns" (get-text-property (point) 'ns)
                                  "type" "inner"))
   (sayid-show-traced ns)
-  (goto-char pos))
+  (goto-char pos)
+  (sayid-select-default-buf))
 
 (defun sayid-traced-buf-outer-trace-fn ()
   (interactive)
   (setq pos (point))
   (setq ns (get-text-property 1 'ns))
+  (sayid-select-traced-buf)
   (nrepl-send-sync-request (list "op" "sayid-trace-fn"
                                  "fn-name" (get-text-property (point) 'name)
                                  "fn-ns" (get-text-property (point) 'ns)


(defvar sayid-trace-ns-dir nil)
(defvar sayid-meta)
(defvar sayid-traced-buf-spec '("*sayid-traced*" . sayid-traced-mode))


(defun sayid-get-trace-ns-dir ()
  (interactive)
  (or sayid-trace-ns-dir
      (let* ((default-dir (file-name-directory (buffer-file-name)))
             (input (read-string "Scan dir for namespaces : "
                                 default-dir)))
        (setq sayid-trace-ns-dir input)
        input)))

(defun sayid-set-trace-ns-dir ()
  (interactive)
  (let* ((default-dir (file-name-directory (buffer-file-name)))
         (input (read-string "Scan dir for namespaces : "
                             (or sayid-trace-ns-dir
                                 default-dir))))
    (setq sayid-trace-ns-dir input)
    input))

(defun sayid-init-buf (&optional buf-name)
  (let ((buf-name- (or buf-name "*sayid*")))
    (pop-to-buffer buf-name-)
    (read-only-mode 0)
    (erase-buffer)
    (get-buffer buf-name-)))

                    buf)))

(defun insert-text-prop-ring (pairs buf)
  (push-buf-state-to-ring pairs)
  (insert-text-prop-alist pairs buf))

(defun insert-traced-name (buf s)
