Index: trunk/index.cgi
===================================================================
--- trunk/index.cgi	(revision 22)
+++ trunk/index.cgi	(revision 23)
@@ -5,12 +5,19 @@
 # javascript:(function(){window.open("http://grim.ath.cx/~peter/bookmarks?uri="+document.location+"&title="+document.title,"edit_bookmark","width=800,height=250")})()
 
-use CGI::Application::Dispatch;
-CGI::Application::Dispatch->dispatch(
-    table => [
-        '[get]'              => { app => 'BookmarkApp', rm => 'list' },
-        'list[get]'          => { app => 'BookmarkApp', rm => 'list' },
-        'feed[get]'          => { app => 'BookmarkApp', rm => 'feed' },
-        ':id/:field?[get]'   => { app => 'BookmarkApp', rm => 'view' },
-        ':id?[post]'         => { app => 'BookmarkApp', rm => 'edit' },
-    ],
-);
+package BookmarkApp::Dispatch;
+use base 'CGI::Application::Dispatch';
+
+sub dispatch_args {
+    return {
+        table => [
+            '[get]'              => { app => 'BookmarkApp', rm => 'list' },
+            'list[get]'          => { app => 'BookmarkApp', rm => 'list' },
+            'feed[get]'          => { app => 'BookmarkApp', rm => 'feed' },
+            ':id/:field?[get]'   => { app => 'BookmarkApp', rm => 'view' },
+            ':id?[post]'         => { app => 'BookmarkApp', rm => 'edit' },
+        ],
+    };
+}
+
+package main;
+BookmarkApp::Dispatch->dispatch();
