diff --git a/src/App.svelte b/src/App.svelte
index deb5cb0..e02da57 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -1,5 +1,5 @@
diff --git a/src/editor/schema.ts b/src/editor/schema.ts
index 5c44419..434eadb 100644
--- a/src/editor/schema.ts
+++ b/src/editor/schema.ts
@@ -1,5 +1,5 @@
import { Schema, type Attrs } from "prosemirror-model";
-import { parse, inject } from "regexparam";
+import { parse } from "regexparam";
import { routes } from "../lib/routes";
const hex = (x: string) => ("0" + parseInt(x).toString(16)).slice(-2);
diff --git a/src/lib/router.ts b/src/lib/router.ts
new file mode 100644
index 0000000..d79b7bf
--- /dev/null
+++ b/src/lib/router.ts
@@ -0,0 +1,37 @@
+import navaid from "navaid";
+import { writable } from "svelte/store";
+
+import ChooseWorld from "../views/ChooseWorld.svelte";
+import CreateWorld from "../views/CreateWorld.svelte";
+import JoinWorld from "../views/JoinWorld.svelte";
+import NotFound from "../views/NotFound.svelte";
+import Page from "../views/Page.svelte";
+import ShareWorld from "../views/ShareWorld.svelte";
+import { routes } from "./routes";
+
+export let currentRoute = writable<{
+ // XXX: in lack of a better type for Svelte components
+ component: any;
+ params?: Record;
+}>({ component: ChooseWorld });
+
+export let router = navaid("/", () =>
+ currentRoute.set({ component: NotFound })
+);
+router.on(routes.ChooseWorld, () =>
+ currentRoute.set({ component: ChooseWorld })
+);
+router.on(routes.CreateWorld, () =>
+ currentRoute.set({ component: CreateWorld })
+);
+router.on(routes.ShareWorld, (params) =>
+ currentRoute.set({ component: ShareWorld, params })
+);
+router.on(routes.JoinWorld, (params) =>
+ currentRoute.set({ component: JoinWorld, params })
+);
+router.on(routes.Page, (params) =>
+ currentRoute.set({ component: Page, params })
+);
+
+router.listen();
diff --git a/src/lib/routes.ts b/src/lib/routes.ts
index 0527e75..b26b9b1 100644
--- a/src/lib/routes.ts
+++ b/src/lib/routes.ts
@@ -1,22 +1,3 @@
-import navaid from "navaid";
-import { writable } from "svelte/store";
-
-import ChooseWorld from "../views/ChooseWorld.svelte";
-import CreateWorld from "../views/CreateWorld.svelte";
-import JoinWorld from "../views/JoinWorld.svelte";
-import NotFound from "../views/NotFound.svelte";
-import Page from "../views/Page.svelte";
-import ShareWorld from "../views/ShareWorld.svelte";
-
-export let router = navaid("/", () =>
- currentRoute.set({ component: NotFound })
-);
-export let currentRoute = writable<{
- // XXX: in lack of a better type for Svelte components
- component: any;
- params?: Record;
-}>({ component: ChooseWorld });
-
export const routes = {
ChooseWorld: "/",
CreateWorld: "/create",
@@ -24,21 +5,3 @@ export const routes = {
JoinWorld: "/w/:worldId/join", // password as hash
Page: "/w/:worldId/:pageId",
};
-
-router.on(routes.ChooseWorld, () =>
- currentRoute.set({ component: ChooseWorld })
-);
-router.on(routes.CreateWorld, () =>
- currentRoute.set({ component: CreateWorld })
-);
-router.on(routes.ShareWorld, (params) =>
- currentRoute.set({ component: ShareWorld, params })
-);
-router.on(routes.JoinWorld, (params) =>
- currentRoute.set({ component: JoinWorld, params })
-);
-router.on(routes.Page, (params) =>
- currentRoute.set({ component: Page, params })
-);
-
-router.listen();
diff --git a/src/views/CreateWorld.svelte b/src/views/CreateWorld.svelte
index fb41d31..3d1efae 100644
--- a/src/views/CreateWorld.svelte
+++ b/src/views/CreateWorld.svelte
@@ -1,6 +1,7 @@