diff --git a/pom.xml b/pom.xml
index 250218dcad301f8f9f114f237cb1409fd19eb9c5..1c475bbd07c5174c768a4c245bf346388a6f33c0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,27 +4,39 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>org.example</groupId>
+    <groupId>org.idatt2003</groupId>
     <artifactId>ChaosGame</artifactId>
     <version>1.0-SNAPSHOT</version>
     <name>ChaosGame</name>
 
+
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <junit.version>5.10.0</junit.version>
     </properties>
+
+    <!-- Dependencies -->
     <dependencies>
+        <!-- JavaFX controls-->
         <dependency>
             <groupId>org.openjfx</groupId>
             <artifactId>javafx-controls</artifactId>
             <version>21</version>
         </dependency>
+        <!-- JavaFX fxml-->
         <dependency>
             <groupId>org.openjfx</groupId>
             <artifactId>javafx-fxml</artifactId>
             <version>21</version>
         </dependency>
+        <!-- JavaFX media-->
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-media</artifactId>
+            <version>21.0.2</version>
+        </dependency>
 
+        <!-- JUnit 5 engine and api dependencies -->
         <dependency>
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter-api</artifactId>
@@ -37,11 +49,11 @@
             <version>${junit.version}</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.openjfx</groupId>
-            <artifactId>javafx-media</artifactId>
-            <version>21.0.2</version>
-        </dependency>
+
+        <!-- Mockito Dependencies -->
+        <!-- Tried to implement mockito in controller
+             testing, but did not work because
+             controller classes uses JavaFX components-->
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
@@ -54,8 +66,6 @@
             <version>3.12.4</version>
             <scope>test</scope>
         </dependency>
-
-        <!-- Mockito JUnit Jupiter Dependency -->
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-junit-jupiter</artifactId>
@@ -64,9 +74,11 @@
         </dependency>
     </dependencies>
 
+    <!-- Build configuration -->
     <build>
         <plugins>
             <plugin>
+                <!-- Compiler plugin -->
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.11.0</version>
@@ -76,6 +88,7 @@
                 </configuration>
             </plugin>
             <plugin>
+                <!-- JavaFX plugin -->
                 <groupId>org.openjfx</groupId>
                 <artifactId>javafx-maven-plugin</artifactId>
                 <version>0.0.8</version>
@@ -84,7 +97,7 @@
                         <!-- Default configuration for running with: mvn clean javafx:run -->
                         <id>default-cli</id>
                         <configuration>
