diff --git a/resources/public/img/heightmaps/isle_of_man.png b/resources/public/img/heightmaps/isle_of_man.png
new file mode 100644
index 0000000..7de05e9
Binary files /dev/null and b/resources/public/img/heightmaps/isle_of_man.png differ
diff --git a/resources/templates/params.html b/resources/templates/params.html
new file mode 100644
index 0000000..f0e13cb
--- /dev/null
+++ b/resources/templates/params.html
@@ -0,0 +1,37 @@
+{% extends "templates/base.html" %}
+{% block content %}
+<form action="{{servlet-context}}/params" method="POST">
+	<p class="widget">
+		<label for="ruleset">The rule set to use</label>
+		<select name="ruleset">
+			<option value="">No change - use your current rules</option>
+			{% for ruleset in rulesets %}
+			<option value="{{ruleset}}">{{ruleset}}</option>
+			{% endfor %}
+		</select>
+	</p>
+	<p class="widget">
+		<label for="heightmap">The map to use</label>
+		<select name="heightmap">
+			<option value="">No change - use your current map</option>
+			{% for heightmap in heightmaps %}
+			<option value="{{heightmap}}">{{heightmap}}</option>
+			{% endfor %}
+		</select>
+	</p>
+	<p class="widget">
+		<label for="pause">
+			Pause duration
+		</label>
+		<input id="pause" type="range" value="{{pause}}" min="0" max="60" step="5" />
+	</p>
+	<p class="help">
+		The pause beteen computing a new state of your world, in seconds
+	</p>
+	<p class="widget">
+		<label for="submit">When you have chosen your parameters</label>
+        <input name="submit" id="submit" type="submit" value="Save your parameters!"/>
+	</p>
+</form>
+
+{% endblock %}
\ No newline at end of file
diff --git a/resources/templates/trusted-content.html b/resources/templates/trusted-content.html
new file mode 100644
index 0000000..94f188b
--- /dev/null
+++ b/resources/templates/trusted-content.html
@@ -0,0 +1,6 @@
+{% extends "templates/base.html" %}
+{% block content %}
+    <div>
+        {{content|safe}}
+    </div>
+{% endblock %}
diff --git a/src/mw_ui/routes/params.clj b/src/mw_ui/routes/params.clj
new file mode 100644
index 0000000..d7f4150
--- /dev/null
+++ b/src/mw_ui/routes/params.clj
@@ -0,0 +1,56 @@
+(ns mw-ui.routes.params
+  (:use clojure.walk
+        compojure.core)
+  (:require [hiccup.core :refer [html]]
+            [mw-engine.heightmap :as heightmap]
+            [mw-parser.bulk :as compiler]
+            [mw-ui.layout :as layout]
+            [mw-ui.util :as util]
+            [mw-ui.render-world :as world]
+            [noir.session :as session]))
+
+(defn- send-params []
+  {{:title "Choose your world"
+    :heightmaps (util/list-resources "resources/public/img/heightmaps" #"([0-9a-z-_]+).png")
+    :pause (or (session/get :pause) 5)
+    :rulesets (util/list-resources "resources/rulesets" #"([0-9a-z-_]+).txt")
+    })
+
+(defn params-page 
+  "Handler for params request. If no `request` passed, show empty params form.
+   If `request` is passed, put parameters from request into session and show
+   the world page."
+  ([]
+    (layout/render "params.html" (send-params)))
+  ([request]
+    (try
+      (let [params (keywordize-keys (:form-params request))
+            map (:heightmap params)
+            pause (:pause params)
+            rulefile (:ruleset params)
+            rulepath (str "resources/rulesets/" rulefile ".txt")]
+        (if (not (= map "")) 
+          (session/put! :world 
+                        (heightmap/apply-heightmap 
+                          (str "resources/public/img/heightmaps/" map ".png"))))
+        (if (not (= rulefile ""))
+          (do
+            (session/put! :rule-text (slurp rulepath))
+            (session/put! :rules (compiler/compile-file rulepath))))
+        (if (not (= pause ""))
+          (session/put! :pause pause))
+        (layout/render "params.html" 
+                       (merge (send-params) 
+                              {:r rulefile
+                               :h map
+                               :message "Your parameters are saved, now look at your world"})))
+      (catch Exception e
+        (let [params (keywordize-keys (:form-params request))]
+          (layout/render "params.html" 
+                         (merge (send-params)
+                                {:title "Choose your world" 
+                                 :r (:ruleset params)
+                                 :h (:heightmap params)
+                                 :message "Your paramters are not saved"
+                                 :error (str (.getName (.getClass e)) ": " (.getMessage e) "; " params)}
+                                )))))))