diff --git a/.glitch-assets b/.glitch-assets
new file mode 100644
index 00000000..80cf0924
--- /dev/null
+++ b/.glitch-assets
@@ -0,0 +1,13 @@
+{"name":"drag-in-files.svg","date":"2016-10-22T16:17:49.954Z","url":"https://cdn.hyperdev.com/drag-in-files.svg","type":"image/svg","size":7646,"imageWidth":276,"imageHeight":276,"thumbnail":"https://cdn.hyperdev.com/drag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(102, 153, 205)","uuid":"adSBq97hhhpFNUna"}
+{"name":"click-me.svg","date":"2016-10-23T16:17:49.954Z","url":"https://cdn.hyperdev.com/click-me.svg","type":"image/svg","size":7116,"imageWidth":276,"imageHeight":276,"thumbnail":"https://cdn.hyperdev.com/click-me.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(243, 185, 186)","uuid":"adSBq97hhhpFNUnb"}
+{"name":"paste-me.svg","date":"2016-10-24T16:17:49.954Z","url":"https://cdn.hyperdev.com/paste-me.svg","type":"image/svg","size":7242,"imageWidth":276,"imageHeight":276,"thumbnail":"https://cdn.hyperdev.com/paste-me.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(42, 179, 185)","uuid":"adSBq97hhhpFNUnc"}
+{"uuid":"adSBq97hhhpFNUna","deleted":true}
+{"uuid":"adSBq97hhhpFNUnb","deleted":true}
+{"uuid":"adSBq97hhhpFNUnc","deleted":true}
+{"name":"favicon.ico","date":"2021-09-22T14:24:27.174Z","url":"https://cdn.glitch.com/85d44434-d6e1-4f6b-993e-b11e0d695501%2Ffavicon.ico","type":"image/x-icon","size":318,"imageWidth":16,"imageHeight":16,"thumbnail":"https://cdn.glitch.com/85d44434-d6e1-4f6b-993e-b11e0d695501%2Ffavicon.ico","thumbnailWidth":16,"thumbnailHeight":16,"uuid":"kBwdtnOhzIKDaiVs"}
+{"uuid":"kBwdtnOhzIKDaiVs","deleted":true}
+{"name":"favicon.ico","date":"2021-09-22T14:24:52.391Z","url":"https://cdn.glitch.com/85d44434-d6e1-4f6b-993e-b11e0d695501%2Ffavicon.ico","type":"image/x-icon","size":318,"imageWidth":16,"imageHeight":16,"thumbnail":"https://cdn.glitch.com/85d44434-d6e1-4f6b-993e-b11e0d695501%2Ffavicon.ico","thumbnailWidth":16,"thumbnailHeight":16,"uuid":"1uo5Oo7ZFQZUzh8P"}
+{"uuid":"1uo5Oo7ZFQZUzh8P","deleted":true}
+{"name":"favicon.ico","date":"2021-09-22T14:31:03.750Z","url":"https://cdn.glitch.com/85d44434-d6e1-4f6b-993e-b11e0d695501%2Ffavicon.ico","type":"image/x-icon","size":318,"imageWidth":16,"imageHeight":16,"thumbnail":"https://cdn.glitch.com/85d44434-d6e1-4f6b-993e-b11e0d695501%2Ffavicon.ico","thumbnailWidth":16,"thumbnailHeight":16,"uuid":"0RZynntTulJwN96Z"}
+{"uuid":"0RZynntTulJwN96Z","deleted":true}
+{"name":"favicon.ico","date":"2021-09-22T22:25:53.264Z","url":"https://cdn.glitch.com/85d44434-d6e1-4f6b-993e-b11e0d695501%2Ffavicon.ico","type":"image/x-icon","size":318,"imageWidth":16,"imageHeight":16,"thumbnail":"https://cdn.glitch.com/85d44434-d6e1-4f6b-993e-b11e0d695501%2Ffavicon.ico","thumbnailWidth":16,"thumbnailHeight":16,"uuid":"vwXM77z5xcNEKWVu"}
diff --git a/README.markdown b/README.markdown
new file mode 100644
index 00000000..38f6a1e6
--- /dev/null
+++ b/README.markdown
@@ -0,0 +1,27 @@
+Assignment 4 - Creative Coding
+===
+http://a4-owen-blaufuss.glitch.me
+
+An interactive bar graph to explore the lyrical volume of the band They Might Be Giants over time.
+
+NOTE: The lyrics are stored as a large number of small files. They are only requested once, on page load, but Glitch doesn't seem to like this volume of requests; refreshing the page many times back to back may result in being rate-limited.
+
+Requirements
+------------
+- Server, created using Express
+- [D3.js](https://d3js.org)
+- User interface wtih following parameters:
+ - X axis display radio button choices
+ - X axis display album name dropdown list
+ - Y axis display radio button choices
+ - Y axis display custom search box
+
+Challenges
+----------
+- Due to the format in which the lyrics were downloaded, a large volume of network requests is made on page load. Making this happen efficiently and ensuring that all these requests had finished before display was a bit of a challenge.
+- The lengths and formatting of different songs and albums was difficult to predict and work around. To avoid having to make major changes for edge cases, an alternate solution, hovertext on each bar, was used as a label.
+
+Special thanks:
+-----------
+- [TMBW](https://tmbw.net), the They Might Be Giants wiki
+- [TMBotG's web scraper](https://github.com/bgporter/tmbotg), for collecting the lyrics
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 3ae10a92..00000000
--- a/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-Assignment 4 - Creative Coding: Interactive Multimedia Experiences
-===
-
-Due: October 4th, by 11:59 AM.
-
-For this assignment we will focus on client-side development using popular audio/graphics/visualization technologies. The goal of this assignment is to refine our JavaScript knowledge while exploring the multimedia capabilities of the browser.
-
-[WebAudio / Canvas / Three Tutorial](https://github.com/cs4241-21a/cs4241-21a.github.io/blob/main/webaudio_canvas_three.md)
-[SVG + D3 tutorial](https://github.com/cs4241-21a/cs4241-21a.github.io/blob/main/using_svg_and_d3.md)
-
-Baseline Requirements
----
-
-Your application is required to implement the following functionalities:
-
-- A server created using Express. This server can be as simple as needed.
-- A client-side interactive experience using at least one of the following web technologies frameworks.
- - [Three.js](https://threejs.org/): A library for 3D graphics / VR experiences
- - [D3.js](https://d3js.org): A library that is primarily used for interactive data visualizations
- - [Canvas](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API): A 2D raster drawing API included in all modern browsers
- - [SVG](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API): A 2D vector drawing framework that enables shapes to be defined via XML.
- - [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API): An API for audio synthesis, analysis, processing, and file playback.
-- A user interface for interaction with your project, which must expose at least four parameters for user control. [tweakpane](https://cocopon.github.io/tweakpane/) is highly recommended for this, but you can also use regular HTML `` tags (the `range` type is useful to create sliders). You might also explore interaction by tracking mouse movement via the `window.onmousemove` event handler in tandem with the `event.clientX` and `event.clientY` properties. Consider using the [Pointer Events API](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events) to ensure that that both mouse and touch events will both be supported in your app.
-- Your application should display basic documentation for the user interface when the application first loads.
-
-The interactive experience should possess a reasonable level of complexity. Some examples:
-### Three.js
-- A generative algorithm creates simple agents that move through a virtual world. Your interface controls the behavior / appearance of these agents.
-- A simple 3D game... you really want this to be a simple as possible or it will be outside the scope of this assignment.
-- An 3D audio visualization of a song of your choosing. User interaction should control aspects of the visualization.
-### Canvas
-- Implement a generative algorithm such as [Conway's Game of Life](https://bitstorm.org/gameoflife/) (or 1D cellular automata) and provide interactive controls. Note that the Game of Life has been created by 100s of people using