diff --git a/.gitignore b/.gitignore
index 2b0f1a2..db44fc6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,5 @@ pom.xml.asc
 /*-init.clj
 doc/index.html
 doc/codox
+/node_modules
+/output
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 631b2fa..6c82f0d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,27 @@
 
 Date: unreleased
 
+## Version 0.3.4 ##
+
+Date: 2015-03-14
+
+- Improve cljx build process.
+
+
+## Version 0.3.3 ##
+
+Date: 2015-03-14
+
+- Improvements on project.clj.
+
+
+## Version 0.3.2 ##
+
+Date: 2015-02-08
+
+- Empty version, only exists because clojars does not
+  allow remove wrong uploaded versions.
+
 
 ## Version 0.3.0 ##
 
diff --git a/build-latest-docs.sh b/build-latest-docs.sh
new file mode 100755
index 0000000..f281be7
--- /dev/null
+++ b/build-latest-docs.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+VERSION="latest"
+
+lein doc
+(cd doc; make)
+
+rm -rf /tmp/cats-doc/
+mkdir -p /tmp/cats-doc/
+mv doc/index.html /tmp/cats-doc/
+mv doc/codox /tmp/cats-doc/codox
+cp logo/logo.png /tmp/cats-doc/logo.png
+
+git checkout gh-pages;
+
+rm -rf ./$VERSION
+mv /tmp/cats-doc/ ./$VERSION
+
+git add --all ./$VERSION
+git commit -a -m "Update ${VERSION} doc"
diff --git a/doc/cats.adoc b/doc/cats.adoc
index bacc215..3d40ce2 100644
--- a/doc/cats.adoc
+++ b/doc/cats.adoc
@@ -1,7 +1,7 @@
 Cats Documentation
 ==================
 Andrey Antukh & Alejandro Gómez
-0.3.0
+0.3.4
 :toc: left
 :numbered:
 :source-highlighter: pygments
@@ -47,7 +47,7 @@ it as a dependency in your *_project.clj_*:
 
 [source,clojure]
 ----
-[cats "0.3.0"]
+[cats "0.3.4"]
 ----
 
 
@@ -71,7 +71,7 @@ Then for cats:
 <dependency>
     <groupId>cats</groupId>
     <artifactId>cats</artifactId>
-    <version>0.3.0</version>
+    <version>0.3.4</version>
 </dependency>
 ----
 
diff --git a/project.clj b/project.clj
index 55ccdcc..11c1117 100644
--- a/project.clj
+++ b/project.clj
@@ -1,13 +1,12 @@
-(defproject cats "0.3.0-SNAPSHOT"
+(defproject cats "0.3.4"
   :description "Category Theory abstractions for Clojure"
   :url "https://github.com/funcool/cats"
 
   :license {:name "BSD (2 Clause)"
             :url "http://opensource.org/licenses/BSD-2-Clause"}
 
-  :dependencies [[org.clojure/clojure "1.6.0"]
-                 [org.clojure/clojurescript "0.0-2760"]]
-  :source-paths ["target/src" "src/clj"]
+  :dependencies []
+  :source-paths ["output/src" "src/clj"]
 
   :deploy-repositories {"releases" :clojars
                         "snapshots" :clojars}
@@ -16,43 +15,45 @@
                   ["deploy" "clojars"]]
 
   :plugins [[codox "0.8.10"]]
-  :codox {:sources ["target/classes"]
+  :codox {:sources ["output/src"]
           :output-dir "doc/codox"}
 
   :jar-exclusions [#"\.cljx|\.swp|\.swo|\.DS_Store|user.clj"]
 
   :cljx {:builds [{:source-paths ["src/cljx"]
-                   :output-path "target/src"
+                   :output-path "output/src"
                    :rules :clj}
                   {:source-paths ["src/cljx"]
-                   :output-path "target/src"
+                   :output-path "output/src"
                    :rules :cljs}
                   {:source-paths ["spec"]
-                   :output-path "target/spec/clj"
+                   :output-path "output/spec/clj"
                    :rules :clj}
                   {:source-paths ["spec"]
-                   :output-path "target/spec/cljs"
+                   :output-path "output/spec/cljs"
                    :rules :cljs}]}
 
-  :cljsbuild {:test-commands {"spec" ["phantomjs"  "bin/speclj" "target/tests.js"]}
+  :cljsbuild {:test-commands {"spec" ["phantomjs"  "bin/speclj" "output/tests.js"]}
               :builds [{:id "dev"
-                        :source-paths ["target/spec/cljs"
-                                       "target/src"]
-                        :notify-command ["phantomjs" "bin/speclj" "target/tests.js"]
-                        :compiler {:output-to "target/tests.js"
+                        :source-paths ["output/spec/cljs"
+                                       "output/src"]
+                        :notify-command ["phantomjs" "bin/speclj" "output/tests.js"]
+                        :compiler {:output-to "output/tests.js"
                                    :optimizations :simple
                                    :pretty-print true}}
                        {:id "tests"
-                        :source-paths ["target/spec/cljs"
-                                       "target/src"]
-                        :compiler {:output-to "target/tests.js"
+                        :source-paths ["output/spec/cljs"
+                                       "output/src"]
+                        :compiler {:output-to "output/tests.js"
                                    :optimizations :simple
                                    :pretty-print true}}]}
-  :profiles {:dev {:dependencies [[speclj "3.1.0"]
+
+  :profiles {:dev {:dependencies [[org.clojure/clojure "1.6.0"]
+                                  [org.clojure/clojurescript "0.0-3058"]
+                                  [speclj "3.1.0"]
                                   [com.keminglabs/cljx "0.5.0" :exclusions [org.clojure/clojure]]
                                   [org.clojure/tools.namespace "0.2.7"]]
-                   :test-paths ["target/spec/clj"]
+                   :test-paths ["output/spec/clj"]
                    :plugins [[speclj "3.1.0"]
                              [com.keminglabs/cljx "0.5.0" :exclusions [org.clojure/clojure]]
                              [lein-cljsbuild "1.0.4"]]}})
-