+ Scratch page for testing!
+
+
diff --git a/src/quasar-variables.sass b/src/quasar-variables.sass
new file mode 100644
index 0000000..1994d16
--- /dev/null
+++ b/src/quasar-variables.sass
@@ -0,0 +1,10 @@
+$primary : #1976D2
+$secondary : #26A69A
+$accent : #9C27B0
+
+$dark : #1D1D1D
+
+$positive : #21BA45
+$negative : #C10015
+$info : #31CCEC
+$warning : #F2C037
\ No newline at end of file
diff --git a/src/router.ts b/src/router.ts
new file mode 100644
index 0000000..e0a2ff8
--- /dev/null
+++ b/src/router.ts
@@ -0,0 +1,27 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import Home from './pages/Login.vue'
+
+const routes = [
+ {
+ path: '/',
+ name: 'Home',
+ component: Home,
+ },
+ {
+ path: '/scratch',
+ name: 'Scratch',
+ component: () => import(/* webpackChunkName: "scratch" */ './pages/Scratch.vue'),
+ },
+ {
+ path: '/editor',
+ name: 'Editor',
+ component: () => import('./pages/Editor.vue'),
+ },
+]
+
+const router = createRouter({
+ history: createWebHistory(),
+ routes: routes,
+})
+
+export default router
diff --git a/src/support/page.ts b/src/support/page.ts
new file mode 100644
index 0000000..3e77930
--- /dev/null
+++ b/src/support/page.ts
@@ -0,0 +1,112 @@
+import {MathStatement} from './parse'
+import * as math from 'mathjs'
+import {DepGraph} from 'dependency-graph'
+import { v4 as uuidv4 } from 'uuid'
+import {EvaluationResult, Maybe, StatementID, VariableName} from '../types'
+
+/**
+ * Wrapper for a page containing multiple interrelated mathematical statements.
+ */
+export class MathPage {
+ /** The statements on the page. */
+ protected statements: Record