diff --git a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGame.java b/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGame.java
index 84152f92cbd5a13d4a76e77befc674f0eda699bf..2c6366aaafbe49b9f30fb02ad26bff0b66603d84 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGame.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGame.java
@@ -1,6 +1,8 @@
 package edu.ntnu.stud.chaosgame.controller.game;
 
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
+import edu.ntnu.stud.chaosgame.model.game.ChaosCanvas;
+import edu.ntnu.stud.chaosgame.model.game.ChaosGameDescription;
 import edu.ntnu.stud.chaosgame.view.ChaosGameObserver;
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/GuiButtonController.java b/src/main/java/edu/ntnu/stud/chaosgame/controller/game/GuiButtonController.java
index 6c43421f6da4d7e342374ef00743ff978e81d73a..74c7559a2e26a96136b8e91c8c95cbce61fb9af4 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/GuiButtonController.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/controller/game/GuiButtonController.java
@@ -1,5 +1,8 @@
 package edu.ntnu.stud.chaosgame.controller.game;
 
+import edu.ntnu.stud.chaosgame.controller.utility.ChaosGameFileHandler;
+import edu.ntnu.stud.chaosgame.model.game.ChaosCanvas;
+import edu.ntnu.stud.chaosgame.model.game.ChaosGameDescription;
 import edu.ntnu.stud.chaosgame.model.generators.ChaosGameDescriptionFactory;
 import edu.ntnu.stud.chaosgame.view.ChaosCanvasToImageConverter;
 import edu.ntnu.stud.chaosgame.view.ChaosGameGui;
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGameFileHandler.java b/src/main/java/edu/ntnu/stud/chaosgame/controller/utility/ChaosGameFileHandler.java
similarity index 97%
rename from src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGameFileHandler.java
rename to src/main/java/edu/ntnu/stud/chaosgame/controller/utility/ChaosGameFileHandler.java
index f4d4a100f61e71d414a0a56aaae49c3287c54122..4133c6db62460c8dd89ed19a08f3bd4459c6c5bc 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGameFileHandler.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/controller/utility/ChaosGameFileHandler.java
@@ -1,13 +1,13 @@
-package edu.ntnu.stud.chaosgame.controller.game;
+package edu.ntnu.stud.chaosgame.controller.utility;
 
 import edu.ntnu.stud.chaosgame.model.data.Complex;
 import edu.ntnu.stud.chaosgame.model.data.Matrix2x2;
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameDescription;
+import edu.ntnu.stud.chaosgame.model.game.ChaosGameDescription;
 import edu.ntnu.stud.chaosgame.model.transformations.AffineTransform2D;
 import edu.ntnu.stud.chaosgame.model.transformations.JuliaTransform;
 import edu.ntnu.stud.chaosgame.model.transformations.Transform2D;
