diff --git a/common-theme/assets/scripts/label-items.js b/common-theme/assets/scripts/label-items.js
new file mode 100644
index 000000000..009d014fb
--- /dev/null
+++ b/common-theme/assets/scripts/label-items.js
@@ -0,0 +1,133 @@
+//basically matches keys (labels) to values - can have multiple values on a key.
+// this is for classifying activities
+// sorting and classifying are fundamental learning strategies
+// it's how we make sense of things!
+// TODO : make the inverse where we group items into labelled buckets
+class LabelItems extends HTMLElement {
+ constructor() {
+ super();
+ this.attachShadow({ mode: "open" });
+ this.correctAnswers = new Map();
+ this.playerAnswers = new Map();
+ this.labels = [];
+ this.items = [];
+ }
+
+ connectedCallback() {
+ this.render();
+ this.init();
+ }
+
+ render() {
+ this.shadowRoot.innerHTML = `
+
+
+
+
+
+