-                            <mainClass>org.example.chaosgame/org.example.chaosgame.MainApp</mainClass>
+                            <mainClass>org.idatt2003/org.idatt2003.MainApp</mainClass>
                             <launcher>app</launcher>
                             <jlinkZipName>app</jlinkZipName>
                             <jlinkImageName>app</jlinkImageName>
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index c70812699bb333697db7104f6b1f23d8790fafdf..49050d498d8591559b60367b212f8731e8533c59 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -1,9 +1,9 @@
-module org.example.chaosgame {
+module org.idatt2003 {
   requires javafx.controls;
   requires javafx.fxml;
   requires javafx.media;
 
 
-  opens org.example.chaosgame to javafx.fxml;
-  exports org.example.chaosgame;
+  opens org.idatt2003 to javafx.fxml;
+  exports org.idatt2003;
 }
\ No newline at end of file
diff --git a/src/main/java/org/example/chaosgame/model/transformations/Transform2D.java b/src/main/java/org/example/chaosgame/model/transformations/Transform2D.java
deleted file mode 100644
index c97d56a76b4b050050d7a306ad13bf2b04da1c43..0000000000000000000000000000000000000000
--- a/src/main/java/org/example/chaosgame/model/transformations/Transform2D.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.example.chaosgame.model.transformations;
-
-import org.example.chaosgame.model.linalg.Vector2D;
-
-/**
- * Interface for 2D transformations.
- */
-public interface Transform2D {
-  Vector2D transform(Vector2D point);
-}
diff --git a/src/main/java/org/example/chaosgame/Main.java b/src/main/java/org/idatt2003/Main.java
similarity index 88%
rename from src/main/java/org/example/chaosgame/Main.java
rename to src/main/java/org/idatt2003/Main.java
index 2e188dd5c1e626f16eed47f1693d428d4f341e21..57b87ad335c8f5d82d91333a0efcb23a5f69b774 100644
--- a/src/main/java/org/example/chaosgame/Main.java
+++ b/src/main/java/org/idatt2003/Main.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame;
+package org.idatt2003;
 
 /**
  * Main class for the application.
diff --git a/src/main/java/org/example/chaosgame/MainApp.java b/src/main/java/org/idatt2003/MainApp.java
similarity index 84%
rename from src/main/java/org/example/chaosgame/MainApp.java
rename to src/main/java/org/idatt2003/MainApp.java
index 9ee9023fea2108cfdcccbac8cfcc9c1ea564c2ab..5c4bee1c936f9e681f56019c23078fdfdd8ee4cf 100644
--- a/src/main/java/org/example/chaosgame/MainApp.java
+++ b/src/main/java/org/idatt2003/MainApp.java
@@ -1,13 +1,13 @@
-package org.example.chaosgame;
+package org.idatt2003;
 
 import java.util.Objects;
 import javafx.application.Application;
 import javafx.scene.Scene;
 import javafx.scene.layout.StackPane;
 import javafx.stage.Stage;
-import org.example.chaosgame.controller.ChaosGameController;
-import org.example.chaosgame.controller.ExploreGameController;
-import org.example.chaosgame.controller.PageController;
+import org.idatt2003.controller.ChaosGameController;
+import org.idatt2003.controller.ExploreGameController;
+import org.idatt2003.controller.PageController;
 
 /**
  * This is the main class for the JavaFX application.
diff --git a/src/main/java/org/example/chaosgame/controller/CanvasPainter.java b/src/main/java/org/idatt2003/controller/CanvasPainter.java
similarity index 95%
rename from src/main/java/org/example/chaosgame/controller/CanvasPainter.java
rename to src/main/java/org/idatt2003/controller/CanvasPainter.java
index aac42a91c621cbdc01595f7c95a60449754f9220..c6d7e30b907ce4b97e75471cfc41c31a313c4a19 100644
--- a/src/main/java/org/example/chaosgame/controller/CanvasPainter.java
+++ b/src/main/java/org/idatt2003/controller/CanvasPainter.java
@@ -1,10 +1,10 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.image.PixelWriter;
 import javafx.scene.image.WritableImage;
 import javafx.scene.paint.Color;
-import org.example.chaosgame.model.chaos.ChaosCanvas;
+import org.idatt2003.model.chaos.ChaosCanvas;
 
 
 /**
@@ -50,6 +50,8 @@ public abstract class CanvasPainter {
 
   /**
    * Method for clearing the canvas.
+   * Clears entire GraphicsContext canvas with built-in
+   * clearRect method.
    *
    * @param gc the graphics context
    */
diff --git a/src/main/java/org/example/chaosgame/controller/ChaosGameController.java b/src/main/java/org/idatt2003/controller/ChaosGameController.java
similarity index 87%
rename from src/main/java/org/example/chaosgame/controller/ChaosGameController.java
rename to src/main/java/org/idatt2003/controller/ChaosGameController.java
index b21ae7c80c225b79e1fbd48e346ebc5bab1583ff..d9dd3c160a45d28685cdf513f6410cc18ddc3e03 100644
--- a/src/main/java/org/example/chaosgame/controller/ChaosGameController.java
+++ b/src/main/java/org/idatt2003/controller/ChaosGameController.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import java.io.File;
 import java.io.IOException;
@@ -12,22 +12,22 @@ import javafx.scene.layout.StackPane;
 import javafx.scene.paint.Color;
 import javafx.stage.FileChooser;
 import javafx.util.Pair;
-import org.example.chaosgame.controller.interfaces.GameController;
-import org.example.chaosgame.controller.interfaces.Observer;
-import org.example.chaosgame.controller.interfaces.Subject;
-import org.example.chaosgame.model.chaos.ChaosGame;
-import org.example.chaosgame.model.chaos.ChaosGameDescription;
-import org.example.chaosgame.model.chaos.ChaosGameType;
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
-import org.example.chaosgame.model.transformations.JuliaTransform;
-import org.example.chaosgame.model.transformations.Transform2D;
-import org.example.chaosgame.view.ChaosPage;
-import org.example.chaosgame.view.components.AlertUtility;
-import org.example.chaosgame.view.components.CreateFractalDialog;
-import org.example.chaosgame.view.components.MinMaxDialog;
+import org.idatt2003.controller.interfaces.GameController;
+import org.idatt2003.controller.interfaces.Observer;
+import org.idatt2003.controller.interfaces.Subject;
+import org.idatt2003.model.chaos.ChaosGame;
+import org.idatt2003.model.chaos.ChaosGameDescription;
+import org.idatt2003.model.chaos.ChaosGameType;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Matrix2x2;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.AffineTransform2D;
+import org.idatt2003.model.transformations.JuliaTransform;
+import org.idatt2003.model.transformations.Transform2D;
+import org.idatt2003.view.ChaosPage;
+import org.idatt2003.view.components.AlertUtility;
+import org.idatt2003.view.components.CreateFractalDialog;
+import org.idatt2003.view.components.MinMaxDialog;
 
 /**
  * Controller class for the chaos game.
@@ -49,7 +49,8 @@ public class ChaosGameController extends CanvasPainter implements Observer, Subj
    * Constructor for the ChaosGameController.
    *
    * <p>Initializes the ChaosGame and ChaosPage.
-   * Register the ChaosGame as an observer.
+   * Registers the controller as an observer of the
+   * chaos game
    *
    */
   public ChaosGameController() {
@@ -81,6 +82,7 @@ public class ChaosGameController extends CanvasPainter implements Observer, Subj
 
   /**
    * Method for selecting a new ChaosGameDescription.
+   * Uses the ChaosGameDescriptionFactory to change the game
    *
    * @param selectedGame Name of the selected game
    */
@@ -131,9 +133,10 @@ public class ChaosGameController extends CanvasPainter implements Observer, Subj
 
   /**
    * Method for setting the min and max coordinates for the chaos game.
+   * Updates the ChaosGameDescription to the new coordinate values.
+   * Catches different exceptions and displays a fitting message to user.
    *
    * <p>Opens a dialog for the user to enter the coordinates.
-   *
    */
   public void setMaxMinCoords() {
     MinMaxDialog dialog = new MinMaxDialog();
@@ -191,7 +194,7 @@ public class ChaosGameController extends CanvasPainter implements Observer, Subj
 
   /**
    * Method for user creation of fractal.
-   * {@link org.example.chaosgame.view.components.CreateFractalDialog} returns either a
+   * {@link CreateFractalDialog} returns either a
    * {@link java.util.List}<{@link java.util.List}<{@link java.lang.String}>>
    * or a {@link javafx.util.Pair}<{@link java.lang.String}, {@link java.lang.String}>.
    *
@@ -269,6 +272,9 @@ public class ChaosGameController extends CanvasPainter implements Observer, Subj
 
   /**
    * Method for resetting the chaos game.
+   * Resets the total steps.
+   * Updates the information on the chaos page's top bar
+   * and clears both the ChaosCanvas and the canvas
    */
   public void resetGame() {
     chaosGame.resetTotalSteps();
@@ -322,12 +328,20 @@ public class ChaosGameController extends CanvasPainter implements Observer, Subj
     }
   }
 
+  /**
+   * Method for updating the fractal color.
+   * Sets the color than updates the canvas with the new color.
+   * @param color the new color.
+   */
   @Override
   public void updateFractalColor(Color color) {
     setFractalColor(color);
     updateCanvas(chaosGame.getCanvas(), chaosPage.getGraphicsContext());
   }
 
+  /**
+   * Notifies the page observers when the button is clicked.
+   */
   @Override
   public void homeButtonClicked() {
     notifyObservers();
@@ -347,7 +361,7 @@ public class ChaosGameController extends CanvasPainter implements Observer, Subj
   }
 
   /**
-   * Method for registering observers.
+   * Method for registering page observers.
    *
    * @param observer Observer to register
    */
@@ -357,7 +371,7 @@ public class ChaosGameController extends CanvasPainter implements Observer, Subj
   }
 
   /**
-   * Method for removing observers.
+   * Method for removing page observers.
    *
    * @param observer Observer to remove
    */
@@ -367,7 +381,10 @@ public class ChaosGameController extends CanvasPainter implements Observer, Subj
   }
 
   /**
-   * Method for notifying observers.
+   * Method for notifying page observers.
+   * Notifies if the displaying pages should
+   * be changed.
+   *
    */
   @Override
   public void notifyObservers() {
diff --git a/src/main/java/org/example/chaosgame/controller/ChaosGameDescriptionFactory.java b/src/main/java/org/idatt2003/controller/ChaosGameDescriptionFactory.java
similarity index 86%
rename from src/main/java/org/example/chaosgame/controller/ChaosGameDescriptionFactory.java
rename to src/main/java/org/idatt2003/controller/ChaosGameDescriptionFactory.java
index db3de3d27fb79488505c1f1d61df2ad70bffb01a..2b88d945dd264d9aadb2e0a235a9e69980023d1f 100644
--- a/src/main/java/org/example/chaosgame/controller/ChaosGameDescriptionFactory.java
+++ b/src/main/java/org/idatt2003/controller/ChaosGameDescriptionFactory.java
@@ -1,13 +1,14 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import java.util.List;
-import org.example.chaosgame.model.chaos.ChaosGameDescription;
-import org.example.chaosgame.model.chaos.ChaosGameType;
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
-import org.example.chaosgame.model.transformations.JuliaTransform;
+
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.AffineTransform2D;
+import org.idatt2003.model.transformations.JuliaTransform;
+import org.idatt2003.model.chaos.ChaosGameDescription;
+import org.idatt2003.model.chaos.ChaosGameType;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Matrix2x2;
 
 /**
  * Factory class for creating ChaosGameDescription objects.
diff --git a/src/main/java/org/example/chaosgame/controller/ChaosGameFileHandler.java b/src/main/java/org/idatt2003/controller/ChaosGameFileHandler.java
similarity index 93%
rename from src/main/java/org/example/chaosgame/controller/ChaosGameFileHandler.java
rename to src/main/java/org/idatt2003/controller/ChaosGameFileHandler.java
index 050be3f8ffd4d511b5a88037a999ac96028cce6c..24e99b705206118b6b3e4c042db5a508ceeb6928 100644
--- a/src/main/java/org/example/chaosgame/controller/ChaosGameFileHandler.java
+++ b/src/main/java/org/idatt2003/controller/ChaosGameFileHandler.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
@@ -7,13 +7,14 @@ import java.io.FileWriter;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-import org.example.chaosgame.model.chaos.ChaosGameDescription;
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
-import org.example.chaosgame.model.transformations.JuliaTransform;
-import org.example.chaosgame.model.transformations.Transform2D;
+
+import org.idatt2003.model.chaos.ChaosGameDescription;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Matrix2x2;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.AffineTransform2D;
+import org.idatt2003.model.transformations.JuliaTransform;
+import org.idatt2003.model.transformations.Transform2D;
 
 /**
  * Class for reading and writing chaos game descriptions from and to files.
diff --git a/src/main/java/org/example/chaosgame/controller/ExploreGameController.java b/src/main/java/org/idatt2003/controller/ExploreGameController.java
similarity index 86%
rename from src/main/java/org/example/chaosgame/controller/ExploreGameController.java
rename to src/main/java/org/idatt2003/controller/ExploreGameController.java
index a72fe1fc9ed44263d6cd94ce3bea80c014337fd1..7753141ef1651ebdbc573475f7e8d10f5980dd9b 100644
--- a/src/main/java/org/example/chaosgame/controller/ExploreGameController.java
+++ b/src/main/java/org/idatt2003/controller/ExploreGameController.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -7,17 +7,17 @@ import javafx.scene.input.MouseEvent;
 import javafx.scene.input.ScrollEvent;
 import javafx.scene.layout.StackPane;
 import javafx.scene.paint.Color;
-import org.example.chaosgame.controller.interfaces.GameController;
-import org.example.chaosgame.controller.interfaces.Observer;
-import org.example.chaosgame.controller.interfaces.Subject;
-import org.example.chaosgame.model.chaos.ChaosCanvas;
-import org.example.chaosgame.model.chaos.ChaosGameDescription;
-import org.example.chaosgame.model.chaos.ExploreGame;
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.ExploreJulia;
-import org.example.chaosgame.model.transformations.Transform2D;
-import org.example.chaosgame.view.ExplorePage;
+import org.idatt2003.controller.interfaces.GameController;
+import org.idatt2003.controller.interfaces.Observer;
+import org.idatt2003.controller.interfaces.Subject;
+import org.idatt2003.model.chaos.ExploreGame;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.ExploreJulia;
+import org.idatt2003.model.transformations.Transform2D;
+import org.idatt2003.model.chaos.ChaosCanvas;
+import org.idatt2003.model.chaos.ChaosGameDescription;
+import org.idatt2003.view.ExplorePage;
 
 /**
  * Controller class for the ExploreGame.
@@ -26,7 +26,7 @@ import org.example.chaosgame.view.ExplorePage;
  *
  * <p>The controller implements the GameController, and is a Subject and Observer.
  */
-public class ExploreGameController extends CanvasPainter implements Observer, Subject, GameController  {
+public class ExploreGameController extends CanvasPainter implements Observer, Subject, GameController {
   private ExploreGame exploreGame;
   private final ExplorePage explorePage;
   private ChaosCanvas chaosCanvas;
@@ -46,6 +46,8 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
   /**
    * Constructor for ExploreGameController.
    * Initializes the ExploreGame and ExplorePage.
+   * Registers the controller as an observer of the explore game.
+   *
    */
   public ExploreGameController() {
     ExploreJulia exploreJulia = new ExploreJulia(new Complex(-0.835, 0.2321));
@@ -80,7 +82,9 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
 
   /**
    * Method for handling mouse dragged events.
-   * Moves the canvas based on the distance dragged.
+   * Moves the canvas based on the distance dragged,
+   * by translating in the canvas in the x- and y-direction.
+   * Updates the drag start position.
    *
    * @param event MouseEvent
    */
@@ -141,6 +145,7 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
    * <a href="https://github.com/majidrouhani/idatt2003-gui-demo-mandelbrot">
    * idatt2003-gui-demo-mandelbrot</a>
    *
+   *
    * @param event ScrollEvent
    */
   public void onScroll(ScrollEvent event) {
@@ -205,7 +210,11 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
     this.canvas.setScaleY(1);
   }
 
-
+  /**
+   * Method for handling home button clicks.
+   * Notifies observers.
+   */
+  @Override
   public void homeButtonClicked() {
     notifyObservers();
   }
@@ -240,6 +249,14 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
     updateExplorePage();
   }
 
+
+  /**
+   * Method for binding the canvas to the main pane.
+   * Binds the canvas width and height to the main pane width and height.
+   * Updates the canvas width and height when the main pane width and height changes with listeners.
+   *
+   * @param mainPane Main pane of the application
+   */
   @Override
   public void setBind(StackPane mainPane) {
     canvas.widthProperty().bind(mainPane.widthProperty().multiply(0.85));
@@ -258,6 +275,12 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
     });
   }
 
+  /**
+   * Method for updating the Julia value.
+   *
+   * @param partType Part type
+   * @param value    New value
+   */
   @Override
   public void updateJuliaValue(String partType, double value) {
     ExploreJulia exploreTransform =
@@ -284,7 +307,7 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
   }
 
   /**
-   * Method for registering an observer.
+   * Method for registering a page observer.
    *
    * @param observer Observer
    */
@@ -294,7 +317,7 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
   }
 
   /**
-   * Method for removing an observer.
+   * Method for removing a page observer.
    *
    * @param observer Observer
    */
@@ -304,7 +327,7 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
   }
 
   /**
-   * Method for notifying observers.
+   * Method for notifying page observers.
    */
   @Override
   public void notifyObservers() {
@@ -312,4 +335,6 @@ public class ExploreGameController extends CanvasPainter implements Observer, Su
       pageObserver.update();
     }
   }
+
+
 }
diff --git a/src/main/java/org/example/chaosgame/controller/HomeController.java b/src/main/java/org/idatt2003/controller/HomeController.java
similarity index 83%
rename from src/main/java/org/example/chaosgame/controller/HomeController.java
rename to src/main/java/org/idatt2003/controller/HomeController.java
index 8695475a5698cb6c6eb0f06d34b94fe70cb37ad8..30b88acfe423a0a822e7499381537d13c4d32cd3 100644
--- a/src/main/java/org/example/chaosgame/controller/HomeController.java
+++ b/src/main/java/org/idatt2003/controller/HomeController.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import javafx.event.EventType;
 import javafx.scene.effect.ColorAdjust;
