diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a9cdd0d88a066b473ec56f66313bb51bd2456464
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,30 @@
+image: maven:latest
+
+stages:
+  - clean
+  - build
+  - test
+  - deploy
+
+Clean Project files:
+  stage: clean
+  script: mvn clean
+
+Compile new version:
+  stage: build
+  script: mvn compile
+
+Run JUnit tests and verify:
+  stage: test
+  script: mvn verify
+  artifacts:
+    reports:
+      junit:
+      - target/surefire-reports/TEST-*.xml
+      - target/failsafe-reports/TEST-*.xml
+
+Deploy new version as Release:
+  stage: deploy
+  script:
+    - mvn versions:set -DnewVersion=$CI_COMMIT_TAG
+    - mvn assembly:assembly
diff --git a/README.md b/README.md
index a0199f8ecfdddc71f316c6a00789ab37c48e049d..940811b4b2353806bb59821548107f72c24fbc36 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
+[![pipeline status](https://www.gitrepo.de/alfatrainingkurse/java/enigma/badges/master/pipeline.svg)](https://www.gitrepo.de/alfatrainingkurse/java/enigma/commits/master)
+
 Link zum [Wiki](https://www.gitrepo.de/alfatrainingkurse/java/enigma/wikis/home)
\ No newline at end of file
diff --git a/src/main/java/Enigma/model/Walze.java b/src/main/java/Enigma/model/Walze.java
index 06189d06cbb06c9e01d0557f2746bf4e995e6efd..9ad536e3a3a67ec8f1f75500d4c66799aa893614 100644
--- a/src/main/java/Enigma/model/Walze.java
+++ b/src/main/java/Enigma/model/Walze.java
@@ -2,8 +2,8 @@ package Enigma.model;
 
 public class Walze {
 
-    private Character buchstabe = null;
-    private Character ringstellung = null;
+    private Character buchstabe;
+    private Character ringstellung;
     private int walzennr;
     private int iPositionBuchstabe;
     private int iPositionBuchstabeRe;
@@ -37,21 +37,19 @@ public class Walze {
      *
      * @param buchstabe : Character : Grundeinstellung der Walze
      */
-    private void setBuchstabe(Character buchstabe) {
-        this.buchstabe = Character.toUpperCase(buchstabe);
+    public void setBuchstabe(Character buchstabe) {
 
-        if(buchstabe.isLetter(buchstabe)) {
-            this.buchstabe = buchstabe;
+        if(Character.isLetter(buchstabe)) {
+            this.buchstabe = Character.toUpperCase(buchstabe);
         } else {
             this.buchstabe = 'A';
         }
-
     }
 
     /**
      * @return ringstellung : Character : gibt die neue Ringstellung zurueck
      */
-    public char getRingstellung() {
+    public Character getRingstellung() {
         return ringstellung;
     }
 
@@ -63,9 +61,9 @@ public class Walze {
      *
      * @param ringstellung : Character : Punkt an dem die Walze umspringt
      */
-    private void setRingstellung(Character ringstellung) {
+    public void setRingstellung(Character ringstellung) {
 
-        if(buchstabe.isDigit(ringstellung) && ringstellung > 0 && ringstellung <= 26) {
+        if(Character.isDigit(ringstellung) && ringstellung > 0 && ringstellung <= 26) {
             this.ringstellung = ringstellung;
         } else {
             this.ringstellung = '1';
@@ -84,7 +82,7 @@ public class Walze {
      *
      * @param walzennr : int : setzt die Walzennummer
      */
-    private void setWalzennr(int walzennr) {
+    public void setWalzennr(int walzennr) {
         if(walzennr > 0 && walzennr < 6) {
             this.walzennr = walzennr;
         } else {
@@ -99,7 +97,7 @@ public class Walze {
      */
     private Character[] walzenNummer() {
 
-        //Walze nach der Cheffrierung
+        /*Walze nach der Chiffrierung*/
         Character[] walzeEins = {'E','K', 'M', 'F', 'L', 'G', 'D', 'Q', 'V', 'Z', 'N', 'T', 'O', 'W', 'Y', 'H', 'X', 'U', 'S', 'P', 'A', 'I', 'B', 'R', 'C', 'J'};
         Character[] walzeZwei = {'A', 'J', 'D', 'K', 'S', 'I', 'R', 'U', 'X', 'B', 'L', 'H', 'W', 'T', 'M', 'C', 'Q', 'G', 'Z', 'N', 'P', 'Y', 'F', 'V', 'O', 'E'};
         Character[] walzeDrei = {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'};
@@ -129,19 +127,17 @@ public class Walze {
 
     /**
      * Ermittelt die Position des Buchstaben auf der Alphabetswalze, um die Position mit
-     * der Cheffrierung auf der gewaehlten Walze abgleichen zu koennen.
+     * der Chiffrierung auf der gewaehlten Walze abgleichen zu koennen.
      *
      * @return iPositionBuchstabe : int : Position des Buchstaben im Array
      */
     public int positionBuchstabe() {
 
-        //Alphabetswalze
+        /*Alphabetswalze*/
         Character[] walzeAlpha = {'A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
 
-        int index = 0;
-
-        //Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze
-        for(index = 0; index < walzeAlpha.length; index++) {
+        /*Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze*/
+        for(int index = 0; index < walzeAlpha.length; index++) {
             if(getBuchstabe().equals(walzeAlpha[index])) {
                 iPositionBuchstabe = index;
                 break;
@@ -153,14 +149,14 @@ public class Walze {
 
 
     /**
-     * Cheffriert den Buchstaben an der Position aus der Methode positionBuchstabe()
+     * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabe()
      * anhand der gewaehlten Walze.
      *
-     * @param iPositionBuchstabe : int : Position des zu cheffrierenden Buchstabens
+     * @param iPositionBuchstabe : int : Position des zu chiffrierenden Buchstabens
      * @param walze : Character[] : ausgewaehlte Walze
-     * @return cheffrierterBuchstabe : Character : cheffrierter Buchstabe
+     * @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe
      */
-    public Character codierterBuchstabe(int iPositionBuchstabe, Character[] walze) {
+    public Character codiereBuchstabe(int iPositionBuchstabe, Character[] walze) {
         Character codierterBuchstabe = walze[iPositionBuchstabe];
         return codierterBuchstabe;
     }
@@ -188,17 +184,15 @@ public class Walze {
 
     /**
      * Ermittelt die Position des Buchstaben auf der gewaehlten Walze, um die Position mit
-     * der Cheffrierung auf der AlphaWalze abgleichen zu koennen.
+     * der Chiffrierung auf der AlphaWalze abgleichen zu koennen.
      *
      * @param walzennr : int : gibt die gewaehlte Walze zurueck
      * @return iPositionBuchstabeRe : int : Position des Buchstaben im Array
      */
     public int positionBuchstabeReverse(int walzennr) {
 
-        int index = 0;
-
-        //Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze
-        for(index = 0; index < walze.length; index++) {
+        /*Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze*/
+        for(int index = 0; index < walze.length; index++) {
             if(getBuchstabe().equals(walze[index])) {
                 iPositionBuchstabeRe = index;
                 break;
@@ -208,14 +202,14 @@ public class Walze {
     }
 
     /**
-     * Cheffriert den Buchstaben an der Position aus der Methode positionBuchstabeReverse()
+     * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabeReverse()
      * anhand der AlphaWalze.
      *
-     * @param iPositionBuchstabeRe : int : Position des zu cheffrierenden Buchstabens
-     * @return codierterBuchstabeRe : Character : cheffrierter Buchstabe
+     * @param iPositionBuchstabeRe : int : Position des zu chiffrierenden Buchstabens
+     * @return codierterBuchstabeRe : Character : chiffrierter Buchstabe
      */
     public Character codierterBuchstabeReverse(int iPositionBuchstabeRe) {
-        //Alphawalze
+        /*Alphawalze*/
         Character[] walzeAlpha = {'A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
 
         Character codierterBuchstabeRe = walzeAlpha[iPositionBuchstabeRe];