-import edu.ntnu.stud.chaosgame.controller.utility.Formatter;
+
 import java.io.FileWriter;
 import java.io.IOException;
 import java.nio.file.Files;
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/model/data/Matrix2x2.java b/src/main/java/edu/ntnu/stud/chaosgame/model/data/Matrix2x2.java
index 945ee4d4b1868439189f08a15a2b7cafa9221d42..8b5e1de1d3f64ce848ab1d6d9d6e65679226d184 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/model/data/Matrix2x2.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/model/data/Matrix2x2.java
@@ -1,6 +1,6 @@
 package edu.ntnu.stud.chaosgame.model.data;
 
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameDescription;
+import edu.ntnu.stud.chaosgame.model.game.ChaosGameDescription;
 
 /**
  * Class representing a 2x2 matrix.
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosCanvas.java b/src/main/java/edu/ntnu/stud/chaosgame/model/game/ChaosCanvas.java
similarity index 99%
rename from src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosCanvas.java
rename to src/main/java/edu/ntnu/stud/chaosgame/model/game/ChaosCanvas.java
index 7266582a4bb88666495d302ae8e40251dc59033b..f8ac6925ab4488e9c5b060eb28dddf4cca296154 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosCanvas.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/model/game/ChaosCanvas.java
@@ -1,4 +1,4 @@
-package edu.ntnu.stud.chaosgame.controller.game;
+package edu.ntnu.stud.chaosgame.model.game;
 
 import edu.ntnu.stud.chaosgame.model.data.Matrix2x2;
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGameDescription.java b/src/main/java/edu/ntnu/stud/chaosgame/model/game/ChaosGameDescription.java
similarity index 96%
rename from src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGameDescription.java
rename to src/main/java/edu/ntnu/stud/chaosgame/model/game/ChaosGameDescription.java
index 3c84ec8eca08b12bd82a9d3a7cf75f9d2125ea2b..6d9775b3a1556b1661eb53329538723f78f058c5 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/controller/game/ChaosGameDescription.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/model/game/ChaosGameDescription.java
@@ -1,8 +1,7 @@
-package edu.ntnu.stud.chaosgame.controller.game;
+package edu.ntnu.stud.chaosgame.model.game;
 
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
 
-import edu.ntnu.stud.chaosgame.model.transformations.AffineTransform2D;
 import edu.ntnu.stud.chaosgame.model.transformations.Transform2D;
 import java.util.List;
 
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/model/generators/ChaosGameDescriptionFactory.java b/src/main/java/edu/ntnu/stud/chaosgame/model/generators/ChaosGameDescriptionFactory.java
index 73555b781ebb99f163c2439e521cad03d605bbf4..0e4969959e90309db6695c8ad28b0c89acae0cdc 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/model/generators/ChaosGameDescriptionFactory.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/model/generators/ChaosGameDescriptionFactory.java
@@ -1,7 +1,7 @@
 package edu.ntnu.stud.chaosgame.model.generators;
 
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameDescription;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameFileHandler;
+import edu.ntnu.stud.chaosgame.model.game.ChaosGameDescription;
+import edu.ntnu.stud.chaosgame.controller.utility.ChaosGameFileHandler;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/model/transformations/AffineTransform2D.java b/src/main/java/edu/ntnu/stud/chaosgame/model/transformations/AffineTransform2D.java
index e6a30a490120ef234877a301f17e80b89bcd1b1e..cc38da56f7eaf96f01429c9c7cfc245e510987a8 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/model/transformations/AffineTransform2D.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/model/transformations/AffineTransform2D.java
@@ -2,7 +2,7 @@ package edu.ntnu.stud.chaosgame.model.transformations;
 
 import edu.ntnu.stud.chaosgame.model.data.Matrix2x2;
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameFileHandler;
+import edu.ntnu.stud.chaosgame.controller.utility.ChaosGameFileHandler;
 
 /**
  * Represents affine transformations in a 2D-plane by extending the abstract
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/model/transformations/JuliaTransform.java b/src/main/java/edu/ntnu/stud/chaosgame/model/transformations/JuliaTransform.java
index 27d96f6311f05da232282c0964874004f3aa6975..9bd740dbc7dab95728f3d37c26b084e48695b5fe 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/model/transformations/JuliaTransform.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/model/transformations/JuliaTransform.java
@@ -2,7 +2,7 @@ package edu.ntnu.stud.chaosgame.model.transformations;
 
 import edu.ntnu.stud.chaosgame.model.data.Complex;
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameFileHandler;
+import edu.ntnu.stud.chaosgame.controller.utility.ChaosGameFileHandler;
 
 public class JuliaTransform extends Transform2D {
 
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosCanvasToImageConverter.java b/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosCanvasToImageConverter.java
index 074dcc7ca1ff4b2ecf80d97cb5ca287988dbcf29..95a5e42364a299eea2a517506bc7dffd9ac40665 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosCanvasToImageConverter.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosCanvasToImageConverter.java
@@ -2,7 +2,7 @@ package edu.ntnu.stud.chaosgame.view;
 import javafx.scene.image.PixelWriter;
 import javafx.scene.image.WritableImage;
 import javafx.scene.paint.Color;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosCanvas;
+import edu.ntnu.stud.chaosgame.model.game.ChaosCanvas;
 
 /**
  * This class converts the state of a ChaosCanvas to a WritableImage.
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosGameGui.java b/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosGameGui.java
index 9ec860a28b9ec12d326c18fd388c609fb74ca8f4..2213b48672353d213a6563489c69b8ade45ee847 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosGameGui.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosGameGui.java
@@ -1,8 +1,8 @@
 package edu.ntnu.stud.chaosgame.view;
 
-import edu.ntnu.stud.chaosgame.controller.game.ChaosCanvas;
+import edu.ntnu.stud.chaosgame.model.game.ChaosCanvas;
 import edu.ntnu.stud.chaosgame.controller.game.ChaosGame;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameDescription;
+import edu.ntnu.stud.chaosgame.model.game.ChaosGameDescription;
 import edu.ntnu.stud.chaosgame.controller.game.GuiButtonController;
 import edu.ntnu.stud.chaosgame.controller.utility.Formatter;
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosGameObserver.java b/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosGameObserver.java
index 3208d0a37fb0b4e9b54cc856b2057188d853f3e4..9020e30d742ae1a020e60a27d0858a54e5b38b2c 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosGameObserver.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/view/ChaosGameObserver.java
@@ -1,7 +1,7 @@
 package edu.ntnu.stud.chaosgame.view;
 
 import edu.ntnu.stud.chaosgame.controller.game.ChaosGame;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosCanvas;
+import edu.ntnu.stud.chaosgame.model.game.ChaosCanvas;
 
 /**
  * Observer interface for monitoring changes to the active
diff --git a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosCanvasTest.java b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosCanvasTest.java
index 9f7e32f60b6de28e6e3b103826e2dbb6e77f9a9f..1f4e5ff38884c91336a908fa973010ce224123e8 100644
--- a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosCanvasTest.java
+++ b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosCanvasTest.java
@@ -1,6 +1,6 @@
 package edu.ntnu.stud.chaosgame.game;
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosCanvas;
+import edu.ntnu.stud.chaosgame.model.game.ChaosCanvas;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
diff --git a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescriptionTest.java b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescriptionTest.java
index fdd360b47c2ffa60396c68901f925199a289ef82..027010f97991560f3ba4ff46cb8999a5500a8094 100644
--- a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescriptionTest.java
+++ b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescriptionTest.java
@@ -3,7 +3,7 @@ package edu.ntnu.stud.chaosgame.game;
 import edu.ntnu.stud.chaosgame.model.data.Complex;
 import edu.ntnu.stud.chaosgame.model.data.Matrix2x2;
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameDescription;
+import edu.ntnu.stud.chaosgame.model.game.ChaosGameDescription;
 import edu.ntnu.stud.chaosgame.model.transformations.AffineTransform2D;
 import edu.ntnu.stud.chaosgame.model.transformations.JuliaTransform;
 import edu.ntnu.stud.chaosgame.model.transformations.Transform2D;
diff --git a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameFileHandlerTest.java b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameFileHandlerTest.java
index ce5abd91fb5814f0273513379405f58f2e582407..1b671e6121dc5b25b1a1e74d9583ff0d22f1d7c0 100644
--- a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameFileHandlerTest.java
+++ b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameFileHandlerTest.java
@@ -4,8 +4,8 @@ package edu.ntnu.stud.chaosgame.game;
 import edu.ntnu.stud.chaosgame.model.data.Complex;
 import edu.ntnu.stud.chaosgame.model.data.Matrix2x2;
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameDescription;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameFileHandler;
+import edu.ntnu.stud.chaosgame.model.game.ChaosGameDescription;
+import edu.ntnu.stud.chaosgame.controller.utility.ChaosGameFileHandler;
 import edu.ntnu.stud.chaosgame.model.transformations.AffineTransform2D;
 import edu.ntnu.stud.chaosgame.model.transformations.JuliaTransform;
 import edu.ntnu.stud.chaosgame.model.transformations.Transform2D;
diff --git a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameTest.java b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameTest.java
index 8945a037a09b24de33e52246a57e3bb84365ae25..39fa45b47afd51e89bb204349baf36fc5d887cb3 100644
--- a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameTest.java
+++ b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameTest.java
@@ -1,11 +1,10 @@
 package edu.ntnu.stud.chaosgame.game;
 
-import edu.ntnu.stud.chaosgame.controller.game.ChaosCanvas;
+import edu.ntnu.stud.chaosgame.model.game.ChaosCanvas;
 import edu.ntnu.stud.chaosgame.controller.game.ChaosGame;
-import edu.ntnu.stud.chaosgame.controller.game.ChaosGameDescription;
+import edu.ntnu.stud.chaosgame.model.game.ChaosGameDescription;
 import edu.ntnu.stud.chaosgame.model.data.Vector2D;
 import edu.ntnu.stud.chaosgame.model.generators.ChaosGameDescriptionFactory;
-import java.io.IOException;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;