diff --git a/src/main/java/edu/ntnu/idatt2003/controller/ChaosGameController.java b/src/main/java/edu/ntnu/idatt2003/controller/CanvasController.java
similarity index 51%
rename from src/main/java/edu/ntnu/idatt2003/controller/ChaosGameController.java
rename to src/main/java/edu/ntnu/idatt2003/controller/CanvasController.java
index 64e6e622d9f9966e8e1fcde231be169d2fc1b59d..402761fe55fd76ee9e03dbc2e96b168bb180b48a 100644
--- a/src/main/java/edu/ntnu/idatt2003/controller/ChaosGameController.java
+++ b/src/main/java/edu/ntnu/idatt2003/controller/CanvasController.java
@@ -1,56 +1,31 @@
 package edu.ntnu.idatt2003.controller;
 
-import edu.ntnu.idatt2003.exceptions.CouldNotWriteException;
-import edu.ntnu.idatt2003.exceptions.EmptyListException;
 import edu.ntnu.idatt2003.exceptions.InvalidPositiveIntException;
-import edu.ntnu.idatt2003.exceptions.InvalidSignException;
-import edu.ntnu.idatt2003.exceptions.InvalidTypeException;
-import edu.ntnu.idatt2003.exceptions.InvalidVectorRangeException;
-import edu.ntnu.idatt2003.exceptions.IsNullException;
-import edu.ntnu.idatt2003.exceptions.WrongFileFormatException;
 import edu.ntnu.idatt2003.model.game.ChaosGame;
-import edu.ntnu.idatt2003.model.game.ChaosGameDescription;
-import edu.ntnu.idatt2003.model.game.ChaosGameDescriptionFactory;
-import edu.ntnu.idatt2003.model.io.ChaosGameFileHandler;
 import edu.ntnu.idatt2003.util.ExceptionLogger;
-import edu.ntnu.idatt2003.view.components.TopBar;
 import edu.ntnu.idatt2003.view.components.ViewCanvas;
-import java.io.File;
-import java.io.FileNotFoundException;
 import javafx.animation.KeyFrame;
 import javafx.animation.Timeline;
 import javafx.util.Duration;
 
 /**
- * The controller class for the chaos game.
+ * The controller for the canvas in the chaos game.
  */