@@ -7,7 +7,7 @@ import javafx.scene.media.MediaPlayer;
 import javafx.scene.media.MediaView;
 import javafx.scene.text.Text;
 import javafx.util.Duration;
-import org.example.chaosgame.view.HomePage;
+import org.idatt2003.view.HomePage;
 
 /**
  * Controller for the home page.
@@ -30,7 +30,9 @@ public class HomeController {
   }
 
   /**
-   * Handles mouse events for the home page.
+   * Handles MOUSE_ENTERED or MOUSE_EXITED events
+   * for the home page. Either plays or pauses video and adds
+   * opacity to the text and color adjusts the MediaView.
    *
    * @param mouseEvent   the mouse event
    * @param video        the video
@@ -46,7 +48,7 @@ public class HomeController {
       view.setEffect(colorAdjust);
       header.setEffect(headerAdjust);
       header.setOpacity(0.2);
-    } else {
+    } else if (mouseEvent == MouseEvent.MOUSE_EXITED){
       video.seek(Duration.seconds(0));
       video.pause();
       view.setEffect(colorAdjust);
diff --git a/src/main/java/org/example/chaosgame/controller/PageController.java b/src/main/java/org/idatt2003/controller/PageController.java
similarity index 95%
rename from src/main/java/org/example/chaosgame/controller/PageController.java
rename to src/main/java/org/idatt2003/controller/PageController.java
index e8883f59932f90e390439bb4d34d2c6be884f8c1..03ddb8f23599985434fe2798070f95c01d22c632 100644
--- a/src/main/java/org/example/chaosgame/controller/PageController.java
+++ b/src/main/java/org/idatt2003/controller/PageController.java
@@ -1,11 +1,11 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import java.util.HashMap;
 import java.util.Map;
 import javafx.scene.Node;
 import javafx.scene.layout.StackPane;
-import org.example.chaosgame.controller.interfaces.Observer;
-import org.example.chaosgame.view.HomePage;
+import org.idatt2003.controller.interfaces.Observer;
+import org.idatt2003.view.HomePage;
 
 /**
  * Controller for the different pages in the application.
diff --git a/src/main/java/org/example/chaosgame/controller/interfaces/GameController.java b/src/main/java/org/idatt2003/controller/interfaces/GameController.java
similarity index 79%
rename from src/main/java/org/example/chaosgame/controller/interfaces/GameController.java
rename to src/main/java/org/idatt2003/controller/interfaces/GameController.java
index 7c29ebd4be12149da3dad240806c1eecbf30ff48..61d5ea9f363f32679567dc1ce8698b8ce3c74ba5 100644
--- a/src/main/java/org/example/chaosgame/controller/interfaces/GameController.java
+++ b/src/main/java/org/idatt2003/controller/interfaces/GameController.java
@@ -1,11 +1,13 @@
-package org.example.chaosgame.controller.interfaces;
+package org.idatt2003.controller.interfaces;
 
 import javafx.scene.layout.StackPane;
 import javafx.scene.paint.Color;
-import org.example.chaosgame.view.GamePage;
+import org.idatt2003.view.GamePage;
 
 /**
  * Interface for the GameController.
+ * Includes abstract methods for setting canvas bind,
+ * updating julia values, home button clicked and updating fractal colors
  */
 public interface GameController {
 
diff --git a/src/main/java/org/example/chaosgame/controller/interfaces/Observer.java b/src/main/java/org/idatt2003/controller/interfaces/Observer.java
similarity index 66%
rename from src/main/java/org/example/chaosgame/controller/interfaces/Observer.java
rename to src/main/java/org/idatt2003/controller/interfaces/Observer.java
index e20769649faa155b914b79bee914a6f32543018e..72c2e090459e45da893434521fe591949e664a3e 100644
--- a/src/main/java/org/example/chaosgame/controller/interfaces/Observer.java
+++ b/src/main/java/org/idatt2003/controller/interfaces/Observer.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.controller.interfaces;
+package org.idatt2003.controller.interfaces;
 
 /**
  * Observer interface for the observer pattern.
diff --git a/src/main/java/org/example/chaosgame/controller/interfaces/Subject.java b/src/main/java/org/idatt2003/controller/interfaces/Subject.java
similarity index 78%
rename from src/main/java/org/example/chaosgame/controller/interfaces/Subject.java
rename to src/main/java/org/idatt2003/controller/interfaces/Subject.java
index 9c0605d4fb3e3c1a5a36c6f925b9ab060be5e63b..ef59e5b961e0e658deb1784f5965c382015a0370 100644
--- a/src/main/java/org/example/chaosgame/controller/interfaces/Subject.java
+++ b/src/main/java/org/idatt2003/controller/interfaces/Subject.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.controller.interfaces;
+package org.idatt2003.controller.interfaces;
 
 /**
  * Subject interface for the observer pattern.
diff --git a/src/main/java/org/example/chaosgame/model/chaos/ChaosCanvas.java b/src/main/java/org/idatt2003/model/chaos/ChaosCanvas.java
similarity index 96%
rename from src/main/java/org/example/chaosgame/model/chaos/ChaosCanvas.java
rename to src/main/java/org/idatt2003/model/chaos/ChaosCanvas.java
index ed700b4911756bd4d62d8706bedc52679807e21e..1f9ab6f1a8a9b08cddd31ed3d1f4f749a13a67b0 100644
--- a/src/main/java/org/example/chaosgame/model/chaos/ChaosCanvas.java
+++ b/src/main/java/org/idatt2003/model/chaos/ChaosCanvas.java
@@ -1,8 +1,8 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.model.chaos;
 
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
+import org.idatt2003.model.linalg.Matrix2x2;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.AffineTransform2D;
 
 /**
  * A class representing a canvas for the chaos game.
diff --git a/src/main/java/org/example/chaosgame/model/chaos/ChaosGame.java b/src/main/java/org/idatt2003/model/chaos/ChaosGame.java
similarity index 93%
rename from src/main/java/org/example/chaosgame/model/chaos/ChaosGame.java
rename to src/main/java/org/idatt2003/model/chaos/ChaosGame.java
index 03922e87194fefc3089ad23fa8d70a1de9180c1c..119c913cb5051c2428ca5eefdfae6ded98d1b5b0 100644
--- a/src/main/java/org/example/chaosgame/model/chaos/ChaosGame.java
+++ b/src/main/java/org/idatt2003/model/chaos/ChaosGame.java
@@ -1,12 +1,12 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.model.chaos;
 
 import java.util.ArrayList;
-import java.util.Currency;
 import java.util.List;
 import java.util.Random;
-import org.example.chaosgame.controller.interfaces.Observer;
-import org.example.chaosgame.controller.interfaces.Subject;
-import org.example.chaosgame.model.linalg.Vector2D;
+
+import org.idatt2003.controller.interfaces.Observer;
+import org.idatt2003.controller.interfaces.Subject;
+import org.idatt2003.model.linalg.Vector2D;
 
 /**
  * Class for running a chaos game.
@@ -102,6 +102,8 @@ public class ChaosGame implements Subject {
 
   /**
    * Method for setting the chaos game description.
+   * Sets the description, resets the total steps,
+   * sets the chaosCanvas and
    *
    * @param newDescription New description of the chaos game
    * @throws IllegalArgumentException If newDescription is null
@@ -181,6 +183,7 @@ public class ChaosGame implements Subject {
    * Method for running the chaos game with probabilities.
    * Randomly selects a transformation from the description based on the probabilities
    * and applies it to the current point.
+   * GitHub Copilot helped generate code logic.
    *
    * @param steps Number of steps to run
    * @param probabilities List of probabilities for the transformations
@@ -206,7 +209,7 @@ public class ChaosGame implements Subject {
   }
 
   /**
-   * Method for registering an observer.
+   * Method for registering a game observer.
    *
    * @param gameObserver Observer to register
    */
@@ -216,7 +219,7 @@ public class ChaosGame implements Subject {
   }
 
   /**
-   * Method for removing an observer.
+   * Method for removing a game observer.
    *
    * @param gameObserver Observer to remove
    */
@@ -226,7 +229,8 @@ public class ChaosGame implements Subject {
   }
 
   /**
-   * Method for notifying observers.
+   * Method for notifying observers of the game.
+   *
    */
   @Override
   public void notifyObservers() {
diff --git a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescription.java b/src/main/java/org/idatt2003/model/chaos/ChaosGameDescription.java
similarity index 81%
rename from src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescription.java
rename to src/main/java/org/idatt2003/model/chaos/ChaosGameDescription.java
index cd4056afcdb02952946c35a7210b684494b3f232..180db0b24baf08fe59b7ce1ca34ce1d34c678504 100644
--- a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescription.java
+++ b/src/main/java/org/idatt2003/model/chaos/ChaosGameDescription.java
@@ -1,9 +1,9 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.model.chaos;
 
 import java.util.List;
 import java.util.Objects;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.Transform2D;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.Transform2D;
 
 
 /**
@@ -20,6 +20,8 @@ public class ChaosGameDescription {
 
   /**
    * Constructor for ChaosGameDescription.
+   * Validates the coordinates and transformations,
+   * Then sets the
    *
    * @param minCoords Minimum coordinates of the game area
    *
@@ -68,8 +70,11 @@ public class ChaosGameDescription {
    * @param minCoords Minimum coordinates of the game area
    *
    * @param maxCoords Maximum coordinates of the game area
+   *
+   * @throws IllegalArgumentException if transformation is null or has more elements than 4
    */
-  private void validateCoordinates(Vector2D minCoords, Vector2D maxCoords) {
+  private void validateCoordinates(Vector2D minCoords, Vector2D maxCoords)
+          throws IllegalArgumentException {
     if (minCoords.getX() < -50 || minCoords.getY() < -50
             || minCoords.getX() > 50 || minCoords.getY() > 50
             || maxCoords.getX() > 50 || maxCoords.getY() > 50
@@ -84,20 +89,6 @@ public class ChaosGameDescription {
     }
   }
 
-  /**
-   * Method for validating the transformations.
-   *
-   * @param transforms List of transformations to apply to the points
-   */
-  private void validateTransforms(List<Transform2D> transforms) {
-    if (transforms == null) {
-      throw new IllegalArgumentException("Transformations cannot be null");
-    }
-    if (transforms.size() > 4 || transforms.isEmpty()) {
-      throw new IllegalArgumentException("Number of transformations must be between 1 and 4");
-    }
-  }
-
   public Vector2D getMinCoords() {
     return minCoords;
   }
@@ -114,15 +105,47 @@ public class ChaosGameDescription {
     return probabilities;
   }
 
+  /**
+   * Method for validating the transformations.
+   *
+   * @param transforms List of transformations to apply to the points
+   *
+   * @throws IllegalArgumentException if transformation is null, empty or has more elements than 4
+   */
+  private void validateTransforms(List<Transform2D> transforms) throws IllegalArgumentException {
+    if (transforms == null) {
+      throw new IllegalArgumentException("Transformations cannot be null");
+    }
+    if (transforms.size() > 4 || transforms.isEmpty()) {
+      throw new IllegalArgumentException("Number of transformations must be between 1 and 4");
+    }
+  }
+
+  /**
+   * Method for setting the description transformations.
+   * Validates first then, sets the transformations.
+   *
+   * @param transforms List of transformations to set
+   */
   public void setTransforms(List<Transform2D> transforms) {
     validateTransforms(transforms);
     this.transforms = transforms;
   }
 
+  /**
+   * Method for setting the descriptions min coordinates
+   * Does not validate because of the drag and drop functionality in explore game
+   * @param minCoords new min coordinates
+   */
   public void setMinCoords(Vector2D minCoords) {
     this.minCoords = minCoords;
   }
 
+  /**
+   * Method for setting the descriptions max coordinates
+   * Does not validate because of the drag and drop functionality in explore game
+   * @param maxCoords new max coordinates
+   */
   public void setMaxCoords(Vector2D maxCoords) {
     this.maxCoords = maxCoords;
   }
diff --git a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameType.java b/src/main/java/org/idatt2003/model/chaos/ChaosGameType.java
similarity index 80%
rename from src/main/java/org/example/chaosgame/model/chaos/ChaosGameType.java
rename to src/main/java/org/idatt2003/model/chaos/ChaosGameType.java
index c709d9a32442da82d4072798fa91534f09e90d01..e0ca41e8d4455a7d021202d41c899ec1070e1680 100644
--- a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameType.java
+++ b/src/main/java/org/idatt2003/model/chaos/ChaosGameType.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.model.chaos;
 
 /**
  * Enum for the different types of chaos games.
diff --git a/src/main/java/org/example/chaosgame/model/chaos/ExploreGame.java b/src/main/java/org/idatt2003/model/chaos/ExploreGame.java
similarity index 72%
rename from src/main/java/org/example/chaosgame/model/chaos/ExploreGame.java
rename to src/main/java/org/idatt2003/model/chaos/ExploreGame.java
index a7cd8ea5c2e342d595ad24f83d6314ed0cd99bd9..efa29b1ea7e96b480f074340585f836c7a2f7475 100644
--- a/src/main/java/org/example/chaosgame/model/chaos/ExploreGame.java
+++ b/src/main/java/org/idatt2003/model/chaos/ExploreGame.java
@@ -1,16 +1,18 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.model.chaos;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.IntStream;
-import org.example.chaosgame.controller.interfaces.Observer;
-import org.example.chaosgame.controller.interfaces.Subject;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.Transform2D;
+
+import org.idatt2003.controller.interfaces.Observer;
+import org.idatt2003.controller.interfaces.Subject;
+import org.idatt2003.model.linalg.Vector2D;
 
 
 /**
- * Class for exploring julia sets.
+ * Class for exploring fractal sets.
+ * Currently, it is only set to calculate julia fractals,
+ * can be expanded to work with other fractals.
  */
 public class ExploreGame implements Subject {
   private static final int MAX_ITER = 256;
@@ -21,6 +23,10 @@ public class ExploreGame implements Subject {
 
   /**
    * Constructor for ExploreGame.
+   * Creates a new ExploreGame object with the
+   * given description, width, and height.
+   * Creates a new ChaosCanvas object with the
+   * minCoords and maxCoords in the ChaosGameDescription.
    *
    * @param description Description of the chaos game
    *
@@ -42,13 +48,12 @@ public class ExploreGame implements Subject {
    *
    * @param description Description of the chaos game
    *
-   * @param width Width of the canvas
-   *
-   * @param height Height of the canvas
+   * @param canvas ChaosCanvas object
    */
-  public void setExploreGame(ChaosGameDescription description, int width, int height) {
+  public void setExploreGame(ChaosGameDescription description, ChaosCanvas canvas) {
     this.description = description;
-    setChaosCanvas(description.getMinCoords(), description.getMaxCoords(), width, height);
+    this.canvas = canvas;
+    this.currentPoint = new Vector2D(0.0, 0.0);
 
   }
 
@@ -60,20 +65,6 @@ public class ExploreGame implements Subject {
     return description;
   }
 
-  /**
-   * Method for setting the chaos canvas.
-   *
-   * @param minCoords Minimum coordinates of the canvas
-   *
-   * @param maxCoords Maximum coordinates of the canvas
-   *
-   * @param width Width of the canvas
-   *
-   * @param height Height of the canvas
-   */
-  public void setChaosCanvas(Vector2D minCoords, Vector2D maxCoords, int width, int height) {
-    this.canvas = new ChaosCanvas(width, height, minCoords, maxCoords);
-  }
 
   /**
    * Method for exploring fractals. Iterates over all pixels in the canvas
@@ -136,8 +127,4 @@ public class ExploreGame implements Subject {
       gameObserver.update();
     }
   }
-
-  public void setDescription(Vector2D minCoords, Vector2D maxCoords, List<Transform2D> transforms) {
-    this.description = new ChaosGameDescription(minCoords, maxCoords, transforms);
-  }
 }
diff --git a/src/main/java/org/example/chaosgame/model/linalg/Complex.java b/src/main/java/org/idatt2003/model/linalg/Complex.java
similarity index 72%
rename from src/main/java/org/example/chaosgame/model/linalg/Complex.java
rename to src/main/java/org/idatt2003/model/linalg/Complex.java
index 8e671f699155addb30a3003d54272274c3124352..396b0ce2a8fea6ea056014498311ed4042bf801a 100644
--- a/src/main/java/org/example/chaosgame/model/linalg/Complex.java
+++ b/src/main/java/org/idatt2003/model/linalg/Complex.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.model.linalg;
+package org.idatt2003.model.linalg;
 
 import java.util.Random;
 
@@ -23,10 +23,22 @@ public class Complex extends Vector2D {
 
   /**
    * Method to calculate the square root of a complex number.
+   * This formula describes the transformation:
+   * <br>
+   * <span style="font-family: Courier">
+   *   z → &#177;&radic;&#x305;(&#x305;a&#x305; &#x305;+&#x305;
+   *   &#x305;b&#x305;i&#x305;) </span>
+   *
+   * where:
+   * <ul>
+   *   <li>a is the real part of the complex number</li>
+   *   <li>b is the imaginary part of the complex number</li>
+   *   <li>i is the imaginary unit</li>
+   * </ul>
    *
    * @param realPart the real part of the complex number.
    * @param imaginaryPart the imaginary part of the complex number.
-   * @return a new complex number that is the square root of the input cRe and cIm.
+   * @return a new complex number that is the square root of the input realPart and imaginaryPart.
    */
   public Complex sqrt(double realPart, double imaginaryPart) {
     double a = Math.pow(realPart, 2) + Math.pow(imaginaryPart, 2);
diff --git a/src/main/java/org/example/chaosgame/model/linalg/Matrix2x2.java b/src/main/java/org/idatt2003/model/linalg/Matrix2x2.java
similarity index 89%
rename from src/main/java/org/example/chaosgame/model/linalg/Matrix2x2.java
rename to src/main/java/org/idatt2003/model/linalg/Matrix2x2.java
index ea2b4911ee21761c87b45e26ff255d7333db036e..7ec692e88aadb8feeea1ee4ec521dd62ec2a4303 100644
--- a/src/main/java/org/example/chaosgame/model/linalg/Matrix2x2.java
+++ b/src/main/java/org/idatt2003/model/linalg/Matrix2x2.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.model.linalg;
+package org.idatt2003.model.linalg;
 
 
 import java.util.Objects;
@@ -29,6 +29,9 @@ public record Matrix2x2(double a, double b, double c, double d) {
 
   /**
    * Method to multiply a 2x2 matrix with a 2D vector.
+   * Multiplies the matrix x-values with the vector x-values and the matrix
+   * y-values with the vector y-values.
+   * adds the results together to get a new vector with new x and y values.
    *
    * @param vector the vector to multiply with.
    * @return a new 2D vector.
diff --git a/src/main/java/org/example/chaosgame/model/linalg/Vector2D.java b/src/main/java/org/idatt2003/model/linalg/Vector2D.java
similarity index 75%
rename from src/main/java/org/example/chaosgame/model/linalg/Vector2D.java
rename to src/main/java/org/idatt2003/model/linalg/Vector2D.java
index c06683ae4e49f58196a970b7dfae59891df163d5..2a9061e601b6781cb847eb5b00283b67959de567 100644
--- a/src/main/java/org/example/chaosgame/model/linalg/Vector2D.java
+++ b/src/main/java/org/idatt2003/model/linalg/Vector2D.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.model.linalg;
+package org.idatt2003.model.linalg;
 
 import java.util.Objects;
 
@@ -15,6 +15,7 @@ public class Vector2D {
 
   /**
    * Constructor for Vector2D.
+   * Creates a new 2D vector with the given x and y coordinates.
    *
    * @param x x-coordinate
    * @param y y-coordinate
@@ -34,6 +35,8 @@ public class Vector2D {
 
   /**
    * Add two vectors together.
+   * The sum of two vectors is a new vector with
+   * the sum of the x-coordinates and the sum of the y-coordinates.
    *
    * @param other the other vector
    * @return the sum of the two vectors
@@ -46,6 +49,8 @@ public class Vector2D {
 
   /**
    * Subtract one vector from another.
+   * The difference of two vectors is a new vector with
+   * the difference of the x-coordinates and the difference of the y-coordinates.
    *
    * @param other the other vector
    * @return the difference of the two vectors
@@ -58,6 +63,8 @@ public class Vector2D {
 
   /**
    * Scale a vector by a scalar.
+   * The scaled vector is a new vector with the
+   * x and y coordinates multiplied by the scalar.
    *
    * @param scalar the scalar to multiply the vector by
    * @return the scaled vector
@@ -70,6 +77,8 @@ public class Vector2D {
 
   /**
    * Multiply two vectors together.
+   * The product of two vectors is a new vector with
+   * the product of the x-coordinates and the product of the y-coordinates.
    *
    * @param other the other vector
    * @return the product of the two vectors
@@ -82,6 +91,8 @@ public class Vector2D {
 
   /**
    * Divide one vector by another.
+   * The quotient of two vectors is a new vector with
+   * the quotient of the x-coordinates and the quotient of the y-coordinates.
    *
    * @param other the other vector
    * @return the quotient of the two vectors
@@ -93,9 +104,11 @@ public class Vector2D {
   }
 
   /**
-   * Calculate the length of a vector.
+   * Calculate the squared length of a vector.
+   * The squared magnitude of a vector is the sum
+   * of the squares of the x and y coordinates.
    *
-   * @return the length of the vector
+   * @return the squared length of the vector
    */
   public double lengthSq() {
     return x * x + y * y;
diff --git a/src/main/java/org/example/chaosgame/model/transformations/AffineTransform2D.java b/src/main/java/org/idatt2003/model/transformations/AffineTransform2D.java
similarity index 92%
rename from src/main/java/org/example/chaosgame/model/transformations/AffineTransform2D.java
rename to src/main/java/org/idatt2003/model/transformations/AffineTransform2D.java
index da0db148c4a0ca696002e500fa59eec2bb692800..b6643cf52463fb409c298c5638e1bcac8689a553 100644
--- a/src/main/java/org/example/chaosgame/model/transformations/AffineTransform2D.java
+++ b/src/main/java/org/idatt2003/model/transformations/AffineTransform2D.java
@@ -1,8 +1,8 @@
-package org.example.chaosgame.model.transformations;
+package org.idatt2003.model.transformations;
 
 import java.util.Objects;
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
+import org.idatt2003.model.linalg.Matrix2x2;
+import org.idatt2003.model.linalg.Vector2D;
 
 
 /**
diff --git a/src/main/java/org/example/chaosgame/model/transformations/ExploreJulia.java b/src/main/java/org/idatt2003/model/transformations/ExploreJulia.java
similarity index 87%
rename from src/main/java/org/example/chaosgame/model/transformations/ExploreJulia.java
rename to src/main/java/org/idatt2003/model/transformations/ExploreJulia.java
index 4d84a62e2352e3f4079d95b9a97105ccf2c57818..373b540c4b5a4d94ab1fa0465cb885a42a390f86 100644
--- a/src/main/java/org/example/chaosgame/model/transformations/ExploreJulia.java
+++ b/src/main/java/org/idatt2003/model/transformations/ExploreJulia.java
@@ -1,7 +1,7 @@
-package org.example.chaosgame.model.transformations;
+package org.idatt2003.model.transformations;
 
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Vector2D;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Vector2D;
 
 /**
  * Class for the Julia transformation.
diff --git a/src/main/java/org/example/chaosgame/model/transformations/JuliaTransform.java b/src/main/java/org/idatt2003/model/transformations/JuliaTransform.java
similarity index 88%
rename from src/main/java/org/example/chaosgame/model/transformations/JuliaTransform.java
rename to src/main/java/org/idatt2003/model/transformations/JuliaTransform.java
index 98119ed4144a9a0758c78c3b20e5ec157244db11..c3f5eec1fe94090304ab5f61f5f1eb98555f6f67 100644
--- a/src/main/java/org/example/chaosgame/model/transformations/JuliaTransform.java
+++ b/src/main/java/org/idatt2003/model/transformations/JuliaTransform.java
@@ -1,8 +1,8 @@
-package org.example.chaosgame.model.transformations;
+package org.idatt2003.model.transformations;
 
 import java.util.Objects;
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Vector2D;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Vector2D;
 
 /**
  * Class for the Julia transformation.
@@ -18,6 +18,7 @@ public class JuliaTransform implements Transform2D {
 
   /**
    * Constructor for JuliaTransform.
+   * Creates a new JuliaTransform object with the given complex number and sign.
    *
    * @param point the complex number c
    * @param sign the sign of the transformation
@@ -32,6 +33,7 @@ public class JuliaTransform implements Transform2D {
   }
 
   /**
+   * JuliaTransform implementation of the transform method in Transform2D.
    * Method to transform a 2D vector using the Julia transformation.
    * This formula describes the transformation:
    * <br>
diff --git a/src/main/java/org/idatt2003/model/transformations/Transform2D.java b/src/main/java/org/idatt2003/model/transformations/Transform2D.java
new file mode 100644
index 0000000000000000000000000000000000000000..592258d21dbb53631becc7929be281f0c721f3c9
--- /dev/null
+++ b/src/main/java/org/idatt2003/model/transformations/Transform2D.java
@@ -0,0 +1,11 @@
+package org.idatt2003.model.transformations;
+
+import org.idatt2003.model.linalg.Vector2D;
+
+/**
+ * Interface for 2D transformations.
+ * Implementing classes should transform a 2D point.
+ */
+public interface Transform2D {
+  Vector2D transform(Vector2D point);
+}
diff --git a/src/main/java/org/example/chaosgame/view/ChaosPage.java b/src/main/java/org/idatt2003/view/ChaosPage.java
similarity index 80%
rename from src/main/java/org/example/chaosgame/view/ChaosPage.java
rename to src/main/java/org/idatt2003/view/ChaosPage.java
index 5ada76ba90ee8975e1c18c1baf38e51e97a7e8a4..f9487e2e1951699a45031b4636adbb95da484d75 100644
--- a/src/main/java/org/example/chaosgame/view/ChaosPage.java
+++ b/src/main/java/org/idatt2003/view/ChaosPage.java
@@ -1,12 +1,12 @@
-package org.example.chaosgame.view;
+package org.idatt2003.view;
 
 import javafx.scene.canvas.GraphicsContext;
-import org.example.chaosgame.controller.ChaosGameController;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.Transform2D;
-import org.example.chaosgame.view.components.BottomBar;
-import org.example.chaosgame.view.components.SideBar;
-import org.example.chaosgame.view.components.TopBar;
+import org.idatt2003.controller.ChaosGameController;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.Transform2D;
+import org.idatt2003.view.components.BottomBar;
+import org.idatt2003.view.components.SideBar;
+import org.idatt2003.view.components.TopBar;
 
 /**
  * Class for the ChaosPage, extends GamePage.
diff --git a/src/main/java/org/example/chaosgame/view/ExplorePage.java b/src/main/java/org/idatt2003/view/ExplorePage.java
similarity index 82%
rename from src/main/java/org/example/chaosgame/view/ExplorePage.java
rename to src/main/java/org/idatt2003/view/ExplorePage.java
index 610dce2870d3932bea90c088c3a446789c10a1ca..b9058362dc63fa058403232a3eec684ebeacd976 100644
--- a/src/main/java/org/example/chaosgame/view/ExplorePage.java
+++ b/src/main/java/org/idatt2003/view/ExplorePage.java
@@ -1,11 +1,11 @@
-package org.example.chaosgame.view;
+package org.idatt2003.view;
 
-import org.example.chaosgame.controller.ExploreGameController;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.Transform2D;
-import org.example.chaosgame.view.components.BottomBar;
-import org.example.chaosgame.view.components.SideBar;
-import org.example.chaosgame.view.components.TopBar;
+import org.idatt2003.controller.ExploreGameController;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.Transform2D;
+import org.idatt2003.view.components.BottomBar;
+import org.idatt2003.view.components.SideBar;
+import org.idatt2003.view.components.TopBar;
 
 /**
  * Class for the ExplorePage, extends GamePage.
diff --git a/src/main/java/org/example/chaosgame/view/GamePage.java b/src/main/java/org/idatt2003/view/GamePage.java
similarity index 95%
rename from src/main/java/org/example/chaosgame/view/GamePage.java
rename to src/main/java/org/idatt2003/view/GamePage.java
index 9e74a74b3e8e44bca60bfeca6531183f92efd14c..0436586ad7ce3208c21b9ad211bc737e47d83737 100644
--- a/src/main/java/org/example/chaosgame/view/GamePage.java
+++ b/src/main/java/org/idatt2003/view/GamePage.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view;
+package org.idatt2003.view;
 
 import javafx.scene.canvas.Canvas;
 import javafx.scene.canvas.GraphicsContext;
diff --git a/src/main/java/org/example/chaosgame/view/HomePage.java b/src/main/java/org/idatt2003/view/HomePage.java
similarity index 94%
rename from src/main/java/org/example/chaosgame/view/HomePage.java
rename to src/main/java/org/idatt2003/view/HomePage.java
index 052d6c7ff0ece941c4382dff63a30a0c398ae52f..caf76dc24eefe80da612f08baf3f022052996fb3 100644
--- a/src/main/java/org/example/chaosgame/view/HomePage.java
+++ b/src/main/java/org/idatt2003/view/HomePage.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view;
+package org.idatt2003.view;
 
 import java.util.Objects;
 import javafx.geometry.Pos;
@@ -12,10 +12,10 @@ import javafx.scene.media.Media;
 import javafx.scene.media.MediaPlayer;
 import javafx.scene.media.MediaView;
 import javafx.scene.text.Text;
-import org.example.chaosgame.controller.HomeController;
-import org.example.chaosgame.controller.PageController;
-import org.example.chaosgame.view.components.ExitButton;
-import org.example.chaosgame.view.components.GameHeader;
+import org.idatt2003.controller.PageController;
+import org.idatt2003.controller.HomeController;
+import org.idatt2003.view.components.ExitButton;
+import org.idatt2003.view.components.GameHeader;
 
 /**
  * Class for the home page, extends StackPane.
diff --git a/src/main/java/org/example/chaosgame/view/components/AlertUtility.java b/src/main/java/org/idatt2003/view/components/AlertUtility.java
similarity index 91%
rename from src/main/java/org/example/chaosgame/view/components/AlertUtility.java
rename to src/main/java/org/idatt2003/view/components/AlertUtility.java
index f0b2af5dea9aba7efd9b49e42504a59126062813..2faab9031ec9aef836b38c4cd8d45e9334294686 100644
--- a/src/main/java/org/example/chaosgame/view/components/AlertUtility.java
+++ b/src/main/java/org/idatt2003/view/components/AlertUtility.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.scene.control.Alert;
 
diff --git a/src/main/java/org/example/chaosgame/view/components/BaseSlider.java b/src/main/java/org/idatt2003/view/components/BaseSlider.java
similarity index 88%
rename from src/main/java/org/example/chaosgame/view/components/BaseSlider.java
rename to src/main/java/org/idatt2003/view/components/BaseSlider.java
index 6f21a499d228cdb4bf26a27b57e9fbde446fb943..7964c50c8bfb27ff7e128ffb7ad99eb05a3ce8d0 100644
--- a/src/main/java/org/example/chaosgame/view/components/BaseSlider.java
+++ b/src/main/java/org/idatt2003/view/components/BaseSlider.java
@@ -1,7 +1,7 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.scene.control.Slider;
-import org.example.chaosgame.controller.interfaces.GameController;
+import org.idatt2003.controller.interfaces.GameController;
 
 
 /**
diff --git a/src/main/java/org/example/chaosgame/view/components/BottomBar.java b/src/main/java/org/idatt2003/view/components/BottomBar.java
similarity index 88%
rename from src/main/java/org/example/chaosgame/view/components/BottomBar.java
rename to src/main/java/org/idatt2003/view/components/BottomBar.java
index d0117d724f9b5fddba3930c8f23c6808ee85e8c6..c377f8fff875c8530ff28d3a19497394757e755b 100644
--- a/src/main/java/org/example/chaosgame/view/components/BottomBar.java
+++ b/src/main/java/org/idatt2003/view/components/BottomBar.java
@@ -1,13 +1,13 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.geometry.Pos;
 import javafx.scene.control.Label;
 import javafx.scene.layout.HBox;
-import org.example.chaosgame.controller.interfaces.GameController;
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.transformations.ExploreJulia;
-import org.example.chaosgame.model.transformations.JuliaTransform;
-import org.example.chaosgame.model.transformations.Transform2D;
+import org.idatt2003.model.transformations.ExploreJulia;
+import org.idatt2003.model.transformations.JuliaTransform;
+import org.idatt2003.model.transformations.Transform2D;
+import org.idatt2003.controller.interfaces.GameController;
+import org.idatt2003.model.linalg.Complex;
 
 
 /**
diff --git a/src/main/java/org/example/chaosgame/view/components/ColorPickerComponent.java b/src/main/java/org/idatt2003/view/components/ColorPickerComponent.java
similarity index 93%
rename from src/main/java/org/example/chaosgame/view/components/ColorPickerComponent.java
rename to src/main/java/org/idatt2003/view/components/ColorPickerComponent.java
index 643fe4576a7d6385a76ca74c46f65a760337c6a4..233d29417e19226f1f6842075b73755dc210964c 100644
--- a/src/main/java/org/example/chaosgame/view/components/ColorPickerComponent.java
+++ b/src/main/java/org/idatt2003/view/components/ColorPickerComponent.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import java.util.function.Consumer;
 import javafx.scene.control.ColorPicker;
diff --git a/src/main/java/org/example/chaosgame/view/components/CreateAffinePane.java b/src/main/java/org/idatt2003/view/components/CreateAffinePane.java
similarity index 98%
rename from src/main/java/org/example/chaosgame/view/components/CreateAffinePane.java
rename to src/main/java/org/idatt2003/view/components/CreateAffinePane.java
index c8bdcdc9ab335c2ce0abfb8322b09a6134eec46b..9d097289e799f3910417375cb417ed3f169a44f7 100644
--- a/src/main/java/org/example/chaosgame/view/components/CreateAffinePane.java
+++ b/src/main/java/org/idatt2003/view/components/CreateAffinePane.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/main/java/org/example/chaosgame/view/components/CreateFractalDialog.java b/src/main/java/org/idatt2003/view/components/CreateFractalDialog.java
similarity index 97%
rename from src/main/java/org/example/chaosgame/view/components/CreateFractalDialog.java
rename to src/main/java/org/idatt2003/view/components/CreateFractalDialog.java
index 7ee80bf29e35cb1d486c24b56b7db6bb7a06a10d..c3d609e93dfb76cd09b1dfec3bd6522a92831265 100644
--- a/src/main/java/org/example/chaosgame/view/components/CreateFractalDialog.java
+++ b/src/main/java/org/idatt2003/view/components/CreateFractalDialog.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.geometry.Insets;
 import javafx.scene.control.ButtonBar;
diff --git a/src/main/java/org/example/chaosgame/view/components/CreateJuliaPane.java b/src/main/java/org/idatt2003/view/components/CreateJuliaPane.java
similarity index 95%
rename from src/main/java/org/example/chaosgame/view/components/CreateJuliaPane.java
rename to src/main/java/org/idatt2003/view/components/CreateJuliaPane.java
index ecbec347ece7e46b313405f9eb4e0b93810b2ebd..37335ade77a522014f5e4ebb177aff21b320d65b 100644
--- a/src/main/java/org/example/chaosgame/view/components/CreateJuliaPane.java
+++ b/src/main/java/org/idatt2003/view/components/CreateJuliaPane.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.scene.control.TextField;
 import javafx.scene.layout.HBox;
diff --git a/src/main/java/org/example/chaosgame/view/components/ExitButton.java b/src/main/java/org/idatt2003/view/components/ExitButton.java
similarity index 82%
rename from src/main/java/org/example/chaosgame/view/components/ExitButton.java
rename to src/main/java/org/idatt2003/view/components/ExitButton.java
index da97319bd86de1965b4987ab43f12b108a357ae1..f2dff273bcb2642d7f8ffcd067adc76edda679c1 100644
--- a/src/main/java/org/example/chaosgame/view/components/ExitButton.java
+++ b/src/main/java/org/idatt2003/view/components/ExitButton.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.scene.control.Button;
 
diff --git a/src/main/java/org/example/chaosgame/view/components/FractalSelectionBox.java b/src/main/java/org/idatt2003/view/components/FractalSelectionBox.java
similarity index 88%
rename from src/main/java/org/example/chaosgame/view/components/FractalSelectionBox.java
rename to src/main/java/org/idatt2003/view/components/FractalSelectionBox.java
index f4f8edc93d77d0b71b889d584d18113232bf6e70..df1ea7e9c7082bed4866a9a82c54a4a514c82a45 100644
--- a/src/main/java/org/example/chaosgame/view/components/FractalSelectionBox.java
+++ b/src/main/java/org/idatt2003/view/components/FractalSelectionBox.java
@@ -1,7 +1,7 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.scene.control.ComboBox;
-import org.example.chaosgame.controller.ChaosGameController;
+import org.idatt2003.controller.ChaosGameController;
 
 /**
  * Class for the FractalSelectionBox, extends ComboBox.
diff --git a/src/main/java/org/example/chaosgame/view/components/GameButton.java b/src/main/java/org/idatt2003/view/components/GameButton.java
similarity index 89%
rename from src/main/java/org/example/chaosgame/view/components/GameButton.java
rename to src/main/java/org/idatt2003/view/components/GameButton.java
index 5f16d81db046dbd8e00d7120428a7f57c96d4ace..675e2bd18de43957b695fb87a929ba1273dedf5c 100644
--- a/src/main/java/org/example/chaosgame/view/components/GameButton.java
+++ b/src/main/java/org/idatt2003/view/components/GameButton.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.scene.control.Button;
 
diff --git a/src/main/java/org/example/chaosgame/view/components/GameHeader.java b/src/main/java/org/idatt2003/view/components/GameHeader.java
similarity index 89%
rename from src/main/java/org/example/chaosgame/view/components/GameHeader.java
rename to src/main/java/org/idatt2003/view/components/GameHeader.java
index 5de562b39bab0d07741a87f7c121a4ad1b0978a5..25b0589b3b1bbeedfdb4426120cd2c12fb919b04 100644
--- a/src/main/java/org/example/chaosgame/view/components/GameHeader.java
+++ b/src/main/java/org/idatt2003/view/components/GameHeader.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.scene.text.Text;
 
diff --git a/src/main/java/org/example/chaosgame/view/components/HomeButton.java b/src/main/java/org/idatt2003/view/components/HomeButton.java
similarity index 93%
rename from src/main/java/org/example/chaosgame/view/components/HomeButton.java
rename to src/main/java/org/idatt2003/view/components/HomeButton.java
index 2bec4e24f94f2c4392b9d5fe79232bc013a3f7e7..674bb26042f2d86d4847f5ec2c1a6ccd1e7083e6 100644
--- a/src/main/java/org/example/chaosgame/view/components/HomeButton.java
+++ b/src/main/java/org/idatt2003/view/components/HomeButton.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import java.util.Objects;
 import javafx.scene.control.Button;
diff --git a/src/main/java/org/example/chaosgame/view/components/MinMaxDialog.java b/src/main/java/org/idatt2003/view/components/MinMaxDialog.java
similarity index 97%
rename from src/main/java/org/example/chaosgame/view/components/MinMaxDialog.java
rename to src/main/java/org/idatt2003/view/components/MinMaxDialog.java
index 3286a6b549c2d5c0a9515c11ae87e07c785e67d1..5dd751a13c09a9b893596d21183e401e5f519263 100644
--- a/src/main/java/org/example/chaosgame/view/components/MinMaxDialog.java
+++ b/src/main/java/org/idatt2003/view/components/MinMaxDialog.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import java.util.List;
 
diff --git a/src/main/java/org/example/chaosgame/view/components/NumberOfStepsInput.java b/src/main/java/org/idatt2003/view/components/NumberOfStepsInput.java
similarity index 91%
rename from src/main/java/org/example/chaosgame/view/components/NumberOfStepsInput.java
rename to src/main/java/org/idatt2003/view/components/NumberOfStepsInput.java
index ee59938e76cb7a23b6a565220a5ee04d958c0103..19e052aabe2dbf35d7718cbfdc194c61253ad577 100644
--- a/src/main/java/org/example/chaosgame/view/components/NumberOfStepsInput.java
+++ b/src/main/java/org/idatt2003/view/components/NumberOfStepsInput.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.scene.control.TextField;
 
diff --git a/src/main/java/org/example/chaosgame/view/components/SideBar.java b/src/main/java/org/idatt2003/view/components/SideBar.java
similarity index 94%
rename from src/main/java/org/example/chaosgame/view/components/SideBar.java
rename to src/main/java/org/idatt2003/view/components/SideBar.java
index d866803f75142d8bffb6016ec700a8a849e7959a..5abf54435d6fb149934c93375d5e4bd5071eec08 100644
--- a/src/main/java/org/example/chaosgame/view/components/SideBar.java
+++ b/src/main/java/org/idatt2003/view/components/SideBar.java
@@ -1,12 +1,12 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.geometry.Insets;
 import javafx.geometry.Pos;
 import javafx.scene.control.Button;
 import javafx.scene.control.TextField;
 import javafx.scene.layout.VBox;
-import org.example.chaosgame.controller.ChaosGameController;
-import org.example.chaosgame.controller.ExploreGameController;
+import org.idatt2003.controller.ChaosGameController;
+import org.idatt2003.controller.ExploreGameController;
 
 /**
  * Class for the sidebar, extends VBox.
diff --git a/src/main/java/org/example/chaosgame/view/components/SliderImaginaryPart.java b/src/main/java/org/idatt2003/view/components/SliderImaginaryPart.java
similarity index 83%
rename from src/main/java/org/example/chaosgame/view/components/SliderImaginaryPart.java
rename to src/main/java/org/idatt2003/view/components/SliderImaginaryPart.java
index 14649a0f31469f9d64083859a2b53ec1d5b87518..584eaed8078e77a6a45c20ed3627507ce5e4cb9a 100644
--- a/src/main/java/org/example/chaosgame/view/components/SliderImaginaryPart.java
+++ b/src/main/java/org/idatt2003/view/components/SliderImaginaryPart.java
@@ -1,6 +1,6 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
-import org.example.chaosgame.controller.interfaces.GameController;
+import org.idatt2003.controller.interfaces.GameController;
 
 /**
  * Class for the imaginary part slider, extends BaseSlider.
diff --git a/src/main/java/org/example/chaosgame/view/components/SliderRealPart.java b/src/main/java/org/idatt2003/view/components/SliderRealPart.java
similarity index 81%
rename from src/main/java/org/example/chaosgame/view/components/SliderRealPart.java
rename to src/main/java/org/idatt2003/view/components/SliderRealPart.java
index 48926964ef8a20808c1dc612775d2866df9feeb7..df1ef2a1c67d08e9705f02c0348864a831938bcd 100644
--- a/src/main/java/org/example/chaosgame/view/components/SliderRealPart.java
+++ b/src/main/java/org/idatt2003/view/components/SliderRealPart.java
@@ -1,6 +1,6 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
-import org.example.chaosgame.controller.interfaces.GameController;
+import org.idatt2003.controller.interfaces.GameController;
 
 /**
  * Class for the real part slider, extends BaseSlider.
diff --git a/src/main/java/org/example/chaosgame/view/components/TopBar.java b/src/main/java/org/idatt2003/view/components/TopBar.java
similarity index 90%
rename from src/main/java/org/example/chaosgame/view/components/TopBar.java
rename to src/main/java/org/idatt2003/view/components/TopBar.java
index 90a397acbe8e35a9c228236fa941c7bd80153b9f..4d03a7f47d14316c8e54420fcf0d405900f8ec3e 100644
--- a/src/main/java/org/example/chaosgame/view/components/TopBar.java
+++ b/src/main/java/org/idatt2003/view/components/TopBar.java
@@ -1,12 +1,12 @@
-package org.example.chaosgame.view.components;
+package org.idatt2003.view.components;
 
 import javafx.geometry.Pos;
 import javafx.scene.control.Button;
 import javafx.scene.control.Label;
 import javafx.scene.layout.HBox;
-import org.example.chaosgame.controller.interfaces.GameController;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.Transform2D;
+import org.idatt2003.controller.interfaces.GameController;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.Transform2D;
 
 /**
  * Class for the top bar, extends HBox.
diff --git a/src/test/java/org/example/chaosgame/.idea/.gitignore b/src/test/java/org/idatt2003/.idea/.gitignore
similarity index 100%
rename from src/test/java/org/example/chaosgame/.idea/.gitignore
rename to src/test/java/org/idatt2003/.idea/.gitignore
diff --git a/src/test/java/org/example/chaosgame/.idea/checkstyle-idea.xml b/src/test/java/org/idatt2003/.idea/checkstyle-idea.xml
similarity index 100%
rename from src/test/java/org/example/chaosgame/.idea/checkstyle-idea.xml
rename to src/test/java/org/idatt2003/.idea/checkstyle-idea.xml
diff --git a/src/test/java/org/example/chaosgame/.idea/misc.xml b/src/test/java/org/idatt2003/.idea/misc.xml
similarity index 100%
rename from src/test/java/org/example/chaosgame/.idea/misc.xml
rename to src/test/java/org/idatt2003/.idea/misc.xml
diff --git a/src/test/java/org/example/chaosgame/.idea/modules.xml b/src/test/java/org/idatt2003/.idea/modules.xml
similarity index 100%
rename from src/test/java/org/example/chaosgame/.idea/modules.xml
rename to src/test/java/org/idatt2003/.idea/modules.xml
diff --git a/src/test/java/org/example/chaosgame/.idea/vcs.xml b/src/test/java/org/idatt2003/.idea/vcs.xml
similarity index 100%
rename from src/test/java/org/example/chaosgame/.idea/vcs.xml
rename to src/test/java/org/idatt2003/.idea/vcs.xml
diff --git a/src/test/java/org/example/chaosgame/controller/ChaosGameControllerTest.java b/src/test/java/org/idatt2003/controller/ChaosGameControllerTest.java
similarity index 94%
rename from src/test/java/org/example/chaosgame/controller/ChaosGameControllerTest.java
rename to src/test/java/org/idatt2003/controller/ChaosGameControllerTest.java
index 1e16946f1d1a9978186686d4afb38f6e343cbe8e..d4346edbda371be88306c5813c401c24d74572e2 100644
--- a/src/test/java/org/example/chaosgame/controller/ChaosGameControllerTest.java
+++ b/src/test/java/org/idatt2003/controller/ChaosGameControllerTest.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactoryTest.java b/src/test/java/org/idatt2003/controller/ChaosGameDescriptionFactoryTest.java
similarity index 91%
rename from src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactoryTest.java
rename to src/test/java/org/idatt2003/controller/ChaosGameDescriptionFactoryTest.java
index 00e0ad8b31c767e8df81fd56b14cb5b5f93fb962..bff2f301d58db818cfcc4ddb97016884e5d7df39 100644
--- a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactoryTest.java
+++ b/src/test/java/org/idatt2003/controller/ChaosGameDescriptionFactoryTest.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.controller;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertInstanceOf;
@@ -6,12 +6,14 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.util.List;
-import org.example.chaosgame.controller.ChaosGameDescriptionFactory;
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
-import org.example.chaosgame.model.transformations.JuliaTransform;
+
+import org.idatt2003.model.chaos.ChaosGameDescription;
+import org.idatt2003.model.chaos.ChaosGameType;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Matrix2x2;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.AffineTransform2D;
+import org.idatt2003.model.transformations.JuliaTransform;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Nested;
diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameFileHandlerTest.java b/src/test/java/org/idatt2003/controller/ChaosGameFileHandlerTest.java
similarity index 96%
rename from src/test/java/org/example/chaosgame/model/chaos/ChaosGameFileHandlerTest.java
rename to src/test/java/org/idatt2003/controller/ChaosGameFileHandlerTest.java
index 32c0fa2d95254b55ec7692efd67634e8735a3659..75cc97065425871f5a67ecf7f5930d78c2b2e673 100644
--- a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameFileHandlerTest.java
+++ b/src/test/java/org/idatt2003/controller/ChaosGameFileHandlerTest.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.controller;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertInstanceOf;
@@ -10,13 +10,14 @@ import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.List;
-import org.example.chaosgame.controller.ChaosGameFileHandler;
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
-import org.example.chaosgame.model.transformations.JuliaTransform;
-import org.example.chaosgame.model.transformations.Transform2D;
+
+import org.idatt2003.model.chaos.ChaosGameDescription;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Matrix2x2;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.AffineTransform2D;
+import org.idatt2003.model.transformations.JuliaTransform;
+import org.idatt2003.model.transformations.Transform2D;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Nested;
diff --git a/src/test/java/org/example/chaosgame/controller/ExploreGameControllerTest.java b/src/test/java/org/idatt2003/controller/ExploreGameControllerTest.java
similarity index 94%
rename from src/test/java/org/example/chaosgame/controller/ExploreGameControllerTest.java
rename to src/test/java/org/idatt2003/controller/ExploreGameControllerTest.java
index 05f43e043ac30ae963730e3b8c98e4a8d67a78ea..89216775e4d7ecc32adc1b1f0b384bd6763d421c 100644
--- a/src/test/java/org/example/chaosgame/controller/ExploreGameControllerTest.java
+++ b/src/test/java/org/idatt2003/controller/ExploreGameControllerTest.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/example/chaosgame/controller/HomeControllerTest.java b/src/test/java/org/idatt2003/controller/HomeControllerTest.java
similarity index 76%
rename from src/test/java/org/example/chaosgame/controller/HomeControllerTest.java
rename to src/test/java/org/idatt2003/controller/HomeControllerTest.java
index c32f31ad6d11ba9334513ff41893d28879e4a99a..1d8c4fbcb00683842041de4398b3197170ce7d42 100644
--- a/src/test/java/org/example/chaosgame/controller/HomeControllerTest.java
+++ b/src/test/java/org/idatt2003/controller/HomeControllerTest.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/example/chaosgame/controller/PageControllerTest.java b/src/test/java/org/idatt2003/controller/PageControllerTest.java
similarity index 63%
rename from src/test/java/org/example/chaosgame/controller/PageControllerTest.java
rename to src/test/java/org/idatt2003/controller/PageControllerTest.java
index 7cc833bfb1dc27426e54df472030aa6002e7e3ed..cf2e678861fff4246ddc19ade1ff2c7321cc75e2 100644
--- a/src/test/java/org/example/chaosgame/controller/PageControllerTest.java
+++ b/src/test/java/org/idatt2003/controller/PageControllerTest.java
@@ -1,9 +1,7 @@
-package org.example.chaosgame.controller;
+package org.idatt2003.controller;
 
 import org.junit.jupiter.api.Test;
 
-import static org.junit.jupiter.api.Assertions.*;
-
 class PageControllerTest {
 
   @Test
diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosCanvasTest.java b/src/test/java/org/idatt2003/model/chaos/ChaosCanvasTest.java
similarity index 96%
rename from src/test/java/org/example/chaosgame/model/chaos/ChaosCanvasTest.java
rename to src/test/java/org/idatt2003/model/chaos/ChaosCanvasTest.java
index a55ef4c5ce55787d116f5675911918a616002274..a9b76a0036adfeae15087dbb13a47e8299490e88 100644
--- a/src/test/java/org/example/chaosgame/model/chaos/ChaosCanvasTest.java
+++ b/src/test/java/org/idatt2003/model/chaos/ChaosCanvasTest.java
@@ -1,7 +1,7 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.model.chaos;
 
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.AffineTransform2D;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionTest.java b/src/test/java/org/idatt2003/model/chaos/ChaosGameDescriptionTest.java
similarity index 95%
rename from src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionTest.java
rename to src/test/java/org/idatt2003/model/chaos/ChaosGameDescriptionTest.java
index c85c23b3fcbc496ad9fb13f41cdba2b9932a7eab..d65f131ab266cffaa0317570045975c3aaa21e84 100644
--- a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionTest.java
+++ b/src/test/java/org/idatt2003/model/chaos/ChaosGameDescriptionTest.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.model.chaos;
 
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -8,10 +8,10 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.util.Arrays;
 import java.util.List;
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
-import org.example.chaosgame.model.transformations.Transform2D;
+import org.idatt2003.model.linalg.Matrix2x2;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.AffineTransform2D;
+import org.idatt2003.model.transformations.Transform2D;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameTest.java b/src/test/java/org/idatt2003/model/chaos/ChaosGameTest.java
similarity index 94%
rename from src/test/java/org/example/chaosgame/model/chaos/ChaosGameTest.java
rename to src/test/java/org/idatt2003/model/chaos/ChaosGameTest.java
index 5d967a7f1718f0bdc92c934b2abb08212207de42..d913b6652377f255b9216ce57ebf3b8844df05db 100644
--- a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameTest.java
+++ b/src/test/java/org/idatt2003/model/chaos/ChaosGameTest.java
@@ -1,4 +1,4 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.model.chaos;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -7,12 +7,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
 import java.util.List;
-import org.example.chaosgame.controller.interfaces.Observer;
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
-import org.example.chaosgame.model.transformations.JuliaTransform;
+import org.idatt2003.controller.interfaces.Observer;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Matrix2x2;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.AffineTransform2D;
+import org.idatt2003.model.transformations.JuliaTransform;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
diff --git a/src/test/java/org/example/chaosgame/model/chaos/ExploreGameTest.java b/src/test/java/org/idatt2003/model/chaos/ExploreGameTest.java
similarity index 76%
rename from src/test/java/org/example/chaosgame/model/chaos/ExploreGameTest.java
rename to src/test/java/org/idatt2003/model/chaos/ExploreGameTest.java
index ab56bbba654425e121d2513449db4646e630adce..463bc6fc38fa1194b19ea563b6719579d2c0573b 100644
--- a/src/test/java/org/example/chaosgame/model/chaos/ExploreGameTest.java
+++ b/src/test/java/org/idatt2003/model/chaos/ExploreGameTest.java
@@ -1,10 +1,10 @@
-package org.example.chaosgame.model.chaos;
+package org.idatt2003.model.chaos;
 
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.ExploreJulia;
-import org.example.chaosgame.model.transformations.Transform2D;
-import org.example.chaosgame.controller.interfaces.Observer;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.transformations.ExploreJulia;
+import org.idatt2003.model.transformations.Transform2D;
+import org.idatt2003.controller.interfaces.Observer;
 import org.junit.jupiter.api.*;
 
 import java.util.ArrayList;
@@ -47,7 +47,7 @@ class ExploreGameTest {
     newTransforms.add(new ExploreJulia(new Complex(1, 1)));
     ChaosGameDescription newDescription = new ChaosGameDescription(newMinCoords, newMaxCoords, newTransforms);
 
-    exploreGame.setExploreGame(newDescription, 200, 200);
+    exploreGame.setExploreGame(newDescription, new ChaosCanvas(200, 200, newMinCoords, newMaxCoords));
 
     assertEquals(newDescription, exploreGame.getDescription());
     ChaosCanvas canvas = exploreGame.getCanvas();
@@ -70,19 +70,6 @@ class ExploreGameTest {
     assertEquals(description, exploreGame.getDescription());
   }
 
-  @Test
-  void testSetChaosCanvas() {
-    Vector2D newMinCoords = new Vector2D(-2, -2);
-    Vector2D newMaxCoords = new Vector2D(2, 2);
-    exploreGame.setChaosCanvas(newMinCoords, newMaxCoords, 300, 300);
-
-    ChaosCanvas canvas = exploreGame.getCanvas();
-    assertEquals(300, canvas.getWidth());
-    assertEquals(300, canvas.getHeight());
-    assertEquals(newMinCoords, canvas.getMinCoords());
-    assertEquals(newMaxCoords, canvas.getMaxCoords());
-  }
-
   @Test
   void testExploreFractals() {
 
diff --git a/src/test/java/org/example/chaosgame/model/linalg/ComplexTest.java b/src/test/java/org/idatt2003/model/linalg/ComplexTest.java
similarity index 91%
rename from src/test/java/org/example/chaosgame/model/linalg/ComplexTest.java
rename to src/test/java/org/idatt2003/model/linalg/ComplexTest.java
index 5cb701a87fba88d8556f81947b3abaa1fb582555..888884fa9758b5533a1728b95e0699a0a1fb86aa 100644
--- a/src/test/java/org/example/chaosgame/model/linalg/ComplexTest.java
+++ b/src/test/java/org/idatt2003/model/linalg/ComplexTest.java
@@ -1,6 +1,5 @@
-package org.example.chaosgame.model.linalg;
+package org.idatt2003.model.linalg;
 
-import org.example.chaosgame.model.linalg.Complex;
 import org.junit.jupiter.api.*;
 
 
diff --git a/src/test/java/org/example/chaosgame/model/linalg/Matrix2x2Test.java b/src/test/java/org/idatt2003/model/linalg/Matrix2x2Test.java
similarity index 90%
rename from src/test/java/org/example/chaosgame/model/linalg/Matrix2x2Test.java
rename to src/test/java/org/idatt2003/model/linalg/Matrix2x2Test.java
index bb210cb61a55047bdd3e67f1d9deb27190bd0a40..10b7ce93fb3b46f9e478d98fbc00e9fe373f9fb4 100644
--- a/src/test/java/org/example/chaosgame/model/linalg/Matrix2x2Test.java
+++ b/src/test/java/org/idatt2003/model/linalg/Matrix2x2Test.java
@@ -1,7 +1,5 @@
-package org.example.chaosgame.model.linalg;
+package org.idatt2003.model.linalg;
 
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
 import org.junit.jupiter.api.*;
 
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/src/test/java/org/example/chaosgame/model/linalg/Vector2DTest.java b/src/test/java/org/idatt2003/model/linalg/Vector2DTest.java
similarity index 97%
rename from src/test/java/org/example/chaosgame/model/linalg/Vector2DTest.java
rename to src/test/java/org/idatt2003/model/linalg/Vector2DTest.java
index 3d432956948a6ea1985ddd1c3c3e02d6d9fd85a2..3511b0b90a9846b9ba6804aeb56a2432744fb07d 100644
--- a/src/test/java/org/example/chaosgame/model/linalg/Vector2DTest.java
+++ b/src/test/java/org/idatt2003/model/linalg/Vector2DTest.java
@@ -1,6 +1,5 @@
-package org.example.chaosgame.model.linalg;
+package org.idatt2003.model.linalg;
 
-import org.example.chaosgame.model.linalg.Vector2D;
 import org.junit.jupiter.api.*;
 
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/src/test/java/org/example/chaosgame/model/transformations/AffineTransform2DTest.java b/src/test/java/org/idatt2003/model/transformations/AffineTransform2DTest.java
similarity index 69%
rename from src/test/java/org/example/chaosgame/model/transformations/AffineTransform2DTest.java
rename to src/test/java/org/idatt2003/model/transformations/AffineTransform2DTest.java
index 3ac169cfe2adc38c08c7f344a1d8fad92fb9248b..4b015b6597cba7ee54dda7c8b1ddf7be47904276 100644
--- a/src/test/java/org/example/chaosgame/model/transformations/AffineTransform2DTest.java
+++ b/src/test/java/org/idatt2003/model/transformations/AffineTransform2DTest.java
@@ -1,8 +1,7 @@
-package org.example.chaosgame.model.transformations;
+package org.idatt2003.model.transformations;
 
-import org.example.chaosgame.model.linalg.Matrix2x2;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.AffineTransform2D;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.linalg.Matrix2x2;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/src/test/java/org/example/chaosgame/model/transformations/ExploreJuliaTest.java b/src/test/java/org/idatt2003/model/transformations/ExploreJuliaTest.java
similarity index 83%
rename from src/test/java/org/example/chaosgame/model/transformations/ExploreJuliaTest.java
rename to src/test/java/org/idatt2003/model/transformations/ExploreJuliaTest.java
index 55900355656ec5fd5f0d02927ff67eb57adb5392..59942c3a595d8ce01c22ba60a2783175b9f83c0e 100644
--- a/src/test/java/org/example/chaosgame/model/transformations/ExploreJuliaTest.java
+++ b/src/test/java/org/idatt2003/model/transformations/ExploreJuliaTest.java
@@ -1,7 +1,7 @@
-package org.example.chaosgame.model.transformations;
+package org.idatt2003.model.transformations;
 
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Vector2D;
+import org.idatt2003.model.linalg.Complex;
+import org.idatt2003.model.linalg.Vector2D;
 import org.junit.jupiter.api.*;
 
 import static org.junit.jupiter.api.Assertions.*;
@@ -24,7 +24,7 @@ class ExploreJuliaTest {
 
   @Test
   void testGetComplex() {
-    assertEquals(complexPoint, exploreJulia.getComplex());
+    Assertions.assertEquals(complexPoint, exploreJulia.getComplex());
   }
   @Nested
   @DisplayName("Test transforms")
diff --git a/src/test/java/org/example/chaosgame/model/transformations/JuliaTransformTest.java b/src/test/java/org/idatt2003/model/transformations/JuliaTransformTest.java
similarity index 70%
rename from src/test/java/org/example/chaosgame/model/transformations/JuliaTransformTest.java
rename to src/test/java/org/idatt2003/model/transformations/JuliaTransformTest.java
index ef90b6a8acdb156d34e38aa36f7cd84f88f5257b..1950a0aaa98f9c00a04341126c6ca3b7bc50bd03 100644
--- a/src/test/java/org/example/chaosgame/model/transformations/JuliaTransformTest.java
+++ b/src/test/java/org/idatt2003/model/transformations/JuliaTransformTest.java
@@ -1,8 +1,7 @@
-package org.example.chaosgame.model.transformations;
+package org.idatt2003.model.transformations;
 
-import org.example.chaosgame.model.linalg.Complex;
-import org.example.chaosgame.model.linalg.Vector2D;
-import org.example.chaosgame.model.transformations.JuliaTransform;
+import org.idatt2003.model.linalg.Vector2D;
+import org.idatt2003.model.linalg.Complex;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.*;