diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..dcea8dbc16edfc192ae1439dfb500fee60733176
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,26 @@
+image: maven:latest
+
+build:
+  stage: build
+  script:
+    - mvn compile
+
+test:
+  stage: test
+  script:
+    - mvn test
+
+variables:
+  OPT1: "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN"
+  OPT2: "-Dorg.slf4j.simpleLogger.showDateTime=true"
+  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository $OPT1 $OPT2 -Djava.awt.headless=true"
+  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
+  # jos deploy määritetty, lisää MAVEN_CLI_OPTS:n perään hipsukoihin
+  # -DinstallAtEnd=true -DdeployAtEnd=true
+
+# Cache downloaded dependencies and plugins between builds.
+# To keep cache across branches add ''
+cache:
+  key: "$CI_JOB_NAME"
+  paths:
+    - .m2/repository
\ No newline at end of file
diff --git a/.jqwik-database b/.jqwik-database
new file mode 100644
index 0000000000000000000000000000000000000000..504bbd4839a09d536527557f5d59eb65d03e20f9
Binary files /dev/null and b/.jqwik-database differ
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 459db68b5891dfa843b0aec4e228621d1043db2b..9fa0a6377710c0f9fdea0dc7bed06ad3d79b51f0 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -1,7 +1,7 @@
 module simon {
     requires javafx.controls;
     requires javafx.fxml;
-
-    opens simon to javafx.fxml;
+    requires javafx.graphics;
+    opens simon;
     exports simon;
 }
diff --git a/src/test/java/simon/test.java b/src/test/java/simon/crummyTest.java
similarity index 68%
rename from src/test/java/simon/test.java
rename to src/test/java/simon/crummyTest.java
index f176097f3d1605f459b2128d30c80d2db31a64d7..aafd610284ad79b9d19a484d7d980ec50fe05e07 100644
--- a/src/test/java/simon/test.java
+++ b/src/test/java/simon/crummyTest.java
@@ -4,12 +4,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import org.junit.jupiter.api.Test;
 
