diff --git a/frontend/src/js/fight_scene.js b/frontend/src/js/fight_scene.js
index 08cbaeef7c3c60f20f9ddced56d67a70f83b74a3..b8f3c8b60c4b3c319f70ef4abda3862d6f9d02e8 100644
--- a/frontend/src/js/fight_scene.js
+++ b/frontend/src/js/fight_scene.js
@@ -1,15 +1,13 @@
 import Phaser from "phaser";
 
-import enemy from "./enemy";
+import Foe from "./foe";
 import backend from "./backend";
 
 import levenshtein from "damerau-levenshtein";
 
 const fightScene = new Phaser.Scene("fight");
 
-let onscreenEnemies = [];
-window.onscreenEnemies = onscreenEnemies;
-
+fightScene.foes = [];
 fightScene.preload = preload;
 fightScene.create = create;
 
@@ -217,7 +215,7 @@ function initAndBindGuessPreview(scene) {
       event.keyCode === Phaser.Input.Keyboard.KeyCodes.ENTER &&
       textEntry.text.length > 0
     ) {
-      submitTranscription(textEntry.text);
+      submitTranscription(textEntry.text, scene);
       textEntry.text = textEntry.text.substr(0, 0);
     }
   });
@@ -256,7 +254,7 @@ function shootSpear(enemy, hit, scene = fightScene) {
       message.destroy();
     });
     // TODO: ew.
-    window.onscreenEnemies.splice(window.onscreenEnemies.indexOf(enemy), 1);
+    scene.foes.splice(scene.foes.indexOf(enemy), 1);
   }
 
   let curve = new Phaser.Curves.QuadraticBezier(
@@ -327,13 +325,13 @@ function shootSpear(enemy, hit, scene = fightScene) {
   spear.anims.play("spearAni");
 }
 
-function submitTranscription(transcription) {
-  if (window.onscreenEnemies.length < 1) return;
+function submitTranscription(transcription, scene) {
+  if (scene.foes.length < 1) return;
 
   let similarity = 0;
   let match = null;
 
-  window.onscreenEnemies.forEach((foe) => {
+  scene.foes.forEach((foe) => {
     const s = levenshtein(
       transcription.toLowerCase(),
       foe.word.ocr_transcript.toLowerCase(),
@@ -368,11 +366,8 @@ function gameStart(scene) {
 }
 
 function dispatchEnemy(scene) {
-  let e = new enemy(scene);
-  window.onscreenEnemies.push(e);
-
   backend.post("GetImage", {}).then(function (response) {
-    e.word = response.data;
+    let e = new Foe(scene, response.data);
 
     scene.textures.addBase64(`WORD-${response.data.id}`, response.data.image);
     scene.textures.once(
diff --git a/frontend/src/js/enemy.js b/frontend/src/js/foe.js
similarity index 94%
rename from frontend/src/js/enemy.js
rename to frontend/src/js/foe.js
index 7fe3af9f3f8dd6f21cf40a7249f4fc5c250c23da..ea8619f6e07ba34b6237d3b9d7fd92ba496a4265 100644
--- a/frontend/src/js/enemy.js
+++ b/frontend/src/js/foe.js
@@ -1,11 +1,11 @@
 let enemies = ["bear", "wolf", "deer", "boar"];
 let enemiesSpeed = 50000;
 
-class enemy {
-  word = null;
-
-  constructor(scene) {
+class Foe {
+  constructor(scene, word) {
     this.scene = scene;
+    this.scene.foes.push(this);
+    this.word = word;
   }
 
   run(callback) {
@@ -72,4 +72,4 @@ function setAnimation(obj, idleKey) {
   obj.play({ key: idleKey, repeat: -1 });
 }
 
-export default enemy;
+export default Foe;