diff --git a/gulpfile.js b/gulpfile.js
index 0708a6f6e..a68799a3a 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -69,7 +69,7 @@ gulp.task("scss:main", scssPipeline({
 
 gulp.task("scss:view", scssPipeline({
   input: paths.app + "styles/view.scss",
-  output: paths.output + "css/"
+  output: paths.output + "view/css/"
 }));
 
 gulp.task("scss", ["scss:main", "scss:view"]);
@@ -107,8 +107,8 @@ gulp.task("template:main", templatePipeline({
 gulp.task("template:view", templatePipeline({
   input: paths.app + "view.mustache",
   output: paths.output + "view/",
-  jspath: "/view/js/main.js",
-  csspath: "/view/css/main.css"
+  jspath: "/view/js/view.js",
+  csspath: "/view/css/view.css"
 }));
 
 gulp.task("template", ["template:view",
diff --git a/scripts/build-worker.clj b/scripts/build-worker.clj
index bb85da7b6..bc435dcbc 100644
--- a/scripts/build-worker.clj
+++ b/scripts/build-worker.clj
@@ -7,9 +7,10 @@
    (b/inputs "src" "vendor")
    {:main 'uxbox.worker
     :output-to "resources/public/js/worker.js"
+    :source-map "resources/public/js/worker.js.map"
     :output-dir "resources/public/js/worker"
     :asset-path "js"
-    :parallel-build true
+    :parallel-build false
     :optimizations :simple
     :static-fns true
     :pretty-print true
diff --git a/scripts/dist-main.clj b/scripts/dist-main.clj
index 6ee309fe8..851c85b13 100644
--- a/scripts/dist-main.clj
+++ b/scripts/dist-main.clj
@@ -6,15 +6,15 @@
   (b/build
    (b/inputs "src" "vendor")
    {:main 'uxbox.main
-    :parallel-build true
+    :parallel-build false
     :warnings {:ns-var-clash false}
     :output-to "dist/js/main.js"
-    :output-dir "dist/js"
+    :source-map "dist/js/main.js.map"
+    :output-dir "dist/js/main"
     :closure-defines {"uxbox.common.constants.url"
                       "https://test.uxbox.io/api"}
     :optimizations :simple
     :externs ["externs/main.js"]
-    :source-map "dist/js/main.js.map"
     :static-fns true
     :pretty-print false
     :language-in  :ecmascript6
diff --git a/scripts/dist-view b/scripts/dist-view
new file mode 100755
index 000000000..8a50a13b0
--- /dev/null
+++ b/scripts/dist-view
@@ -0,0 +1,2 @@
+#!/bin/sh
+lein trampoline run -m clojure.main scripts/dist-view.clj
diff --git a/scripts/dist-view.clj b/scripts/dist-view.clj
new file mode 100644
index 000000000..7230b0bdd
--- /dev/null
+++ b/scripts/dist-view.clj
@@ -0,0 +1,24 @@
+(require '[cljs.build.api :as b])
+
+(println "Building ...")
+
+(let [start (System/nanoTime)]
+  (b/build
+   (b/inputs "src" "vendor")
+   {:main 'uxbox.view
+    :parallel-build false
+    :warnings {:ns-var-clash false}
+    :output-to "dist/view/js/view.js"
+    :source-map "dist/view/js/view.js.map"
+    :output-dir "dist/view/js/view/"
+    :closure-defines {"uxbox.common.constants.url"
+                      "https://test.uxbox.io/api"}
+    :optimizations :simple
+    :externs ["externs/main.js"]
+    :source-map "dist/view/js/view.js.map"
+    :static-fns true
+    :pretty-print false
+    :language-in  :ecmascript6
+    :language-out :ecmascript5
+    :verbose true})
+  (println "... done. Elapsed" (/ (- (System/nanoTime) start) 1e9) "seconds"))
diff --git a/scripts/dist-worker.clj b/scripts/dist-worker.clj
index a291ef147..7f7250e5d 100644
--- a/scripts/dist-worker.clj
+++ b/scripts/dist-worker.clj
@@ -7,8 +7,8 @@
    (b/inputs "src" "vendor")
    {:main 'uxbox.worker
     :output-to "dist/js/worker.js"
-    :output-dir "dist/js/worker"
     :source-map "dist/js/worker.js.map"
+    :output-dir "dist/js/worker"
     :asset-path "js"
     :parallel-build true
     :optimizations :simple
diff --git a/scripts/figwheel.clj b/scripts/figwheel.clj
index 3c194e32c..0531371d1 100644
--- a/scripts/figwheel.clj
+++ b/scripts/figwheel.clj
@@ -5,15 +5,14 @@
   {:figwheel-options {:css-dirs ["resources/public/css"]
                       :server-port 3449
                       :server-ip   "0.0.0.0"}
-   :build-ids ["main", "preview"]
+   :build-ids ["main", "view"]
    :all-builds
    [{:id "main"
      :figwheel {:on-jsload "uxbox.main.ui/init"}
      :source-paths ["src" "vendor"]
      :compiler
      {:main 'uxbox.main
-      :asset-path "js"
-      :parallel-build true
+      :parallel-build false
       :optimizations :none
       :closure-defines {"uxbox.common.constants.url"
                         "https://test.uxbox.io/api"}
@@ -21,7 +20,25 @@
       :language-in  :ecmascript6
       :language-out :ecmascript5
       :output-to "resources/public/js/main.js"
-      :output-dir "resources/public/js"
+      :output-dir "resources/public/js/main"
+      :asset-path "js/main"
+      :verbose true}}
+
+    {:id "view"
+     :figwheel {:on-jsload "uxbox.view.ui/init"}
+     :source-paths ["src" "vendor"]
+     :compiler
+     {:main 'uxbox.view
+      :parallel-build false
+      :optimizations :none
+      :closure-defines {"uxbox.common.constants.url"
+                        "https://test.uxbox.io/api"}
+      :warnings {:ns-var-clash false}
+      :language-in  :ecmascript6
+      :language-out :ecmascript5
+      :output-to "resources/public/view/js/view.js"
+      :output-dir "resources/public/view/js/view"
+      :asset-path "js/view"
       :verbose true}}
     ]})