-public class ChaosGameController {
+public class CanvasController {
 
   //Constants for the animation
   public static int RUN_SECONDS = 3;
   public static int FPS = 60;
   public static double K = 0.05;
 
-  //Constant for unexpected exceptions not caused by the user
-  public static final String UNEXPECTED_EXCEPTION =
-      "Something went wrong. Please try again or restart.";
-
   private ChaosGame chaosGame;
-  private Timeline timeline;
   private final ViewCanvas viewCanvas;
-  private final TopBar topBar;
-  private  ExceptionLogger exceptionLogger;
+  private Timeline timeline;
+  private ExceptionLogger exceptionLogger;
   private MessageController messageController;
-  private EditController editController;
 
-  /**
-   * Constructor for the ChaosGameController class.
-   *
-   * @param viewCanvas the view canvas to draw on.
-   */
-  public ChaosGameController(ViewCanvas viewCanvas, TopBar topBar) {
+  public CanvasController(ViewCanvas viewCanvas) {
     this.viewCanvas = viewCanvas;
-    this.topBar = topBar;
   }
 
   /**
@@ -80,81 +55,14 @@ public class ChaosGameController {
     this.messageController = messageController;
   }
 
-  /**
-   * Sets the edit controller to a new edit controller.
-   *
-   * @param editController the edit controller to be set
-   */
-  public void setEditController(EditController editController) {
-    this.editController = editController;
-  }
-
-  /**
-   * Gets the edit controller.
-   *
-   * @return the edit controller
-   */
-  public EditController getEditController() {
-    return editController;
-  }
-
-  /**
-   * Resets the chaos game with a new description.
-   *
-   * @param description the description to be set
-   */
-  public void resetChaosGameWithDescription(String description) {
-    try {
-      ChaosGameDescription newDescription = ChaosGameDescriptionFactory.get(description);
-      chaosGame.resetGameWithDescription(newDescription);
-      stopTimeline();
-      messageController.showSuccessPopup(description + " loaded successfully");
-    } catch (IsNullException | InvalidVectorRangeException | EmptyListException
-             | InvalidSignException | InvalidTypeException e) {
-      exceptionLogger.logSevere(e);
-      messageController.showErrorPopup(UNEXPECTED_EXCEPTION);
-    }
-  }
-
-  /**
-   * Resets the chaos game.
-   */
-  public void resetChaosGame() {
-    stopTimeline();
-    chaosGame.resetGame();
-  }
-
   /**
    * Resets the gui canvas.
    */
   public void resetViewCanvas() {
+    stopTimeline();
     viewCanvas.reset();
   }
 
-  /**
-   * Reads a description from a file and resets the chaos game with the new description.
-   *
-   * @param file the file to read the description from
-   */
-  public void resetChaosGameWithFile(File file) {
-    try {
-      ChaosGameFileHandler fileHandler = new ChaosGameFileHandler();
-      ChaosGameDescription newDescription = fileHandler.readFromFile(file);
-      chaosGame.resetGameWithDescription(newDescription);
-      messageController.showSuccessPopup("File loaded successfully");
-    } catch (IsNullException | InvalidVectorRangeException
-             | EmptyListException | InvalidSignException e) {
-      exceptionLogger.logSevere(e);
-      messageController.showErrorPopup(e.getMessage());
-    } catch (FileNotFoundException e) {
-      exceptionLogger.logWarning(e);
-      messageController.showErrorPopup("File not found");
-    } catch (WrongFileFormatException e) {
-      exceptionLogger.logWarning(e);
-      messageController.showErrorPopup(e.getMessage());
-    }
-  }
-
   /**
    * Draws a pixel on the viewCanvas. The color of the pixel is determined by how many times the
    * pixel has been visited.
@@ -179,7 +87,7 @@ public class ChaosGameController {
   /**
    * Draws the current pixel on the viewCanvas.
    */
-  void drawCurrentPixel() {
+  public void drawCurrentPixel() {
     drawPixel(chaosGame.getCanvas().getNewPixel());
   }
 
@@ -219,7 +127,8 @@ public class ChaosGameController {
     final int [] totalSteps = {0};
     timeline = new Timeline();
     KeyFrame keyFrame = new KeyFrame(Duration.millis(1000.0 / FPS), e -> {
-      int steps = (int) (iterations * K / Math.exp(FPS * RUN_SECONDS * K) * Math.exp(K * x[0]));
+      int steps = (int)
+          (iterations * K / (Math.exp(FPS * RUN_SECONDS * K) - 1) * Math.exp(K * x[0]));
       try {
         if (steps != 0) {
           long startTime = System.currentTimeMillis();
@@ -233,7 +142,7 @@ public class ChaosGameController {
         }
       } catch (InvalidPositiveIntException ex) {
         exceptionLogger.logSevere(ex);
-        messageController.showErrorPopup(UNEXPECTED_EXCEPTION);
+        messageController.showErrorPopup(MainController.UNEXPECTED_EXCEPTION);
         timeline.stop();
       }
       x[0]++;
@@ -248,7 +157,7 @@ public class ChaosGameController {
         }
       } catch (InvalidPositiveIntException ex) {
         exceptionLogger.logSevere(ex);
-        messageController.showErrorPopup(UNEXPECTED_EXCEPTION);
+        messageController.showErrorPopup(MainController.UNEXPECTED_EXCEPTION);
       }
     });
     timeline.play();
@@ -263,20 +172,6 @@ public class ChaosGameController {
     }
   }
 
-  /**
-   * Method for running the animation with a given number of iterations
-   * from the top bar.
-   */
-  public void runAnimation() {
-    try {
-      int iterations = Integer.parseInt(topBar.getIterations());
-      animateIterations(iterations);
-    } catch (NumberFormatException e) {
-      exceptionLogger.logWarning(e);
-      messageController.showErrorPopup("Input must be a number");
-    }
-  }
-
   /**
    * Rescales the canvas.
    */
@@ -291,21 +186,4 @@ public class ChaosGameController {
       }
     }
   }
-
-  /**
-   * Writes the set description of the chaos game to a file.
-   *
-   * @param file the file to write to
-   */
-  public void writeChaosGameToFile(File file)  {
-    ChaosGameFileHandler fileHandler = new ChaosGameFileHandler();
-    try {
-      fileHandler.writeToFile(chaosGame.getDescriptions(), file);
-      messageController.showSuccessPopup("File written successfully");
-    } catch (CouldNotWriteException e) {
-      exceptionLogger.logSevere(e);
-      messageController.showErrorPopup(UNEXPECTED_EXCEPTION);
-    }
-  }
 }
-
diff --git a/src/main/java/edu/ntnu/idatt2003/controller/MainController.java b/src/main/java/edu/ntnu/idatt2003/controller/MainController.java
index f8756b99e76992d04b7e99ba2f85b7a3b9a2df23..b2890fdbe196f110b1a791a8b8771cd27f68bbe1 100644
--- a/src/main/java/edu/ntnu/idatt2003/controller/MainController.java
+++ b/src/main/java/edu/ntnu/idatt2003/controller/MainController.java
@@ -26,41 +26,47 @@ public class MainController implements Observer {
   public static final String UNEXPECTED_EXCEPTION =
       "Something went wrong. Please try again or restart.";
 
-  private final ChaosGameController chaosGameController;
+  private final TopBarController topBarController;
   private final EditController editController;
+  private final CanvasController canvasController;
   private final MessageController messageController;
   private final ExceptionLogger exceptionLogger;
 
   /**
    * Constructor for the MainController class.
    *
-   * @param chaosGameController the chaos game controller
+   * @param topBarController the chaos game controller
    * @param editController the edit controller
    * @param messageController the message controller
    */
-  public MainController(ChaosGameController chaosGameController, EditController editController,
-                        MessageController messageController) {
-    this.chaosGameController = chaosGameController;
+  public MainController(TopBarController topBarController, EditController editController,
+                        MessageController messageController, CanvasController canvasController) {
+    this.topBarController = topBarController;
     this.editController = editController;
+    this.canvasController = canvasController;
     this.messageController = messageController;
     exceptionLogger = new ExceptionLogger("ChaosGameController");
     try {
       ChaosGame chaosGame = new ChaosGame(ChaosGameDescriptionFactory.get(
           START_DESCRIPTION), CHAOS_GAME_WIDTH, CHAOS_GAME_HEIGHT);
       chaosGame.attach(this);
-      this.chaosGameController.setChaosGame(chaosGame);
+      this.topBarController.setChaosGame(chaosGame);
       this.editController.setChaosGame(chaosGame);
+      this.canvasController.setChaosGame(chaosGame);
       this.editController.updateEditPopup();
     } catch (EmptyListException | InvalidVectorRangeException | InvalidSignException
              | IsNullException | InvalidTypeException | InvalidPositiveIntException e) {
       exceptionLogger.logSevere(e);
       messageController.showErrorPopup(UNEXPECTED_EXCEPTION);
     }
-    this.chaosGameController.setLogger(exceptionLogger);
-    this.chaosGameController.setMessageController(messageController);
-    this.chaosGameController.setEditController(editController);
+    this.topBarController.setLogger(exceptionLogger);
+    this.topBarController.setMessageController(messageController);
+    this.topBarController.setEditController(editController);
+    this.topBarController.setCanvasController(canvasController);
     this.editController.setLogger(exceptionLogger);
     this.editController.setMessageController(messageController);
+    this.canvasController.setLogger(exceptionLogger);
+    this.canvasController.setMessageController(messageController);
   }
 
   /**
@@ -72,8 +78,8 @@ public class MainController implements Observer {
   @Override
   public void update(String updated) {
     switch (updated) {
-      case "clearGame" -> chaosGameController.resetViewCanvas();
-      case "putPixel" -> chaosGameController.drawCurrentPixel();
+      case "clearGame" -> canvasController.resetViewCanvas();
+      case "putPixel" -> canvasController.drawCurrentPixel();
       case "setDescription" -> editController.updateEditPopup();
       default -> {
         try {
diff --git a/src/main/java/edu/ntnu/idatt2003/controller/TopBarController.java b/src/main/java/edu/ntnu/idatt2003/controller/TopBarController.java
new file mode 100644
index 0000000000000000000000000000000000000000..78db233f3ec4193b902d467c4a836a0a8a098759
--- /dev/null
+++ b/src/main/java/edu/ntnu/idatt2003/controller/TopBarController.java
@@ -0,0 +1,170 @@
+package edu.ntnu.idatt2003.controller;
+
+import edu.ntnu.idatt2003.exceptions.CouldNotWriteException;
+import edu.ntnu.idatt2003.exceptions.EmptyListException;
+import edu.ntnu.idatt2003.exceptions.InvalidSignException;
+import edu.ntnu.idatt2003.exceptions.InvalidTypeException;
+import edu.ntnu.idatt2003.exceptions.InvalidVectorRangeException;
+import edu.ntnu.idatt2003.exceptions.IsNullException;
+import edu.ntnu.idatt2003.exceptions.WrongFileFormatException;
+import edu.ntnu.idatt2003.model.game.ChaosGame;
+import edu.ntnu.idatt2003.model.game.ChaosGameDescription;
+import edu.ntnu.idatt2003.model.game.ChaosGameDescriptionFactory;
+import edu.ntnu.idatt2003.model.io.ChaosGameFileHandler;
+import edu.ntnu.idatt2003.util.ExceptionLogger;
+import edu.ntnu.idatt2003.view.components.TopBar;
+import java.io.File;
+import java.io.FileNotFoundException;
+
+/**
+ * The controller class for the top bar.
+ */
+public class TopBarController {
+
+  private ChaosGame chaosGame;
+  private final TopBar topBar;
+  private  ExceptionLogger exceptionLogger;
+  private MessageController messageController;
+  private EditController editController;
+  private CanvasController canvasController;
+
+  /**
+   * Constructor for the TopBarController class.
+   */
+  public TopBarController(TopBar topBar) {
+    this.topBar = topBar;
+  }
+
+  /**
+   * Sets the chaos game to a new chaos game.
+   *
+   * @param chaosGame the chaos game to be set
+   */
+  public void setChaosGame(ChaosGame chaosGame) {
+    this.chaosGame = chaosGame;
+  }
+
+  /**
+   * Sets the exception logger to a new exception logger.
+   *
+   * @param exceptionLogger the exception logger to be set
+   */
+  public void setLogger(ExceptionLogger exceptionLogger) {
+    this.exceptionLogger = exceptionLogger;
+  }
+
+  /**
+   * Sets the message controller to a new message controller.
+   *
+   * @param messageController the message controller to be set
+   */
+  public void setMessageController(MessageController messageController) {
+    this.messageController = messageController;
+  }
+
+  /**
+   * Sets the edit controller to a new edit controller.
+   *
+   * @param editController the edit controller to be set
+   */
+  public void setEditController(EditController editController) {
+    this.editController = editController;
+  }
+
+  /**
+   * Sets the canvas controller to a new canvas controller.
+   *
+   * @param canvasController the canvas controller to be set
+   */
+  public void setCanvasController(CanvasController canvasController) {
+    this.canvasController = canvasController;
+  }
+
+  /**
+   * Gets the edit controller.
+   *
+   * @return the edit controller
+   */
+  public EditController getEditController() {
+    return editController;
+  }
+
+  /**
+   * Resets the chaos game with a new description.
+   *
+   * @param description the description to be set
+   */
+  public void resetChaosGameWithDescription(String description) {
+    try {
+      ChaosGameDescription newDescription = ChaosGameDescriptionFactory.get(description);
+      chaosGame.resetGameWithDescription(newDescription);
+      messageController.showSuccessPopup(description + " loaded successfully");
+    } catch (IsNullException | InvalidVectorRangeException | EmptyListException
+             | InvalidSignException | InvalidTypeException e) {
+      exceptionLogger.logSevere(e);
+      messageController.showErrorPopup(MainController.UNEXPECTED_EXCEPTION);
+    }
+  }
+
+  /**
+   * Resets the chaos game.
+   */
+  public void resetChaosGame() {
+    chaosGame.resetGame();
+  }
+
+  /**
+   * Reads a description from a file and resets the chaos game with the new description.
+   *
+   * @param file the file to read the description from
+   */
+  public void resetChaosGameWithFile(File file) {
+    try {
+      ChaosGameFileHandler fileHandler = new ChaosGameFileHandler();
+      ChaosGameDescription newDescription = fileHandler.readFromFile(file);
+      chaosGame.resetGameWithDescription(newDescription);
+      messageController.showSuccessPopup("File loaded successfully");
+    } catch (IsNullException | InvalidVectorRangeException
+             | EmptyListException | InvalidSignException e) {
+      exceptionLogger.logSevere(e);
+      messageController.showErrorPopup(e.getMessage());
+    } catch (FileNotFoundException e) {
+      exceptionLogger.logWarning(e);
+      messageController.showErrorPopup("File not found");
+    } catch (WrongFileFormatException e) {
+      exceptionLogger.logWarning(e);
+      messageController.showErrorPopup(e.getMessage());
+    }
+  }
+
+  /**
+   * Writes the set description of the chaos game to a file.
+   *
+   * @param file the file to write to
+   */
+  public void writeChaosGameToFile(File file)  {
+    ChaosGameFileHandler fileHandler = new ChaosGameFileHandler();
+    try {
+      fileHandler.writeToFile(chaosGame.getDescriptions(), file);
+      messageController.showSuccessPopup("File written successfully");
+    } catch (CouldNotWriteException e) {
+      exceptionLogger.logSevere(e);
+      messageController.showErrorPopup(MainController.UNEXPECTED_EXCEPTION);
+    }
+  }
+
+  /**
+   * Method for running the animation with a given number of iterations
+   * from the top bar.
+   */
+  public void runAnimation() {
+    try {
+      int iterations = Integer.parseInt(topBar.getIterations());
+      canvasController.animateIterations(iterations);
+    } catch (NumberFormatException e) {
+      exceptionLogger.logWarning(e);
+      messageController.showErrorPopup("Input must be a number");
+    }
+  }
+}
+
diff --git a/src/main/java/edu/ntnu/idatt2003/model/game/ChaosGame.java b/src/main/java/edu/ntnu/idatt2003/model/game/ChaosGame.java
index 8b6663a1af543c414c27a9b4decfbb4fcc2303bf..f284c55c7b63b836d3b0f6b593da2425b0af4cb7 100644
--- a/src/main/java/edu/ntnu/idatt2003/model/game/ChaosGame.java
+++ b/src/main/java/edu/ntnu/idatt2003/model/game/ChaosGame.java
@@ -7,8 +7,6 @@ import edu.ntnu.idatt2003.exceptions.PixelOutOfBoundsException;
 import edu.ntnu.idatt2003.model.math.mathModel.Vector2D;
 import edu.ntnu.idatt2003.model.math.transformation.Transform2D;
 import edu.ntnu.idatt2003.util.InputValidation;
-import java.util.Arrays;
-import java.util.List;
 import java.util.Random;
 
 /**
diff --git a/src/main/java/edu/ntnu/idatt2003/model/game/ChaosGameDescription.java b/src/main/java/edu/ntnu/idatt2003/model/game/ChaosGameDescription.java
index fa61df37d42b8d7750c8b520d26bc01bdaebe758..ff1fa0b9c7d28b20588cee6dc15f1f14c4f58299 100644
--- a/src/main/java/edu/ntnu/idatt2003/model/game/ChaosGameDescription.java
+++ b/src/main/java/edu/ntnu/idatt2003/model/game/ChaosGameDescription.java
@@ -68,21 +68,6 @@ public class ChaosGameDescription {
     return maxCoords;
   }
 
-  /**
-   * Validates if the minimum coordinates are less than the maximum coordinates.
-   *
-   * @param minCoords the minimum coordinates.
-   * @param maxCoords the maximum coordinates.
-   *
-   * @throws InvalidVectorRangeException if minCoords is greater than or equal to maxCoords
-   */
-  private void validateCoordinates(Vector2D minCoords, Vector2D maxCoords)
-      throws InvalidVectorRangeException {
-    if (minCoords.getX0() >= maxCoords.getX0() || minCoords.getX1() >= maxCoords.getX1()) {
-      throw new InvalidVectorRangeException("minCoords must be less than maxCoords");
-    }
-  }
-
   /**
    * Compares this object to another object.
    *
diff --git a/src/main/java/edu/ntnu/idatt2003/util/ExceptionLogger.java b/src/main/java/edu/ntnu/idatt2003/util/ExceptionLogger.java
index ef198ec4b656468529b6bd0e1e6fed1978bd0289..9cb0073c743c3b972aa6e6c0b899b39bf9f45693 100644
--- a/src/main/java/edu/ntnu/idatt2003/util/ExceptionLogger.java
+++ b/src/main/java/edu/ntnu/idatt2003/util/ExceptionLogger.java
@@ -7,9 +7,17 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.logging.SimpleFormatter;
 
+/**
+ * A class for logging exceptions.
+ */
 public class ExceptionLogger {
   private final Logger logger;
 
+  /**
+   * Constructor for the ExceptionLogger class.
+   *
+   * @param loggerName the name of the logger.
+   */
   public ExceptionLogger(String loggerName) {
     logger = Logger.getLogger(loggerName);
     try {
@@ -22,10 +30,20 @@ public class ExceptionLogger {
     }
   }
 
+  /**
+   * Logs a warning, used for user input errors.
+   *
+   * @param e the exception to log.
+   */
   public void logWarning(Exception e) {
     logger.log(Level.WARNING, e.getMessage(), e);
   }
 
+  /**
+   * Logs a severe exception, used for unexpected errors.
+   *
+   * @param e the exception to log.
+   */
   public void logSevere(Exception e) {
     logger.log(Level.SEVERE, e.getMessage(), e);
   }
diff --git a/src/main/java/edu/ntnu/idatt2003/util/InputValidation.java b/src/main/java/edu/ntnu/idatt2003/util/InputValidation.java
index 433b20e02f5f41be056865f4d9efe158f81030ca..0cb707fe40133419e00210f6143c30f47af1ca2f 100644
--- a/src/main/java/edu/ntnu/idatt2003/util/InputValidation.java
+++ b/src/main/java/edu/ntnu/idatt2003/util/InputValidation.java
@@ -99,7 +99,8 @@ public class InputValidation {
   public static void validateVectorRange(Vector2D minCoords, Vector2D maxCoords)
       throws InvalidVectorRangeException {
     if (minCoords.getX0() >= maxCoords.getX0() || minCoords.getX1() >= maxCoords.getX1()) {
-      throw new InvalidVectorRangeException("Minimum coordinates must be less than maximum coordinates");
+      throw new InvalidVectorRangeException(
+          "Minimum coordinates must be less than maximum coordinates");
     }
   }
 }
diff --git a/src/main/java/edu/ntnu/idatt2003/view/ChaosGameApp.java b/src/main/java/edu/ntnu/idatt2003/view/ChaosGameApp.java
index 72cfed9e7df8c0382f0615428b3747054f3788f9..c6e1b4af59d06e8db63f8037c3849d083e25c4c4 100644
--- a/src/main/java/edu/ntnu/idatt2003/view/ChaosGameApp.java
+++ b/src/main/java/edu/ntnu/idatt2003/view/ChaosGameApp.java
@@ -1,9 +1,10 @@
 package edu.ntnu.idatt2003.view;
 
-import edu.ntnu.idatt2003.controller.ChaosGameController;
+import edu.ntnu.idatt2003.controller.CanvasController;
 import edu.ntnu.idatt2003.controller.EditController;
 import edu.ntnu.idatt2003.controller.MainController;
 import edu.ntnu.idatt2003.controller.MessageController;
+import edu.ntnu.idatt2003.controller.TopBarController;
 import edu.ntnu.idatt2003.view.components.TopBar;
 import edu.ntnu.idatt2003.view.components.ViewCanvas;
 import edu.ntnu.idatt2003.view.components.popups.EditPopup;
@@ -27,8 +28,9 @@ public class ChaosGameApp extends Application {
   ErrorPopup errorPopup;
   SuccessPopup successPopup;
   EditPopup editPopup;
-  ChaosGameController chaosGameController;
+  TopBarController topBarController;
   EditController editController;
+  CanvasController canvasController;
   MessageController messageController;
 
   /**
@@ -44,13 +46,14 @@ public class ChaosGameApp extends Application {
     editPopup = new EditPopup();
     topBar = new TopBar();
 
-    chaosGameController = new ChaosGameController(viewCanvas, topBar);
+    topBarController = new TopBarController(topBar);
     editController = new EditController(editPopup);
+    canvasController = new CanvasController(viewCanvas);
     messageController = new MessageController(successPopup, errorPopup);
-    new MainController(chaosGameController, editController, messageController);
+    new MainController(topBarController, editController, messageController, canvasController);
 
     editPopup.setPopupController(editController);
-    topBar.setChaosGameController(chaosGameController);
+    topBar.setChaosGameController(topBarController);
 
     canvasWrapper = new StackPane();
     canvasWrapper.getChildren().add(viewCanvas.getCanvas());
@@ -92,6 +95,6 @@ public class ChaosGameApp extends Application {
     viewCanvas.getCanvas().setWidth(minSize - 20);
     viewCanvas.getCanvas().setHeight(minSize - 20);
     viewCanvas.reset();
-    chaosGameController.rescaleCanvas();
+    canvasController.rescaleCanvas();
   }
 }
\ No newline at end of file
diff --git a/src/main/java/edu/ntnu/idatt2003/view/components/TopBar.java b/src/main/java/edu/ntnu/idatt2003/view/components/TopBar.java
index aa876bf35427812b0420c45d298cea2dfda535f9..814095b8783194baddf4ca24b99a6218bb016dbd 100644
--- a/src/main/java/edu/ntnu/idatt2003/view/components/TopBar.java
+++ b/src/main/java/edu/ntnu/idatt2003/view/components/TopBar.java
@@ -1,6 +1,6 @@
 package edu.ntnu.idatt2003.view.components;
 
-import edu.ntnu.idatt2003.controller.ChaosGameController;
+import edu.ntnu.idatt2003.controller.TopBarController;
 import edu.ntnu.idatt2003.view.components.buttons.PrimaryButton;
 import edu.ntnu.idatt2003.view.components.buttons.SecondaryButton;
 import edu.ntnu.idatt2003.view.components.input.InputBar;
@@ -17,7 +17,7 @@ import javafx.stage.Window;
  * editing and running the chaos game.
  */
 public class TopBar extends StackPane {
-  private ChaosGameController controller;
+  private TopBarController controller;
   private Window ownerWindow;
   private final InputBar iterationsField;
 
@@ -75,7 +75,6 @@ public class TopBar extends StackPane {
 
     iterationsField = new InputBar();
     iterationsField.setPromptText("Iterations");
-    iterationsField.setText("100000");
 
     Button runButton = new PrimaryButton("Run");
     runButton.setOnAction(e -> {
@@ -117,10 +116,10 @@ public class TopBar extends StackPane {
   /**
    * Sets the chaos game controller.
    *
-   * @param chaosGameController the chaos game controller to be set
+   * @param topBarController the chaos game controller to be set
    */
-  public void setChaosGameController(ChaosGameController chaosGameController) {
-    this.controller = chaosGameController;
+  public void setChaosGameController(TopBarController topBarController) {
+    this.controller = topBarController;
   }
 
   /**
diff --git a/src/main/java/edu/ntnu/idatt2003/view/components/buttons/CloseButton.java b/src/main/java/edu/ntnu/idatt2003/view/components/buttons/CloseButton.java
index 780299586c4e3554babe217b394fa79fbb6aec07..4d8634c0c90a722b194c622f153beed55981812d 100644
--- a/src/main/java/edu/ntnu/idatt2003/view/components/buttons/CloseButton.java
+++ b/src/main/java/edu/ntnu/idatt2003/view/components/buttons/CloseButton.java
@@ -15,5 +15,5 @@ public class CloseButton extends Button {
     this.getStyleClass().add("close-button");
     this.setMinSize(30, 30);
     this.setMaxSize(30, 30);
-    }
+  }
 }
diff --git a/src/main/java/edu/ntnu/idatt2003/view/components/buttons/NextButton.java b/src/main/java/edu/ntnu/idatt2003/view/components/buttons/NextButton.java
index 7842779d9d416ee9ee04e6827ad1fe299a0d6797..766991981242695225c31f9dba4a5c54a859fcdf 100644
--- a/src/main/java/edu/ntnu/idatt2003/view/components/buttons/NextButton.java
+++ b/src/main/java/edu/ntnu/idatt2003/view/components/buttons/NextButton.java
@@ -13,5 +13,5 @@ public class NextButton extends Button {
   public NextButton() {
     super();
     this.getStyleClass().add("next-button");
-    }
+  }
 }
diff --git a/src/main/java/edu/ntnu/idatt2003/view/components/buttons/PrevButton.java b/src/main/java/edu/ntnu/idatt2003/view/components/buttons/PrevButton.java
index 55f94f2e488d323b77bc6e070fc1ff30161a4608..109ba4894bf571c49bed3782299a99938a147873 100644
--- a/src/main/java/edu/ntnu/idatt2003/view/components/buttons/PrevButton.java
+++ b/src/main/java/edu/ntnu/idatt2003/view/components/buttons/PrevButton.java
@@ -13,5 +13,5 @@ public class PrevButton extends Button {
   public PrevButton() {
     super();
     this.getStyleClass().add("prev-button");
-    }
+  }
 }