    :content (label "hello") ;; TODO replace label => (build-content)
    ))
 
+(def f (make-frame (build-content)))
+(show! f)
+(config! f :content (build-content))
+
+
 (defn -main [& args]
   (invoke-later
    (->

                                               :columns 80
                                               ))
                       "span"]])]
    (let [te-name (select form [:#username])
          lb-log (select form [:#log])
          c (chan)]
      (listen te-name
              :document (fn [e]
                          (put! c (text te-name)))
              :focus-gained (fn [e]
                             (go-loop []
                                      (let [[v ch] (alts! [c (timeout 1000)])]
                                        (if (not= v "stop")
                                          (do
                                            (if (not (blank? v))
                                              (log lb-log (str "read " v ", waiting continues...\n"))
                                              (log lb-log (str "timeout reached, getting avatar for " (text te-name) "\n")))
                                            (recur))
                                          (log lb-log "exiting loop.")))))
              :focus-lost (fn [e]
                            (log lb-log "sending stop\n")
                            (put! c "stop")))

      )
      form
      )
    )
;; (config! f :content (build-content))
;; (def f (make-frame (build-content)))
;; (show! f)

(defn build-posts-tab []
  (label "Posts"))

  (:use [seesaw.mig])
  (:use [seesaw.widgets.log-window])
  (:require [clojure.string :refer [blank?]])
  (:require [clojure.core.async :refer [chan >!! <!! <! >! alts!! alts! timeout thread put! go go-loop close!]])
  )

(require '[clojure.core.async :refer [chan >!! <!! <! >! alts!! alts! timeout thread put! go go-loop close!]])

(defn build-avatars-tab []
  (let [bg-stamp-pos (button-group)
