Use dynamic handlers
diff --git a/src/setup.app.src b/src/setup.app.src
index 8c85e14..ae685c9 100644
--- a/src/setup.app.src
+++ b/src/setup.app.src
@@ -17,7 +17,10 @@
   {registered, []},
   {applications, [
                   kernel,
-                  stdlib
+                  stdlib,
+                  couch_epi,
+                  chttpd,
+                  couch_log
                  ]},
   {mod, { setup_app, []}},
   {env, []}
diff --git a/src/setup_httpd_handlers.erl b/src/setup_httpd_handlers.erl
new file mode 100644
index 0000000..2d7d82e
--- /dev/null
+++ b/src/setup_httpd_handlers.erl
@@ -0,0 +1,21 @@
+% Licensed under the Apache License, Version 2.0 (the "License"); you may not
+% use this file except in compliance with the License.  You may obtain a copy of
+% the License at
+%
+%   http://www.apache.org/licenses/LICENSE-2.0
+%
+% Unless required by applicable law or agreed to in writing, software
+% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+% License for the specific language governing permissions and limitations under
+% the License.
+
+-module(setup_httpd_handlers).
+
+-export([url_handler/1, db_handler/1, design_handler/1]).
+
+url_handler(<<"_cluster_setup">>) -> fun setup_httpd:handle_setup_req/1.
+
+db_handler(_) -> no_match.
+
+design_handler(_) -> no_match.
diff --git a/src/setup_sup.erl b/src/setup_sup.erl
index b697333..c86237d 100644
--- a/src/setup_sup.erl
+++ b/src/setup_sup.erl
@@ -35,5 +35,6 @@
 %% ===================================================================
 
 init([]) ->
-    {ok, { {one_for_one, 5, 10}, []} }.
-
+    {ok, { {one_for_one, 5, 10}, [
+        chttpd_handlers:provider(setup, setup_httpd_handlers)
+    ]} }.