diff --git a/just/just.fnl b/just/just.fnl
index 89bc84d..01d58f9 100644
--- a/just/just.fnl
+++ b/just/just.fnl
@@ -99,16 +99,40 @@ progress, trough {
   (let [webview (WebKit2.WebView {
                                   :on_notify
                                   #(handle-webview-properties $1 $2 bus)
-                                  })]
-    (bus:subscribe :fetch #(webview:load_uri $1))
-    (bus:subscribe :stop-loading #(webview:stop_loading))
-    (bus:subscribe :reload #(webview:reload))
-    (bus:subscribe :go-back #(if (webview:can_go_back)
-                                 (webview:go_back)))
 
+                                  })]
     (load-adblocks webview.user_content_manager content-filter-store)
     webview))
 
+(fn pane-cave [bus]
+  (let [widget (Gtk.Notebook { :show_tabs false })
+        tabs {}
+        new-tab (fn []
+                  (print "new tab")
+                  (let [v (new-webview bus)
+                        i (widget:append_page v)]
+                    (tset tabs i v)
+                    (v:show)
+                    v))
+        current #(. tabs widget.page)]
+    (bus:subscribe :fetch  #(match (current) c (c:load_uri $1)))
+    (bus:subscribe :stop-loading
+                   #(match (current) c (c:stop_loading)))
+    (bus:subscribe :reload
+                   #(match (current) c (c:reload)))
+    (bus:subscribe :go-back
+                   #(match (current) c (and (c:can_go_back) (c:go_back))))
+    (bus:subscribe :new-tab new-tab)
+    {
+     :new-tab new-tab
+     :current-tab current
+     :widget widget
+     :next-tab (fn [self]
+                 (let [n (+ 1 widget.page)]
+                   (widget:set_current_page (if (. tabs n) n 0)))
+                 (widget:get_current_page))
+     }))
+
 (let [current-url "https://terse.telent.net"
       bus (event-bus)
       window (Gtk.Window {
@@ -136,14 +160,20 @@ progress, trough {
                              :on_clicked #(bus:publish :stop-loading)
                              })
                 (: :set_image (named-image "process-stop")))
+      new-tab (Gtk.Button {
+                           :on_clicked #(bus:publish :new-tab)
+                           :label "➕"
+                           })
       refresh (doto (Gtk.Button {
                                  :on_clicked #(bus:publish :reload)
                                  })
                 (: :set_image (named-image "view-refresh")))
-      ;; views (Gtk.Notebook {
-      ;;                      :show_tabs false
-      ;;                      })
-      webview (new-webview bus)
+      views (pane-cave bus)
+      next-tab (Gtk.Button {
+                            :label ">>"
+                            :on_clicked  #(views:next-tab)
+                            })
+
       back (doto
                (Gtk.Button {
                             :on_clicked #(bus:publish :go-back)
@@ -161,24 +191,23 @@ progress, trough {
   (bus:subscribe :stop-loading
                  (fn [] (stop:hide) (refresh:show)))
 
+  (views:new-tab)
+
   (nav-bar:pack_start back false false 2)
   (nav-bar:pack_start refresh false false 2)
   (nav-bar:pack_start stop false false 2)
   (nav-bar:pack_start url  true true 2)
+  (nav-bar:pack_end next-tab false false 2)
+  (nav-bar:pack_end new-tab false false 2)
 
   (container:pack_start nav-bar false false 5)
   (container:pack_start progress-bar false false 0)
-  (container:pack_start webview true true 5)
-
-  (bus:publish :fetch current-url)
+  (container:pack_start views.widget true true 5)
 
   (window:add container)
 
-  (window:show_all))
-
-(: (WebKit2.WebContext:get_default) :get_website_data_manager)
-
-
+  (window:show_all)
+  (bus:publish :fetch current-url))
 
 
 (Gtk.main)