diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/.gitignore b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..19d7c603173c0678aa6c06ba55fc4370bbd0b8fb
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/.gitignore
@@ -0,0 +1,6 @@
+/target/
+/.settings/
+.classpath
+.project
+dependency-reduced-pom.xml
+*.log
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/pom.xml b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c5044ba7c65fec0cac2225fc3d79d79bf89271c8
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/pom.xml
@@ -0,0 +1,75 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>de.hdm_stuttgart.mi.sd1</groupId>
+  <artifactId>compass</artifactId>
+  <version>1.0</version>
+  <packaging>jar</packaging>
+
+  <name>compass</name>
+
+  <url>https://freedocs.mi.hdm-stuttgart.de/sd1SectToolsOfTheTrade2.html</url>
+
+  <description>Basic Java project.</description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <build>
+    <plugins>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.7.0</version>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+	<version>3.0.1</version>
+        <configuration>
+        <linksource>true</linksource>
+          <additionalOptions>
+            <additionalOption>-html5</additionalOption>
+          </additionalOptions>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>3.1.0</version>
+        <configuration>
+          <transformers>
+            <transformer
+                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+              <manifestEntries>
+                <Main-Class>de.hdm_stuttgart.mi.sd1.direction.Direction</Main-Class>
+              </manifestEntries>
+            </transformer>
+          </transformers>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>3.7.1</version>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java
new file mode 100644
index 0000000000000000000000000000000000000000..66896f907a6fdc992422383f50550034f78cbfab
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java
@@ -0,0 +1,14 @@
+package de.hdm_stuttgart.mi.sd1;
+
+import de.hdm_stuttgart.mi.sd1.direction.Direction;
+
+public class Driver {
+
+  public static void main(String[] args) {
+
+    final Direction northWest = Direction.NW;
+
+    System.out.println(northWest);
+
+  }
+}
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java
new file mode 100644
index 0000000000000000000000000000000000000000..c8f7fe8864ecab9cf3e3785e9da12a34932ea7e8
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java
@@ -0,0 +1,35 @@
+package de.hdm_stuttgart.mi.sd1.direction;
+
+/**
+ * Representing eight compass directions.
+ */
+public enum Direction {
+
+  N(   0, "north"),
+  NE( 45, "north by east"),
+  E(  90, "east"),
+  SE(135, "south by east"),
+  S( 180, "south"),
+  SW(225, "south by west"),
+  W( 270, "west"),
+  NW(315, "north by west");
+
+  /**
+   * A direction specified by angle and informal description.
+   *
+   * @param degree A value ranging from 0 (N) to 315 (NW) mimic a compass rose.
+   * @param fullName The usual informal name i.e. north by west.
+   */
+  Direction(final int degree, final String fullName) {
+    this.degree = degree;
+    this.fullName = fullName;
+  }
+
+  @Override
+  public String toString() {
+    return fullName + " (" + degree + "°)";
+  }
+
+  public final int degree;
+  public final String fullName;
+}
\ No newline at end of file
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/.gitignore b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..19d7c603173c0678aa6c06ba55fc4370bbd0b8fb
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/.gitignore
@@ -0,0 +1,6 @@
+/target/
+/.settings/
+.classpath
+.project
+dependency-reduced-pom.xml
+*.log
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/pom.xml b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a0aaffbe073bc7a48dd0cca66cbc6fc6ef28198
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/pom.xml
@@ -0,0 +1,75 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>de.hdm_stuttgart.mi.sd1</groupId>
+  <artifactId>compass</artifactId>
+  <version>2.0</version>
+  <packaging>jar</packaging>
+
+  <name>compass</name>
+
+  <url>https://freedocs.mi.hdm-stuttgart.de/sd1SectToolsOfTheTrade2.html</url>
+
+  <description>Basic Java project.</description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <build>
+    <plugins>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.7.0</version>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+	<version>3.0.1</version>
+        <configuration>
+        <linksource>true</linksource>
+          <additionalOptions>
+            <additionalOption>-html5</additionalOption>
+          </additionalOptions>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>3.1.0</version>
+        <configuration>
+          <transformers>
+            <transformer
+                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+              <manifestEntries>
+                <Main-Class>de.hdm_stuttgart.mi.sd1.direction.Direction</Main-Class>
+              </manifestEntries>
+            </transformer>
+          </transformers>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>3.7.1</version>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java
new file mode 100644
index 0000000000000000000000000000000000000000..7498913b630ebbf674377a1f0beaa530becc3e3a
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java
@@ -0,0 +1,14 @@
+package de.hdm_stuttgart.mi.sd1;
+
+import de.hdm_stuttgart.mi.sd1.direction.Direction;
+
+public class Driver {
+
+  public static void main(String[] args) {
+
+    final Direction southWest = Direction.SW;
+
+    System.out.println("Direction: " + southWest);
+    System.out.println(" Opposite: " + southWest.opposite());
+  }
+}
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a4e70ba6522770e2a8ec2e6a7eb58e31970bc6e
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java
@@ -0,0 +1,55 @@
+package de.hdm_stuttgart.mi.sd1.direction;
+
+/**
+ * Representing eight compass directions.
+ */
+public enum Direction {
+
+  N(   0, "north"),
+  NE( 45, "north by east"),
+  E(  90, "east"),
+  SE(135, "south by east"),
+  S( 180, "south"),
+  SW(225, "south by west"),
+  W( 270, "west"),
+  NW(315, "north by west");
+
+  /**
+   * A direction specified by angle and informal description.
+   *
+   * @param degree A value ranging from 0 (N) to 315 (NW) mimic a compass rose.
+   * @param fullName The usual informal name i.e. north by west.
+   */
+  Direction(final int degree, final String fullName) {
+    this.degree = degree;
+    this.fullName = fullName;
+  }
+
+  /**
+   * Turning a given direction i.e. {@link #SE} into its counterpart {@link #NW}.
+   *
+   * @return Direction opposite to the current one.
+   */
+  public Direction opposite() {
+    switch (this) {
+      case N: return S;
+      case NE: return SW;
+      case E: return W;
+      case SE: return NW;
+      case S: return N;
+      case SW: return NE;
+      case W: return E;
+      case NW: return SE;
+
+      default: return null; // Unreachable, but our compiler does not know.
+    }
+  }
+
+  @Override
+  public String toString() {
+    return fullName + " (" + degree + "°)";
+  }
+
+  public final int degree;
+  public final String fullName;
+}
\ No newline at end of file
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/.gitignore b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..19d7c603173c0678aa6c06ba55fc4370bbd0b8fb
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/.gitignore
@@ -0,0 +1,6 @@
+/target/
+/.settings/
+.classpath
+.project
+dependency-reduced-pom.xml
+*.log
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/pom.xml b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..68946d0dca8c6a72cff8ce78508e9cb509f80383
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/pom.xml
@@ -0,0 +1,75 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>de.hdm_stuttgart.mi.sd1</groupId>
+  <artifactId>compass</artifactId>
+  <version>3.0</version>
+  <packaging>jar</packaging>
+
+  <name>compass</name>
+
+  <url>https://freedocs.mi.hdm-stuttgart.de/sd1SectToolsOfTheTrade2.html</url>
+
+  <description>Basic Java project.</description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <build>
+    <plugins>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.7.0</version>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+	<version>3.0.1</version>
+        <configuration>
+        <linksource>true</linksource>
+          <additionalOptions>
+            <additionalOption>-html5</additionalOption>
+          </additionalOptions>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>3.1.0</version>
+        <configuration>
+          <transformers>
+            <transformer
+                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+              <manifestEntries>
+                <Main-Class>de.hdm_stuttgart.mi.sd1.direction.Direction</Main-Class>
+              </manifestEntries>
+            </transformer>
+          </transformers>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>3.7.1</version>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java
new file mode 100644
index 0000000000000000000000000000000000000000..7498913b630ebbf674377a1f0beaa530becc3e3a
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java
@@ -0,0 +1,14 @@
+package de.hdm_stuttgart.mi.sd1;
+
+import de.hdm_stuttgart.mi.sd1.direction.Direction;
+
+public class Driver {
+
+  public static void main(String[] args) {
+
+    final Direction southWest = Direction.SW;
+
+    System.out.println("Direction: " + southWest);
+    System.out.println(" Opposite: " + southWest.opposite());
+  }
+}
diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java
new file mode 100644
index 0000000000000000000000000000000000000000..9dff8163d68023bdbfabd69ddfc454a16724217a
--- /dev/null
+++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java
@@ -0,0 +1,44 @@
+package de.hdm_stuttgart.mi.sd1.direction;
+
+/**
+ * Representing eight compass directions.
+ */
+public enum Direction {
+
+  N(   0, "north"),
+  NE( 45, "north by east"),
+  E(  90, "east"),
+  SE(135, "south by east"),
+  S( 180, "south"),
+  SW(225, "south by west"),
+  W( 270, "west"),
+  NW(315, "north by west");
+
+  /**
+   * A direction specified by angle and informal description.
+   *
+   * @param degree A value ranging from 0 (N) to 315 (NW) mimic a compass rose.
+   * @param fullName The usual informal name i.e. north by west.
+   */
+  Direction(final int degree, final String fullName) {
+    this.degree = degree;
+    this.fullName = fullName;
+  }
+
+  /**
+   * Turning a given direction i.e. {@link #SE} into its counterpart {@link #NW}.
+   *
+   * @return Direction opposite to the current one.
+   */
+  public Direction opposite() {
+     return values()[ (ordinal() + 4) % 8];
+  }
+
+  @Override
+  public String toString() {
+    return fullName + " (" + degree + "°)";
+  }
+
+  public final int degree;
+  public final String fullName;
+}
\ No newline at end of file