-public class test {
+public class crummyTest {
     @Test
     void testX(){
-        System.out.println("AAAAAAAAAAAA");
         for (ColouredCircle c : ColouredCircle.circles){
-            assertEquals(52, c.r);
+            assertEquals(50, c.r);
         }
     }
 }
diff --git a/target/classes/module-info.class b/target/classes/module-info.class
index cb0e6820987f824ad6440055d0ea59eade3b8624..605a77570757768456f1d7f5c70e72a07dc25029 100644
Binary files a/target/classes/module-info.class and b/target/classes/module-info.class differ
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..d70f8170e6a5437d65b2b10ac74d002d85aa0bbf
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+C:\Users\Leo\Documents\Koodit\Labra\simon\src\test\java\simon\crummyTest.java
diff --git a/target/surefire-reports/2022-10-06T12-51-35_629-jvmRun1.dumpstream b/target/surefire-reports/2022-10-06T12-51-35_629-jvmRun1.dumpstream
new file mode 100644
index 0000000000000000000000000000000000000000..8665146ade047845f4ed1a5dbf85e604eef169fc
--- /dev/null
+++ b/target/surefire-reports/2022-10-06T12-51-35_629-jvmRun1.dumpstream
@@ -0,0 +1,15 @@
+# Created at 2022-10-06T12:51:37.254
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'Error occurred during initialization of boot layer'.
+
+# Created at 2022-10-06T12:51:37.263
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'java.lang.module.FindException: Error reading module:'.
+
+# Created at 2022-10-06T12:51:37.268
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'C:\Users\Leo\Documents\Koodit\Labra\simon\target\classes'.
+
+# Created at 2022-10-06T12:51:37.272
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'Caused by: java.lang.module.InvalidModuleDescriptorException:'.
+
+# Created at 2022-10-06T12:51:37.275
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'Package javafx.controls not found in module'.
+
diff --git a/target/surefire-reports/2022-10-06T12-53-32_289-jvmRun1.dumpstream b/target/surefire-reports/2022-10-06T12-53-32_289-jvmRun1.dumpstream
new file mode 100644
index 0000000000000000000000000000000000000000..238d2d492b8b4ae7e6f1e85584c6ca65c752050e
--- /dev/null
+++ b/target/surefire-reports/2022-10-06T12-53-32_289-jvmRun1.dumpstream
@@ -0,0 +1,15 @@
+# Created at 2022-10-06T12:53:33.871
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'Error occurred during initialization of boot layer'.
+
+# Created at 2022-10-06T12:53:33.878
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'java.lang.module.FindException: Error reading module:'.
+
+# Created at 2022-10-06T12:53:33.886
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'C:\Users\Leo\Documents\Koodit\Labra\simon\target\classes'.
+
+# Created at 2022-10-06T12:53:33.892
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'Caused by: java.lang.module.InvalidModuleDescriptorException:'.
+
+# Created at 2022-10-06T12:53:33.904
+Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'Package javafx.controls not found in module'.
+
diff --git a/target/surefire-reports/TEST-simon.crummyTest.xml b/target/surefire-reports/TEST-simon.crummyTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6ff8c47e295cca8abf8ed7a6172fea932f1bcac9
--- /dev/null
+++ b/target/surefire-reports/TEST-simon.crummyTest.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="simon.crummyTest" time="0.077" tests="1" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="sun.desktop" value="windows"/>
+    <property name="awt.toolkit" value="sun.awt.windows.WToolkit"/>
+    <property name="java.specification.version" value="11"/>
+    <property name="sun.cpu.isalist" value="amd64"/>
+    <property name="sun.jnu.encoding" value="Cp1252"/>
+    <property name="java.class.path" value="C:\Users\Leo\Documents\Koodit\Labra\simon\target\test-classes;C:\Users\Leo\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.1\junit-jupiter-api-5.7.1.jar;C:\Users\Leo\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\Leo\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\Leo\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.1\junit-jupiter-engine-5.7.1.jar;C:\Users\Leo\.m2\repository\org\junit\platform\junit-platform-engine\1.7.1\junit-platform-engine-1.7.1.jar;C:\Users\Leo\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.1\junit-jupiter-params-5.7.1.jar;C:\Users\Leo\.m2\repository\org\junit\platform\junit-platform-commons\1.7.1\junit-platform-commons-1.7.1.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik\1.5.0\jqwik-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-api\1.5.0\jqwik-api-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-web\1.5.0\jqwik-web-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-time\1.5.0\jqwik-time-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-engine\1.5.0\jqwik-engine-1.5.0.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-controls\13\javafx-controls-13.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-graphics\13\javafx-graphics-13.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-base\13\javafx-base-13.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-fxml\13\javafx-fxml-13.jar;"/>
+    <property name="java.vm.vendor" value="Eclipse Adoptium"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="user.variant" value=""/>
+    <property name="java.vendor.url" value="https://adoptium.net/"/>
+    <property name="user.timezone" value="Europe/Helsinki"/>
+    <property name="java.vm.specification.version" value="11"/>
+    <property name="os.name" value="Windows 10"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="GB"/>
+    <property name="sun.boot.library.path" value="C:\Program Files\Eclipse Adoptium\jdk-11.0.13.8-hotspot\bin"/>
+    <property name="sun.java.command" value="org.apache.maven.surefire.booter.ForkedBooter C:\Users\Leo\AppData\Local\Temp\surefire7865510066624070955 2022-10-06T12-55-27_938-jvmRun1 surefire8366613565512163865tmp surefire_017573385032954851116tmp"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="C:\Users\Leo\Documents\Koodit\Labra\simon\target\test-classes;C:\Users\Leo\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.1\junit-jupiter-api-5.7.1.jar;C:\Users\Leo\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\Leo\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\Leo\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.1\junit-jupiter-engine-5.7.1.jar;C:\Users\Leo\.m2\repository\org\junit\platform\junit-platform-engine\1.7.1\junit-platform-engine-1.7.1.jar;C:\Users\Leo\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.1\junit-jupiter-params-5.7.1.jar;C:\Users\Leo\.m2\repository\org\junit\platform\junit-platform-commons\1.7.1\junit-platform-commons-1.7.1.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik\1.5.0\jqwik-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-api\1.5.0\jqwik-api-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-web\1.5.0\jqwik-web-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-time\1.5.0\jqwik-time-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-engine\1.5.0\jqwik-engine-1.5.0.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-controls\13\javafx-controls-13.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-graphics\13\javafx-graphics-13.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-base\13\javafx-base-13.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-fxml\13\javafx-fxml-13.jar;"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="C:\Users\Leo"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="jdk.module.path" value="C:\Users\Leo\Documents\Koodit\Labra\simon\target\classes;C:\Users\Leo\.m2\repository\org\openjfx\javafx-controls\13\javafx-controls-13-win.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-graphics\13\javafx-graphics-13-win.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-base\13\javafx-base-13-win.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-fxml\13\javafx-fxml-13-win.jar"/>
+    <property name="java.version.date" value="2021-10-19"/>
+    <property name="java.home" value="C:\Program Files\Eclipse Adoptium\jdk-11.0.13.8-hotspot"/>
+    <property name="file.separator" value="\"/>
+    <property name="basedir" value="C:\Users\Leo\Documents\Koodit\Labra\simon"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.awt.graphicsenv" value="sun.awt.Win32GraphicsEnvironment"/>
+    <property name="surefire.real.class.path" value="C:\Users\Leo\.m2\repository\org\apache\maven\surefire\surefire-booter\3.0.0-M5\surefire-booter-3.0.0-M5.jar;C:\Users\Leo\.m2\repository\org\apache\maven\surefire\surefire-api\3.0.0-M5\surefire-api-3.0.0-M5.jar;C:\Users\Leo\.m2\repository\org\apache\maven\surefire\surefire-logger-api\3.0.0-M5\surefire-logger-api-3.0.0-M5.jar;C:\Users\Leo\.m2\repository\org\apache\maven\surefire\surefire-shared-utils\3.0.0-M4\surefire-shared-utils-3.0.0-M4.jar;C:\Users\Leo\.m2\repository\org\apache\maven\surefire\surefire-extensions-spi\3.0.0-M5\surefire-extensions-spi-3.0.0-M5.jar;C:\Users\Leo\Documents\Koodit\Labra\simon\target\test-classes;C:\Users\Leo\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.1\junit-jupiter-api-5.7.1.jar;C:\Users\Leo\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\Leo\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\Leo\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.1\junit-jupiter-engine-5.7.1.jar;C:\Users\Leo\.m2\repository\org\junit\platform\junit-platform-engine\1.7.1\junit-platform-engine-1.7.1.jar;C:\Users\Leo\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.1\junit-jupiter-params-5.7.1.jar;C:\Users\Leo\.m2\repository\org\junit\platform\junit-platform-commons\1.7.1\junit-platform-commons-1.7.1.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik\1.5.0\jqwik-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-api\1.5.0\jqwik-api-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-web\1.5.0\jqwik-web-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-time\1.5.0\jqwik-time-1.5.0.jar;C:\Users\Leo\.m2\repository\net\jqwik\jqwik-engine\1.5.0\jqwik-engine-1.5.0.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-controls\13\javafx-controls-13.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-graphics\13\javafx-graphics-13.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-base\13\javafx-base-13.jar;C:\Users\Leo\.m2\repository\org\openjfx\javafx-fxml\13\javafx-fxml-13.jar;C:\Users\Leo\.m2\repository\org\apache\maven\surefire\surefire-junit-platform\3.0.0-M5\surefire-junit-platform-3.0.0-M5.jar;C:\Users\Leo\.m2\repository\org\apache\maven\surefire\common-java5\3.0.0-M5\common-java5-3.0.0-M5.jar;C:\Users\Leo\.m2\repository\org\junit\platform\junit-platform-launcher\1.7.1\junit-platform-launcher-1.7.1.jar"/>
+    <property name="user.script" value=""/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="java.runtime.version" value="11.0.13+8"/>
+    <property name="user.name" value="Leo"/>
+    <property name="path.separator" value=";"/>
+    <property name="os.version" value="10.0"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="Cp1252"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="java.vendor.version" value="Temurin-11.0.13+8"/>
+    <property name="localRepository" value="C:\Users\Leo\.m2\repository"/>
+    <property name="java.vendor.url.bug" value="https://github.com/adoptium/adoptium-support/issues"/>
+    <property name="java.io.tmpdir" value="C:\Users\Leo\AppData\Local\Temp\"/>
+    <property name="java.version" value="11.0.13"/>
+    <property name="user.dir" value="C:\Users\Leo\Documents\Koodit\Labra\simon"/>
+    <property name="os.arch" value="amd64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="java.awt.printerjob" value="sun.awt.windows.WPrinterJob"/>
+    <property name="sun.os.patch.level" value=""/>
+    <property name="java.library.path" value="C:\Program Files\Eclipse Adoptium\jdk-11.0.13.8-hotspot\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Eclipse Adoptium\jdk-11.0.13.8-hotspot\bin;C:\Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;C:\WINDOWS\system32\windowspowershell\v1.0\;c:\program files (x86)\common files\oracle\java\javapath;c:\program files (x86)\nvidia corporation\physx\common;c:\programdata\oracle\java\javapath;c:\program files (x86)\amd\ati.ace\core-static;C:\Users\Leo\.dnx\bin;c:\program files\microsoft dnx\dnvm\;c:\program files\microsoft sql server\130\tools\binn\;C:\WINDOWS\system32\openssh\;C:\Users\Leo\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\Leo\AppData\Local\Programs\Python\Python37\;C:\Users\Leo\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Git\cmd;C:\Users\Leo\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Program Files\dotnet\;C:\Users\Leo\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\Leo\AppData\Local\Programs\Python\Python37\;C:\Users\Leo\AppData\Local\Microsoft\WindowsApps;C:\Users\Leo\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\apache-maven-3.8.4\bin;C:\Users\Leo\AppData\Roaming\nvm;C:\Program Files\nodejs;."/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.vendor" value="Eclipse Adoptium"/>
+    <property name="java.vm.version" value="11.0.13+8"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
+    <property name="java.class.version" value="55.0"/>
+  </properties>
+  <testcase name="testX" classname="simon.crummyTest" time="0.056"/>
+</testsuite>
\ No newline at end of file
diff --git a/target/surefire-reports/simon.crummyTest.txt b/target/surefire-reports/simon.crummyTest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7e9ef31d88f2f4a45cbb29a2cee6becc033e30e2
--- /dev/null
+++ b/target/surefire-reports/simon.crummyTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: simon.crummyTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.077 s - in simon.crummyTest
diff --git a/target/test-classes/META-INF/jpms.args b/target/test-classes/META-INF/jpms.args
new file mode 100644
index 0000000000000000000000000000000000000000..6b611d415639897b0539de656254eb1761667182
--- /dev/null
+++ b/target/test-classes/META-INF/jpms.args
@@ -0,0 +1,4 @@
+--patch-module
+simon=_
+--add-reads
+simon=ALL-UNNAMED
diff --git a/target/test-classes/simon/crummyTest.class b/target/test-classes/simon/crummyTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..e750a4c1dfbf0b20dd3fccfd1b1f846e05c70759
Binary files /dev/null and b/target/test-classes/simon/crummyTest.class differ
diff --git a/target/test-classes/simon/test.class b/target/test-classes/simon/test.class
deleted file mode 100644
index dba9ba1f944ccad2bfd62d94f0ff70e0eb6ab781..0000000000000000000000000000000000000000
Binary files a/target/test-classes/simon/test.class and /dev/null differ