diff --git a/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiLoggerImplementation.java b/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiLoggerImplementation.java
index 364739c3..ef784562 100644
--- a/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiLoggerImplementation.java
+++ b/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiLoggerImplementation.java
@@ -20,9 +20,9 @@
package de.staropensource.sosengine.ansi;
import de.staropensource.sosengine.base.EngineConfiguration;
-import de.staropensource.sosengine.base.classes.LoggerImplementation;
+import de.staropensource.sosengine.base.implementable.LoggerImplementation;
import de.staropensource.sosengine.base.logging.Logger;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;
import org.jetbrains.annotations.NotNull;
diff --git a/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiShortcodeConverter.java b/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiShortcodeConverter.java
index 16646b46..a63a9668 100644
--- a/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiShortcodeConverter.java
+++ b/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiShortcodeConverter.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.ansi;
-import de.staropensource.sosengine.base.classes.ShortcodeParserSkeleton;
-import de.staropensource.sosengine.base.exceptions.ParserException;
+import de.staropensource.sosengine.base.implementable.ShortcodeParserSkeleton;
+import de.staropensource.sosengine.base.exception.ParserException;
import org.fusesource.jansi.Ansi;
import org.jetbrains.annotations.NotNull;
diff --git a/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiSubsystem.java b/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiSubsystem.java
index 2dcf6c3c..9a8cb9a3 100644
--- a/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiSubsystem.java
+++ b/ansi/src/main/java/de/staropensource/sosengine/ansi/AnsiSubsystem.java
@@ -19,12 +19,12 @@
package de.staropensource.sosengine.ansi;
-import de.staropensource.sosengine.base.annotations.EngineSubsystem;
-import de.staropensource.sosengine.base.classes.SubsystemClass;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
-import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
+import de.staropensource.sosengine.base.annotation.EngineSubsystem;
+import de.staropensource.sosengine.base.implementable.SubsystemClass;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
+import de.staropensource.sosengine.base.dataprovider.versioning.StarOpenSourceVersioningSystem;
import de.staropensource.sosengine.base.logging.Logger;
-import de.staropensource.sosengine.base.types.DependencyVector;
+import de.staropensource.sosengine.base.type.DependencyVector;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/Engine.java b/base/src/main/java/de/staropensource/sosengine/base/Engine.java
index d174c65a..8d8cd527 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/Engine.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/Engine.java
@@ -19,22 +19,22 @@
package de.staropensource.sosengine.base;
-import de.staropensource.sosengine.base.annotations.EngineSubsystem;
-import de.staropensource.sosengine.base.classes.ShutdownHandler;
-import de.staropensource.sosengine.base.classes.SubsystemClass;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
-import de.staropensource.sosengine.base.data.information.JvmInformation;
-import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
-import de.staropensource.sosengine.base.events.*;
-import de.staropensource.sosengine.base.exceptions.NoAccessException;
-import de.staropensource.sosengine.base.exceptions.dependency.UnmetDependenciesException;
+import de.staropensource.sosengine.base.annotation.EngineSubsystem;
+import de.staropensource.sosengine.base.implementable.ShutdownHandler;
+import de.staropensource.sosengine.base.implementable.SubsystemClass;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
+import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
+import de.staropensource.sosengine.base.dataprovider.versioning.StarOpenSourceVersioningSystem;
+import de.staropensource.sosengine.base.event.*;
+import de.staropensource.sosengine.base.exception.NoAccessException;
+import de.staropensource.sosengine.base.exception.dependency.UnmetDependenciesException;
import de.staropensource.sosengine.base.internal.events.InternalEngineShutdownEvent;
import de.staropensource.sosengine.base.internal.types.DependencySubsystemVector;
import de.staropensource.sosengine.base.logging.*;
-import de.staropensource.sosengine.base.types.DependencyVector;
-import de.staropensource.sosengine.base.types.EngineState;
-import de.staropensource.sosengine.base.types.immutable.ImmutableLinkedList;
+import de.staropensource.sosengine.base.type.DependencyVector;
+import de.staropensource.sosengine.base.type.EngineState;
+import de.staropensource.sosengine.base.type.immutable.ImmutableLinkedList;
import de.staropensource.sosengine.base.utility.DependencyResolver;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import de.staropensource.sosengine.base.utility.PlaceholderEngine;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/EngineConfiguration.java b/base/src/main/java/de/staropensource/sosengine/base/EngineConfiguration.java
index b7c399cf..692b82e4 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/EngineConfiguration.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/EngineConfiguration.java
@@ -19,14 +19,14 @@
package de.staropensource.sosengine.base;
-import de.staropensource.sosengine.base.classes.ShortcodeParserSkeleton;
-import de.staropensource.sosengine.base.classes.Configuration;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.ShortcodeParserSkeleton;
+import de.staropensource.sosengine.base.implementable.Configuration;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.logging.CrashHandler;
import de.staropensource.sosengine.base.logging.Logger;
-import de.staropensource.sosengine.base.types.EngineState;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
-import de.staropensource.sosengine.base.types.vectors.Vec2f;
+import de.staropensource.sosengine.base.type.EngineState;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
+import de.staropensource.sosengine.base.type.vectors.Vec2f;
import de.staropensource.sosengine.base.utility.PropertiesReader;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/EngineInternals.java b/base/src/main/java/de/staropensource/sosengine/base/EngineInternals.java
index a4d9fbac..a8461162 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/EngineInternals.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/EngineInternals.java
@@ -19,10 +19,10 @@
package de.staropensource.sosengine.base;
-import de.staropensource.sosengine.base.classes.ShutdownHandler;
-import de.staropensource.sosengine.base.exceptions.NoAccessException;
+import de.staropensource.sosengine.base.implementable.ShutdownHandler;
+import de.staropensource.sosengine.base.exception.NoAccessException;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.InternalAccessArea;
+import de.staropensource.sosengine.base.type.InternalAccessArea;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/annotations/EngineSubsystem.java b/base/src/main/java/de/staropensource/sosengine/base/annotation/EngineSubsystem.java
similarity index 90%
rename from base/src/main/java/de/staropensource/sosengine/base/annotations/EngineSubsystem.java
rename to base/src/main/java/de/staropensource/sosengine/base/annotation/EngineSubsystem.java
index 6e2f116b..c7e12e31 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/annotations/EngineSubsystem.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/annotation/EngineSubsystem.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.annotations;
+package de.staropensource.sosengine.base.annotation;
-import de.staropensource.sosengine.base.classes.SubsystemClass;
+import de.staropensource.sosengine.base.implementable.SubsystemClass;
import java.lang.annotation.*;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/annotations/EventListener.java b/base/src/main/java/de/staropensource/sosengine/base/annotation/EventListener.java
similarity index 89%
rename from base/src/main/java/de/staropensource/sosengine/base/annotations/EventListener.java
rename to base/src/main/java/de/staropensource/sosengine/base/annotation/EventListener.java
index d1f2c69e..f43f85d2 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/annotations/EventListener.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/annotation/EventListener.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.annotations;
+package de.staropensource.sosengine.base.annotation;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.types.EventPriority;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.type.EventPriority;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.*;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/annotations/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/annotation/package-info.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/annotations/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/annotation/package-info.java
index 4908780c..1e6a7750 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/annotations/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/annotation/package-info.java
@@ -23,4 +23,4 @@
*
* @since v1-alpha0
*/
-package de.staropensource.sosengine.base.annotations;
+package de.staropensource.sosengine.base.annotation;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/information/EngineInformation.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/information/EngineInformation.java
similarity index 99%
rename from base/src/main/java/de/staropensource/sosengine/base/data/information/EngineInformation.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/information/EngineInformation.java
index 6a437bed..7930e596 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/information/EngineInformation.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/information/EngineInformation.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.data.information;
+package de.staropensource.sosengine.base.dataprovider.information;
import de.staropensource.sosengine.base.Engine;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.VersionType;
+import de.staropensource.sosengine.base.type.VersionType;
import de.staropensource.sosengine.base.utility.PropertiesReader;
import de.staropensource.sosengine.base.utility.parser.StackTraceParser;
import lombok.Getter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/information/JvmInformation.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/information/JvmInformation.java
similarity index 98%
rename from base/src/main/java/de/staropensource/sosengine/base/data/information/JvmInformation.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/information/JvmInformation.java
index 2a86c973..0b859833 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/information/JvmInformation.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/information/JvmInformation.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.data.information;
+package de.staropensource.sosengine.base.dataprovider.information;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/information/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/information/package-info.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/data/information/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/information/package-info.java
index 28358b38..19a878f6 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/information/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/information/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha0
*/
-package de.staropensource.sosengine.base.data.information;
+package de.staropensource.sosengine.base.dataprovider.information;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/package-info.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/data/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/package-info.java
index 5993a1f9..675cb5ec 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha0
*/
-package de.staropensource.sosengine.base.data;
+package de.staropensource.sosengine.base.dataprovider;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/FourNumberVersioningSystem.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/FourNumberVersioningSystem.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/data/versioning/FourNumberVersioningSystem.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/FourNumberVersioningSystem.java
index fe774ba8..be102b7e 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/FourNumberVersioningSystem.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/FourNumberVersioningSystem.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.data.versioning;
+package de.staropensource.sosengine.base.dataprovider.versioning;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/OneNumberVersioningSystem.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/OneNumberVersioningSystem.java
similarity index 89%
rename from base/src/main/java/de/staropensource/sosengine/base/data/versioning/OneNumberVersioningSystem.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/OneNumberVersioningSystem.java
index 22038112..87d333b7 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/OneNumberVersioningSystem.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/OneNumberVersioningSystem.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.data.versioning;
+package de.staropensource.sosengine.base.dataprovider.versioning;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Range;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/SemanticVersioningSystem.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/SemanticVersioningSystem.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/data/versioning/SemanticVersioningSystem.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/SemanticVersioningSystem.java
index 11aff01e..4746ad42 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/SemanticVersioningSystem.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/SemanticVersioningSystem.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.data.versioning;
+package de.staropensource.sosengine.base.dataprovider.versioning;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/StarOpenSourceVersioningSystem.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/StarOpenSourceVersioningSystem.java
similarity index 96%
rename from base/src/main/java/de/staropensource/sosengine/base/data/versioning/StarOpenSourceVersioningSystem.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/StarOpenSourceVersioningSystem.java
index c69c5f59..7282e335 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/StarOpenSourceVersioningSystem.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/StarOpenSourceVersioningSystem.java
@@ -17,12 +17,12 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.data.versioning;
+package de.staropensource.sosengine.base.dataprovider.versioning;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
-import de.staropensource.sosengine.base.types.VersionType;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.type.VersionType;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/ThreeNumberVersioningSystem.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/ThreeNumberVersioningSystem.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/data/versioning/ThreeNumberVersioningSystem.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/ThreeNumberVersioningSystem.java
index d3844dab..7a712f95 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/ThreeNumberVersioningSystem.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/ThreeNumberVersioningSystem.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.data.versioning;
+package de.staropensource.sosengine.base.dataprovider.versioning;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/TwoNumberVersioningSystem.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/TwoNumberVersioningSystem.java
similarity index 92%
rename from base/src/main/java/de/staropensource/sosengine/base/data/versioning/TwoNumberVersioningSystem.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/TwoNumberVersioningSystem.java
index 14d8bec6..fb54e82d 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/TwoNumberVersioningSystem.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/TwoNumberVersioningSystem.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.data.versioning;
+package de.staropensource.sosengine.base.dataprovider.versioning;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/package-info.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/data/versioning/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/package-info.java
index 1c284da9..7ef3ca83 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/data/versioning/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/dataprovider/versioning/package-info.java
@@ -23,4 +23,4 @@
*
* @since v1-alpha1
*/
-package de.staropensource.sosengine.base.data.versioning;
+package de.staropensource.sosengine.base.dataprovider.versioning;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/events/EngineCrashEvent.java b/base/src/main/java/de/staropensource/sosengine/base/event/EngineCrashEvent.java
similarity index 86%
rename from base/src/main/java/de/staropensource/sosengine/base/events/EngineCrashEvent.java
rename to base/src/main/java/de/staropensource/sosengine/base/event/EngineCrashEvent.java
index 74e2b045..616310cf 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/events/EngineCrashEvent.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/event/EngineCrashEvent.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.events;
+package de.staropensource.sosengine.base.event;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
/**
* Called in the event of an engine crash.
diff --git a/base/src/main/java/de/staropensource/sosengine/base/events/EngineShutdownEvent.java b/base/src/main/java/de/staropensource/sosengine/base/event/EngineShutdownEvent.java
similarity index 86%
rename from base/src/main/java/de/staropensource/sosengine/base/events/EngineShutdownEvent.java
rename to base/src/main/java/de/staropensource/sosengine/base/event/EngineShutdownEvent.java
index b5c88b10..a78e52ef 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/events/EngineShutdownEvent.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/event/EngineShutdownEvent.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.events;
+package de.staropensource.sosengine.base.event;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
/**
* Called when the engine is about to shutdown.
diff --git a/base/src/main/java/de/staropensource/sosengine/base/events/EngineSoftCrashEvent.java b/base/src/main/java/de/staropensource/sosengine/base/event/EngineSoftCrashEvent.java
similarity index 88%
rename from base/src/main/java/de/staropensource/sosengine/base/events/EngineSoftCrashEvent.java
rename to base/src/main/java/de/staropensource/sosengine/base/event/EngineSoftCrashEvent.java
index 9f86ba5e..72e9ed88 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/events/EngineSoftCrashEvent.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/event/EngineSoftCrashEvent.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.events;
+package de.staropensource.sosengine.base.event;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.logging.Logger;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/events/LogEvent.java b/base/src/main/java/de/staropensource/sosengine/base/event/LogEvent.java
similarity index 88%
rename from base/src/main/java/de/staropensource/sosengine/base/events/LogEvent.java
rename to base/src/main/java/de/staropensource/sosengine/base/event/LogEvent.java
index 7c2e36c1..162df835 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/events/LogEvent.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/event/LogEvent.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.events;
+package de.staropensource.sosengine.base.event;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/events/ThrowableCatchEvent.java b/base/src/main/java/de/staropensource/sosengine/base/event/ThrowableCatchEvent.java
similarity index 91%
rename from base/src/main/java/de/staropensource/sosengine/base/events/ThrowableCatchEvent.java
rename to base/src/main/java/de/staropensource/sosengine/base/event/ThrowableCatchEvent.java
index 360a4150..b6a1fd3a 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/events/ThrowableCatchEvent.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/event/ThrowableCatchEvent.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.events;
+package de.staropensource.sosengine.base.event;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/events/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/event/package-info.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/events/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/event/package-info.java
index d00a9540..5c277298 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/events/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/event/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha1
*/
-package de.staropensource.sosengine.base.events;
+package de.staropensource.sosengine.base.event;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/NoAccessException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/NoAccessException.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/NoAccessException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/NoAccessException.java
index 743f6d23..d527ac49 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/NoAccessException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/NoAccessException.java
@@ -17,14 +17,14 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions;
+package de.staropensource.sosengine.base.exception;
import org.jetbrains.annotations.NotNull;
/**
* Thrown when the caller class is not allowed to call the throwing method.
*
- * Not to be confused with {@link de.staropensource.sosengine.base.exceptions.reflection.NoAccessException},
+ * Not to be confused with {@link de.staropensource.sosengine.base.exception.reflection.NoAccessException},
* which handles access violations of reflection objects.
*
* @since v1-alpha2
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/ParserException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/ParserException.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/ParserException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/ParserException.java
index ad19e553..62a4351a 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/ParserException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/ParserException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions;
+package de.staropensource.sosengine.base.exception;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/TristateConversionException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/TristateConversionException.java
similarity index 92%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/TristateConversionException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/TristateConversionException.java
index 8137bfc6..d329f00d 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/TristateConversionException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/TristateConversionException.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions;
+package de.staropensource.sosengine.base.exception;
-import de.staropensource.sosengine.base.types.Tristate;
+import de.staropensource.sosengine.base.type.Tristate;
/**
* Thrown when converting a {@link Tristate} into a {@link Boolean} fails.
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/UnexpectedCheckEndException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/UnexpectedCheckEndException.java
similarity index 96%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/UnexpectedCheckEndException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/UnexpectedCheckEndException.java
index e8e017a5..4196982d 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/UnexpectedCheckEndException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/UnexpectedCheckEndException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions;
+package de.staropensource.sosengine.base.exception;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/UnexpectedThrowableException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/UnexpectedThrowableException.java
similarity index 97%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/UnexpectedThrowableException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/UnexpectedThrowableException.java
index fa55e43f..5cd0e92c 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/UnexpectedThrowableException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/UnexpectedThrowableException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions;
+package de.staropensource.sosengine.base.exception;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/dependency/DependencyCycleException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/dependency/DependencyCycleException.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/dependency/DependencyCycleException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/dependency/DependencyCycleException.java
index 09f6118b..c230ef91 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/dependency/DependencyCycleException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/dependency/DependencyCycleException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.dependency;
+package de.staropensource.sosengine.base.exception.dependency;
import de.staropensource.sosengine.base.utility.DependencyResolver;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/dependency/UnmetDependenciesException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/dependency/UnmetDependenciesException.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/dependency/UnmetDependenciesException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/dependency/UnmetDependenciesException.java
index cab27940..dc63e696 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/dependency/UnmetDependenciesException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/dependency/UnmetDependenciesException.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.dependency;
+package de.staropensource.sosengine.base.exception.dependency;
-import de.staropensource.sosengine.base.types.DependencyVector;
+import de.staropensource.sosengine.base.type.DependencyVector;
import de.staropensource.sosengine.base.utility.DependencyResolver;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/dependency/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/exception/dependency/package-info.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/dependency/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/dependency/package-info.java
index 0082cfdc..ffde30d1 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/dependency/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/dependency/package-info.java
@@ -23,4 +23,4 @@
* @see de.staropensource.sosengine.base.utility.DependencyResolver
* @since v1-alpha1
*/
-package de.staropensource.sosengine.base.exceptions.dependency;
+package de.staropensource.sosengine.base.exception.dependency;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/exception/package-info.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/package-info.java
index f364e95f..6f678d5f 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha1
*/
-package de.staropensource.sosengine.base.exceptions;
+package de.staropensource.sosengine.base.exception;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/IncompatibleTypeException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/IncompatibleTypeException.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/IncompatibleTypeException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/reflection/IncompatibleTypeException.java
index dd5bdd4e..f0c4c49d 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/IncompatibleTypeException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/IncompatibleTypeException.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.reflection;
+package de.staropensource.sosengine.base.exception.reflection;
-import de.staropensource.sosengine.base.types.reflection.ClassType;
+import de.staropensource.sosengine.base.type.reflection.ClassType;
import de.staropensource.sosengine.base.utility.ListFormatter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InstanceMethodFromStaticContextException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InstanceMethodFromStaticContextException.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InstanceMethodFromStaticContextException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InstanceMethodFromStaticContextException.java
index 2db6505c..258a5d3d 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InstanceMethodFromStaticContextException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InstanceMethodFromStaticContextException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.reflection;
+package de.staropensource.sosengine.base.exception.reflection;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InvalidFieldException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InvalidFieldException.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InvalidFieldException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InvalidFieldException.java
index dc3fa1b3..3981e0af 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InvalidFieldException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InvalidFieldException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.reflection;
+package de.staropensource.sosengine.base.exception.reflection;
import de.staropensource.sosengine.base.reflection.ReflectionClass;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InvalidMethodException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InvalidMethodException.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InvalidMethodException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InvalidMethodException.java
index d313e481..9f98f0c8 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InvalidMethodException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InvalidMethodException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.reflection;
+package de.staropensource.sosengine.base.exception.reflection;
import de.staropensource.sosengine.base.reflection.ReflectionClass;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InvalidMethodSignature.java b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InvalidMethodSignature.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InvalidMethodSignature.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InvalidMethodSignature.java
index 7f99114a..6e2ca008 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/InvalidMethodSignature.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/InvalidMethodSignature.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.reflection;
+package de.staropensource.sosengine.base.exception.reflection;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/NoAccessException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/NoAccessException.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/NoAccessException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/reflection/NoAccessException.java
index 09217f6a..cd695c09 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/NoAccessException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/NoAccessException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.reflection;
+package de.staropensource.sosengine.base.exception.reflection;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/StaticInitializerException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/StaticInitializerException.java
similarity index 96%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/StaticInitializerException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/reflection/StaticInitializerException.java
index 408de01d..012e3985 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/StaticInitializerException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/StaticInitializerException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.reflection;
+package de.staropensource.sosengine.base.exception.reflection;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/package-info.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/reflection/package-info.java
index 26d56604..927e444f 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/reflection/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/reflection/package-info.java
@@ -23,4 +23,4 @@
* @see de.staropensource.sosengine.base.reflection
* @since v1-alpha2
*/
-package de.staropensource.sosengine.base.exceptions.reflection;
+package de.staropensource.sosengine.base.exception.reflection;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/versioning/IncompatibleVersioningSystemException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/versioning/IncompatibleVersioningSystemException.java
similarity index 91%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/versioning/IncompatibleVersioningSystemException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/versioning/IncompatibleVersioningSystemException.java
index 33792513..e5648014 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/versioning/IncompatibleVersioningSystemException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/versioning/IncompatibleVersioningSystemException.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.versioning;
+package de.staropensource.sosengine.base.exception.versioning;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
/**
* Thrown when trying to compare a {@link VersioningSystem} against another
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/versioning/InvalidVersionStringException.java b/base/src/main/java/de/staropensource/sosengine/base/exception/versioning/InvalidVersionStringException.java
similarity index 96%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/versioning/InvalidVersionStringException.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/versioning/InvalidVersionStringException.java
index 4269b200..3e761f2e 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/versioning/InvalidVersionStringException.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/versioning/InvalidVersionStringException.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.exceptions.versioning;
+package de.staropensource.sosengine.base.exception.versioning;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/exceptions/versioning/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/exception/versioning/package-info.java
similarity index 83%
rename from base/src/main/java/de/staropensource/sosengine/base/exceptions/versioning/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/exception/versioning/package-info.java
index 17e08fe5..9a27af90 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/exceptions/versioning/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/exception/versioning/package-info.java
@@ -18,9 +18,9 @@
*/
/**
- * Exceptions thrown by implementations of {@link de.staropensource.sosengine.base.classes.VersioningSystem}s.
+ * Exceptions thrown by implementations of {@link de.staropensource.sosengine.base.implementable.VersioningSystem}s.
*
- * @see de.staropensource.sosengine.base.classes.VersioningSystem
+ * @see de.staropensource.sosengine.base.implementable.VersioningSystem
* @since v1-alpha1
*/
-package de.staropensource.sosengine.base.exceptions.versioning;
+package de.staropensource.sosengine.base.exception.versioning;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/Configuration.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/Configuration.java
similarity index 98%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/Configuration.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/Configuration.java
index c83b8f01..72cf68cf 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/Configuration.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/Configuration.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.classes;
+package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.utility.PropertiesReader;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/Event.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/Event.java
similarity index 88%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/Event.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/Event.java
index 30d935b4..8d2c546d 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/Event.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/Event.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.classes;
+package de.staropensource.sosengine.base.implementable;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
/**
* Represents an event.
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/LoggerImplementation.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/LoggerImplementation.java
similarity index 96%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/LoggerImplementation.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/LoggerImplementation.java
index 0c8c7d0d..713a22e8 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/LoggerImplementation.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/LoggerImplementation.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.classes;
+package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.logging.Logger;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/Placeholder.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/Placeholder.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/Placeholder.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/Placeholder.java
index 809cdfaa..64eabb1a 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/Placeholder.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/Placeholder.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.classes;
+package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.utility.PlaceholderEngine;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/ShortcodeParserSkeleton.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/ShortcodeParserSkeleton.java
similarity index 99%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/ShortcodeParserSkeleton.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/ShortcodeParserSkeleton.java
index fd940ea9..528aba34 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/ShortcodeParserSkeleton.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/ShortcodeParserSkeleton.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.classes;
+package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.EngineConfiguration;
-import de.staropensource.sosengine.base.exceptions.ParserException;
+import de.staropensource.sosengine.base.exception.ParserException;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/ShutdownHandler.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/ShutdownHandler.java
similarity index 96%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/ShutdownHandler.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/ShutdownHandler.java
index 424d383e..6e17cd13 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/ShutdownHandler.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/ShutdownHandler.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.classes;
+package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.Engine;
import org.jetbrains.annotations.Range;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/SubsystemClass.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/SubsystemClass.java
similarity index 91%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/SubsystemClass.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/SubsystemClass.java
index 59416fb6..80b62d27 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/SubsystemClass.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/SubsystemClass.java
@@ -17,14 +17,14 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.classes;
+package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.Engine;
-import de.staropensource.sosengine.base.annotations.EngineSubsystem;
-import de.staropensource.sosengine.base.annotations.EventListener;
+import de.staropensource.sosengine.base.annotation.EngineSubsystem;
+import de.staropensource.sosengine.base.annotation.EventListener;
import de.staropensource.sosengine.base.internal.events.InternalEngineShutdownEvent;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.DependencyVector;
+import de.staropensource.sosengine.base.type.DependencyVector;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/VersioningSystem.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/VersioningSystem.java
similarity index 91%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/VersioningSystem.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/VersioningSystem.java
index 77fe5122..67dc80df 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/VersioningSystem.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/VersioningSystem.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.classes;
+package de.staropensource.sosengine.base.implementable;
-import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
+import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Range;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/helpers/EventHelper.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/helpers/EventHelper.java
similarity index 92%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/helpers/EventHelper.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/helpers/EventHelper.java
index 539a0056..8438024e 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/helpers/EventHelper.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/helpers/EventHelper.java
@@ -17,17 +17,17 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.classes.helpers;
+package de.staropensource.sosengine.base.implementable.helpers;
import de.staropensource.sosengine.base.EngineConfiguration;
-import de.staropensource.sosengine.base.annotations.EventListener;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.events.LogEvent;
-import de.staropensource.sosengine.base.exceptions.UnexpectedThrowableException;
-import de.staropensource.sosengine.base.exceptions.reflection.InstanceMethodFromStaticContextException;
-import de.staropensource.sosengine.base.exceptions.reflection.InvalidMethodSignature;
-import de.staropensource.sosengine.base.exceptions.reflection.NoAccessException;
-import de.staropensource.sosengine.base.exceptions.reflection.StaticInitializerException;
+import de.staropensource.sosengine.base.annotation.EventListener;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.event.LogEvent;
+import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
+import de.staropensource.sosengine.base.exception.reflection.InstanceMethodFromStaticContextException;
+import de.staropensource.sosengine.base.exception.reflection.InvalidMethodSignature;
+import de.staropensource.sosengine.base.exception.reflection.NoAccessException;
+import de.staropensource.sosengine.base.exception.reflection.StaticInitializerException;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.reflection.Reflect;
import de.staropensource.sosengine.base.reflection.ReflectionMethod;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/helpers/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/helpers/package-info.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/helpers/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/helpers/package-info.java
index c124a641..7e737352 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/helpers/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/helpers/package-info.java
@@ -23,4 +23,4 @@
*
* @since v1-alpha0
*/
-package de.staropensource.sosengine.base.classes.helpers;
+package de.staropensource.sosengine.base.implementable.helpers;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/classes/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/implementable/package-info.java
similarity index 91%
rename from base/src/main/java/de/staropensource/sosengine/base/classes/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/implementable/package-info.java
index 963188b7..49b8710d 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/classes/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/implementable/package-info.java
@@ -20,8 +20,8 @@
/**
* Interfaces and abstract classes which can be used for implementing classes.
*
- * These are not to be confused with data types. See {@link de.staropensource.sosengine.base.types}.
+ * These are not to be confused with data types. See {@link de.staropensource.sosengine.base.type}.
*
* @since v1-alpha0
*/
-package de.staropensource.sosengine.base.classes;
+package de.staropensource.sosengine.base.implementable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/events/InternalEngineShutdownEvent.java b/base/src/main/java/de/staropensource/sosengine/base/internal/events/InternalEngineShutdownEvent.java
index b0d8bffd..3edd6e7e 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/events/InternalEngineShutdownEvent.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/events/InternalEngineShutdownEvent.java
@@ -19,11 +19,11 @@
package de.staropensource.sosengine.base.internal.events;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
/**
- * Called when the engine is about to shutdown, after {@link de.staropensource.sosengine.base.events.EngineShutdownEvent}.
+ * Called when the engine is about to shutdown, after {@link de.staropensource.sosengine.base.event.EngineShutdownEvent}.
*
* Meant for subsystems to perform cleanup and shutdown routines, not for applications.
*
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateDay.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateDay.java
index 23c21885..9792e2a9 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateDay.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateDay.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateMonth.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateMonth.java
index b8314e5c..09db01ed 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateMonth.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateMonth.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateYear.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateYear.java
index 0dc1dc27..40e411c3 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateYear.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/DateYear.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyJansi.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyJansi.java
index b496ed32..1cf2d0a6 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyJansi.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyJansi.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyLwjgl.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyLwjgl.java
index 75c72e41..05711ad4 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyLwjgl.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyLwjgl.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyReflections.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyReflections.java
index e87cf914..a4de6a97 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyReflections.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencyReflections.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencySlf4j.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencySlf4j.java
index a059c7f7..63edf8e8 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencySlf4j.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineDependencySlf4j.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitBranch.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitBranch.java
index dc765c2a..ee74f12e 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitBranch.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitBranch.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitHeader.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitHeader.java
index 1ba52afb..b0431a86 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitHeader.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitHeader.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitIdLong.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitIdLong.java
index fa8144ae..d81b3543 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitIdLong.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitIdLong.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitIdShort.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitIdShort.java
index a9040ea1..200e9abd 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitIdShort.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitIdShort.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeDay.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeDay.java
index 36c739d4..03ff02b2 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeDay.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeDay.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeHour.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeHour.java
index d443adc2..2ec7ee87 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeHour.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeHour.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeMinute.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeMinute.java
index 87b3e99b..e13d844e 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeMinute.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeMinute.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeMonth.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeMonth.java
index d26fb014..f764a047 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeMonth.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeMonth.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeSecond.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeSecond.java
index 51373b9a..0007e427 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeSecond.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeSecond.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeYear.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeYear.java
index 6c230734..b7700554 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeYear.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitTimeYear.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommits.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommits.java
index d6c38691..b28f68ec 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommits.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommits.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitterEmail.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitterEmail.java
index c79fd980..72827fbe 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitterEmail.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitterEmail.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitterName.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitterName.java
index 5fd7a4e3..4e8e2273 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitterName.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitCommitterName.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitDirty.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitDirty.java
index 91b45fe2..cdbcfed7 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitDirty.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineGitDirty.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersion.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersion.java
index 370cd18c..95e87f69 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersion.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersion.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionFork.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionFork.java
index c99ca01c..353fdf85 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionFork.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionFork.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionType.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionType.java
index 557f2c55..6b9fe178 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionType.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionType.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionTyperelease.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionTyperelease.java
index b3b80391..e987e156 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionTyperelease.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionTyperelease.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionVersion.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionVersion.java
index 47803153..2a8b29e8 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionVersion.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/EngineVersionVersion.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmArguments.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmArguments.java
index 9627506e..597b9dc8 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmArguments.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmArguments.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.JvmInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationName.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationName.java
index e38db2de..4f6d86dd 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationName.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationName.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.JvmInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationVendor.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationVendor.java
index ecc17a15..92775d53 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationVendor.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationVendor.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.JvmInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationVersion.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationVersion.java
index 74fd6e2d..97678206 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationVersion.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmImplementationVersion.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.JvmInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmJava.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmJava.java
index 8ed418c3..875fa16e 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmJava.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmJava.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.JvmInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmUptime.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmUptime.java
index 5ed4e2e0..3065da8c 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmUptime.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/JvmUptime.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.data.information.JvmInformation;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeEpoch.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeEpoch.java
index f1b2cc60..45c6a56a 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeEpoch.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeEpoch.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeHour.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeHour.java
index 37bc9639..a2f48221 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeHour.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeHour.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeMinute.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeMinute.java
index b0877cfd..2dd63634 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeMinute.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeMinute.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeSecond.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeSecond.java
index c784fd23..3b97d2b1 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeSecond.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeSecond.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeZone.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeZone.java
index 4cb029b1..c9e7f76c 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeZone.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/TimeZone.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
import java.util.Locale;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/CrashMessage.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/CrashMessage.java
index 7f38b776..e95aa5df 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/CrashMessage.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/CrashMessage.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.crashhandler;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerClass.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerClass.java
index e5718ab9..550de98f 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerClass.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerClass.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.crashhandler;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerMetadata.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerMetadata.java
index c694ef04..3cd36cbd 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerMetadata.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerMetadata.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.crashhandler;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerOrigin.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerOrigin.java
index 2c5cc493..929f44df 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerOrigin.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerOrigin.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.crashhandler;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
import java.util.Locale;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerPackage.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerPackage.java
index 78442512..2e5af20c 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerPackage.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerPackage.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.crashhandler;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerPath.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerPath.java
index 90245513..de2706a0 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerPath.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/IssuerPath.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.crashhandler;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/Stacktrace.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/Stacktrace.java
index fbe1af3f..2ba067fe 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/Stacktrace.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/Stacktrace.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders.crashhandler;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.exceptions.UnexpectedThrowableException;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
import de.staropensource.sosengine.base.utility.parser.StackTraceParser;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/StacktraceAll.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/StacktraceAll.java
index 4514dc15..5a1cca65 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/StacktraceAll.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/crashhandler/StacktraceAll.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.crashhandler;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogClass.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogClass.java
index 1ae6d2d4..1fa72563 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogClass.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogClass.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.logger;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogColorPrimary.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogColorPrimary.java
index cfeaa060..71344601 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogColorPrimary.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogColorPrimary.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders.logger;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogColorSecondary.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogColorSecondary.java
index 009eba07..afda5865 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogColorSecondary.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogColorSecondary.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders.logger;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogLevel.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogLevel.java
index 77567f8d..5b55415e 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogLevel.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogLevel.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.logger;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**
@@ -31,20 +31,20 @@ import org.jetbrains.annotations.NotNull;
@SuppressWarnings({ "unused" })
public final class LogLevel implements Placeholder {
/**
- * The {@link de.staropensource.sosengine.base.types.logging.LogLevel} to use.
+ * The {@link de.staropensource.sosengine.base.type.logging.LogLevel} to use.
*
* @since v1-alpha0
*/
@NotNull
- private final de.staropensource.sosengine.base.types.logging.LogLevel level;
+ private final de.staropensource.sosengine.base.type.logging.LogLevel level;
/**
* Constructs this class.
*
- * @param level {@link de.staropensource.sosengine.base.types.logging.LogLevel} to use
+ * @param level {@link de.staropensource.sosengine.base.type.logging.LogLevel} to use
* @since v1-alpha0
*/
- public LogLevel(@NotNull de.staropensource.sosengine.base.types.logging.LogLevel level) {
+ public LogLevel(@NotNull de.staropensource.sosengine.base.type.logging.LogLevel level) {
this.level = level;
}
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogMetadata.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogMetadata.java
index c4b92b43..a28c7b40 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogMetadata.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogMetadata.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.logger;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogOrigin.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogOrigin.java
index e523135c..5f8bc887 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogOrigin.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogOrigin.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.logger;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
import java.util.Locale;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogPackage.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogPackage.java
index 4339c094..d86861bd 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogPackage.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogPackage.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.logger;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogPath.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogPath.java
index f981edb6..1ee3eb46 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogPath.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/logger/LogPath.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders.logger;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/package-info.java
index 3661c676..44fe448b 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/placeholders/package-info.java
@@ -24,7 +24,7 @@
* specific use cases.
*
* @see de.staropensource.sosengine.base.utility.PlaceholderEngine
- * @see de.staropensource.sosengine.base.classes.Placeholder
+ * @see de.staropensource.sosengine.base.implementable.Placeholder
* @since v1-alpha0
*/
package de.staropensource.sosengine.base.internal.placeholders;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/reflection/ReflectionAccessWidener.java b/base/src/main/java/de/staropensource/sosengine/base/internal/reflection/ReflectionAccessWidener.java
index 6b656ac6..cb669371 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/reflection/ReflectionAccessWidener.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/reflection/ReflectionAccessWidener.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.reflection;
-import de.staropensource.sosengine.base.exceptions.UnexpectedThrowableException;
-import de.staropensource.sosengine.base.exceptions.reflection.NoAccessException;
+import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
+import de.staropensource.sosengine.base.exception.reflection.NoAccessException;
import de.staropensource.sosengine.base.reflection.ReflectionField;
import de.staropensource.sosengine.base.reflection.ReflectionMethod;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/types/DependencySubsystemVector.java b/base/src/main/java/de/staropensource/sosengine/base/internal/types/DependencySubsystemVector.java
index cf811f74..c4b47488 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/types/DependencySubsystemVector.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/types/DependencySubsystemVector.java
@@ -19,9 +19,9 @@
package de.staropensource.sosengine.base.internal.types;
-import de.staropensource.sosengine.base.classes.SubsystemClass;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
-import de.staropensource.sosengine.base.types.DependencyVector;
+import de.staropensource.sosengine.base.implementable.SubsystemClass;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
+import de.staropensource.sosengine.base.type.DependencyVector;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/internal/types/QueuedLogMessage.java b/base/src/main/java/de/staropensource/sosengine/base/internal/types/QueuedLogMessage.java
index 1c36cb3d..86a453a1 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/internal/types/QueuedLogMessage.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/internal/types/QueuedLogMessage.java
@@ -20,7 +20,7 @@
package de.staropensource.sosengine.base.internal.types;
import de.staropensource.sosengine.base.logging.Logger;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/logging/CrashHandler.java b/base/src/main/java/de/staropensource/sosengine/base/logging/CrashHandler.java
index 8f43671a..54a5cd91 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/logging/CrashHandler.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/logging/CrashHandler.java
@@ -21,12 +21,12 @@ package de.staropensource.sosengine.base.logging;
import de.staropensource.sosengine.base.Engine;
import de.staropensource.sosengine.base.EngineConfiguration;
-import de.staropensource.sosengine.base.classes.Placeholder;
-import de.staropensource.sosengine.base.events.EngineCrashEvent;
-import de.staropensource.sosengine.base.events.EngineSoftCrashEvent;
+import de.staropensource.sosengine.base.implementable.Placeholder;
+import de.staropensource.sosengine.base.event.EngineCrashEvent;
+import de.staropensource.sosengine.base.event.EngineSoftCrashEvent;
import de.staropensource.sosengine.base.internal.placeholders.crashhandler.*;
-import de.staropensource.sosengine.base.types.EngineState;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.EngineState;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import de.staropensource.sosengine.base.utility.PlaceholderEngine;
import lombok.Getter;
import lombok.Setter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/logging/InitLogger.java b/base/src/main/java/de/staropensource/sosengine/base/logging/InitLogger.java
index 7468cb8f..64cafba5 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/logging/InitLogger.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/logging/InitLogger.java
@@ -21,7 +21,7 @@ package de.staropensource.sosengine.base.logging;
import de.staropensource.sosengine.base.EngineConfiguration;
import de.staropensource.sosengine.base.internal.placeholders.logger.LogPath;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/logging/Logger.java b/base/src/main/java/de/staropensource/sosengine/base/logging/Logger.java
index 4dac9148..bdc290b6 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/logging/Logger.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/logging/Logger.java
@@ -21,16 +21,16 @@ package de.staropensource.sosengine.base.logging;
import de.staropensource.sosengine.base.Engine;
import de.staropensource.sosengine.base.EngineConfiguration;
-import de.staropensource.sosengine.base.classes.LoggerImplementation;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
-import de.staropensource.sosengine.base.events.LogEvent;
+import de.staropensource.sosengine.base.implementable.LoggerImplementation;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
+import de.staropensource.sosengine.base.event.LogEvent;
import de.staropensource.sosengine.base.internal.placeholders.logger.*;
import de.staropensource.sosengine.base.internal.types.QueuedLogMessage;
import de.staropensource.sosengine.base.logging.implementation.PlainLoggerImplementation;
-import de.staropensource.sosengine.base.types.EngineState;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
-import de.staropensource.sosengine.base.types.logging.LogRule;
-import de.staropensource.sosengine.base.types.logging.LogRuleType;
+import de.staropensource.sosengine.base.type.EngineState;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogRule;
+import de.staropensource.sosengine.base.type.logging.LogRuleType;
import de.staropensource.sosengine.base.utility.PlaceholderEngine;
import de.staropensource.sosengine.base.utility.converter.EmptyShortcodeConverter;
import lombok.Getter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/logging/LoggerInstance.java b/base/src/main/java/de/staropensource/sosengine/base/logging/LoggerInstance.java
index cb8b7038..eab3fdc0 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/logging/LoggerInstance.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/logging/LoggerInstance.java
@@ -20,7 +20,7 @@
package de.staropensource.sosengine.base.logging;
import de.staropensource.sosengine.base.Engine;
-import de.staropensource.sosengine.base.types.EngineState;
+import de.staropensource.sosengine.base.type.EngineState;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/logging/PrintStreamService.java b/base/src/main/java/de/staropensource/sosengine/base/logging/PrintStreamService.java
index 5d291ea3..0f26e679 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/logging/PrintStreamService.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/logging/PrintStreamService.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.logging;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/PlainLoggerImplementation.java b/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/PlainLoggerImplementation.java
index 3c94ecc3..c01e24ee 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/PlainLoggerImplementation.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/PlainLoggerImplementation.java
@@ -20,9 +20,9 @@
package de.staropensource.sosengine.base.logging.implementation;
import de.staropensource.sosengine.base.EngineConfiguration;
-import de.staropensource.sosengine.base.classes.LoggerImplementation;
+import de.staropensource.sosengine.base.implementable.LoggerImplementation;
import de.staropensource.sosengine.base.logging.Logger;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import de.staropensource.sosengine.base.utility.converter.EmptyShortcodeConverter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/QuietLoggerImplementation.java b/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/QuietLoggerImplementation.java
index dba90bcf..2f8aab95 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/QuietLoggerImplementation.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/QuietLoggerImplementation.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.logging.implementation;
-import de.staropensource.sosengine.base.classes.LoggerImplementation;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.implementable.LoggerImplementation;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/RawLoggerImplementation.java b/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/RawLoggerImplementation.java
index 86c7a980..4431939a 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/RawLoggerImplementation.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/RawLoggerImplementation.java
@@ -20,9 +20,9 @@
package de.staropensource.sosengine.base.logging.implementation;
import de.staropensource.sosengine.base.EngineConfiguration;
-import de.staropensource.sosengine.base.classes.LoggerImplementation;
+import de.staropensource.sosengine.base.implementable.LoggerImplementation;
import de.staropensource.sosengine.base.logging.Logger;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/package-info.java
index c3ac9c6e..1df97495 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/logging/implementation/package-info.java
@@ -18,7 +18,7 @@
*/
/**
- * A set of built-in {@link de.staropensource.sosengine.base.classes.LoggerImplementation}s.
+ * A set of built-in {@link de.staropensource.sosengine.base.implementable.LoggerImplementation}s.
*
* @since v1-alpha1
*/
diff --git a/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionClass.java b/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionClass.java
index 316abad9..83e63852 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionClass.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionClass.java
@@ -19,12 +19,12 @@
package de.staropensource.sosengine.base.reflection;
-import de.staropensource.sosengine.base.exceptions.UnexpectedCheckEndException;
-import de.staropensource.sosengine.base.exceptions.reflection.IncompatibleTypeException;
-import de.staropensource.sosengine.base.exceptions.reflection.InvalidFieldException;
-import de.staropensource.sosengine.base.exceptions.reflection.InvalidMethodException;
-import de.staropensource.sosengine.base.types.reflection.ClassType;
-import de.staropensource.sosengine.base.types.reflection.VisibilityModifier;
+import de.staropensource.sosengine.base.exception.UnexpectedCheckEndException;
+import de.staropensource.sosengine.base.exception.reflection.IncompatibleTypeException;
+import de.staropensource.sosengine.base.exception.reflection.InvalidFieldException;
+import de.staropensource.sosengine.base.exception.reflection.InvalidMethodException;
+import de.staropensource.sosengine.base.type.reflection.ClassType;
+import de.staropensource.sosengine.base.type.reflection.VisibilityModifier;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.Annotation;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionField.java b/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionField.java
index 6589311f..a028fed5 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionField.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionField.java
@@ -19,11 +19,11 @@
package de.staropensource.sosengine.base.reflection;
-import de.staropensource.sosengine.base.exceptions.UnexpectedCheckEndException;
-import de.staropensource.sosengine.base.exceptions.UnexpectedThrowableException;
-import de.staropensource.sosengine.base.exceptions.reflection.NoAccessException;
+import de.staropensource.sosengine.base.exception.UnexpectedCheckEndException;
+import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
+import de.staropensource.sosengine.base.exception.reflection.NoAccessException;
import de.staropensource.sosengine.base.internal.reflection.ReflectionAccessWidener;
-import de.staropensource.sosengine.base.types.reflection.VisibilityModifier;
+import de.staropensource.sosengine.base.type.reflection.VisibilityModifier;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionMethod.java b/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionMethod.java
index 17c2060c..faba44e6 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionMethod.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/reflection/ReflectionMethod.java
@@ -19,14 +19,14 @@
package de.staropensource.sosengine.base.reflection;
-import de.staropensource.sosengine.base.exceptions.UnexpectedCheckEndException;
-import de.staropensource.sosengine.base.exceptions.UnexpectedThrowableException;
-import de.staropensource.sosengine.base.exceptions.reflection.InstanceMethodFromStaticContextException;
-import de.staropensource.sosengine.base.exceptions.reflection.InvalidMethodSignature;
-import de.staropensource.sosengine.base.exceptions.reflection.NoAccessException;
-import de.staropensource.sosengine.base.exceptions.reflection.StaticInitializerException;
+import de.staropensource.sosengine.base.exception.UnexpectedCheckEndException;
+import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
+import de.staropensource.sosengine.base.exception.reflection.InstanceMethodFromStaticContextException;
+import de.staropensource.sosengine.base.exception.reflection.InvalidMethodSignature;
+import de.staropensource.sosengine.base.exception.reflection.NoAccessException;
+import de.staropensource.sosengine.base.exception.reflection.StaticInitializerException;
import de.staropensource.sosengine.base.internal.reflection.ReflectionAccessWidener;
-import de.staropensource.sosengine.base.types.reflection.VisibilityModifier;
+import de.staropensource.sosengine.base.type.reflection.VisibilityModifier;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/DependencyVector.java b/base/src/main/java/de/staropensource/sosengine/base/type/DependencyVector.java
similarity index 98%
rename from base/src/main/java/de/staropensource/sosengine/base/types/DependencyVector.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/DependencyVector.java
index fd08da2d..d5412612 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/DependencyVector.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/DependencyVector.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types;
+package de.staropensource.sosengine.base.type;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.utility.DependencyResolver;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/EngineState.java b/base/src/main/java/de/staropensource/sosengine/base/type/EngineState.java
similarity index 97%
rename from base/src/main/java/de/staropensource/sosengine/base/types/EngineState.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/EngineState.java
index d4ce0e82..0530b62c 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/EngineState.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/EngineState.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types;
+package de.staropensource.sosengine.base.type;
import de.staropensource.sosengine.base.logging.InitLogger;
import de.staropensource.sosengine.base.logging.Logger;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/EventPriority.java b/base/src/main/java/de/staropensource/sosengine/base/type/EventPriority.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/types/EventPriority.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/EventPriority.java
index b1521a50..598b1ee2 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/EventPriority.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/EventPriority.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types;
+package de.staropensource.sosengine.base.type;
-import de.staropensource.sosengine.base.annotations.EventListener;
+import de.staropensource.sosengine.base.annotation.EventListener;
/**
* Allows an {@link EventListener} method to specify when it should be invoked.
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/InternalAccessArea.java b/base/src/main/java/de/staropensource/sosengine/base/type/InternalAccessArea.java
similarity index 95%
rename from base/src/main/java/de/staropensource/sosengine/base/types/InternalAccessArea.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/InternalAccessArea.java
index 08e0c134..87ce224a 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/InternalAccessArea.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/InternalAccessArea.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types;
+package de.staropensource.sosengine.base.type;
import de.staropensource.sosengine.base.EngineInternals;
-import de.staropensource.sosengine.base.classes.ShutdownHandler;
+import de.staropensource.sosengine.base.implementable.ShutdownHandler;
/**
* Specifies multiple areas of internal engine access.
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/Tristate.java b/base/src/main/java/de/staropensource/sosengine/base/type/Tristate.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/types/Tristate.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/Tristate.java
index e3915858..916a676c 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/Tristate.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/Tristate.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types;
+package de.staropensource.sosengine.base.type;
-import de.staropensource.sosengine.base.exceptions.TristateConversionException;
+import de.staropensource.sosengine.base.exception.TristateConversionException;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/VersionType.java b/base/src/main/java/de/staropensource/sosengine/base/type/VersionType.java
similarity index 92%
rename from base/src/main/java/de/staropensource/sosengine/base/types/VersionType.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/VersionType.java
index 378de432..5e832f03 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/VersionType.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/VersionType.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types;
+package de.staropensource.sosengine.base.type;
-import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
+import de.staropensource.sosengine.base.dataprovider.versioning.StarOpenSourceVersioningSystem;
/**
* Provides all available version types specified in the StarOpenSource Versioning System v2.
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableArrayList.java b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableArrayList.java
similarity index 99%
rename from base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableArrayList.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableArrayList.java
index a6db6a4c..a75fdf4b 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableArrayList.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableArrayList.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.immutable;
+package de.staropensource.sosengine.base.type.immutable;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableHashMap.java b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableHashMap.java
similarity index 98%
rename from base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableHashMap.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableHashMap.java
index b159aaef..e91140ab 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableHashMap.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableHashMap.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.immutable;
+package de.staropensource.sosengine.base.type.immutable;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableHashSet.java b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableHashSet.java
similarity index 98%
rename from base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableHashSet.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableHashSet.java
index 535d4401..3dc9b33c 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableHashSet.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableHashSet.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.immutable;
+package de.staropensource.sosengine.base.type.immutable;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableLinkedHashMap.java b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableLinkedHashMap.java
similarity index 98%
rename from base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableLinkedHashMap.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableLinkedHashMap.java
index e1189b3a..c059ecf0 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableLinkedHashMap.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableLinkedHashMap.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.immutable;
+package de.staropensource.sosengine.base.type.immutable;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableLinkedList.java b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableLinkedList.java
similarity index 99%
rename from base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableLinkedList.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableLinkedList.java
index ebb7a5a6..cc3f7191 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/ImmutableLinkedList.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/ImmutableLinkedList.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.immutable;
+package de.staropensource.sosengine.base.type.immutable;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/package-info.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/types/immutable/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/immutable/package-info.java
index 90d781c6..af782dec 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/immutable/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/immutable/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha1
*/
-package de.staropensource.sosengine.base.types.immutable;
+package de.staropensource.sosengine.base.type.immutable;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/logging/LogLevel.java b/base/src/main/java/de/staropensource/sosengine/base/type/logging/LogLevel.java
similarity index 97%
rename from base/src/main/java/de/staropensource/sosengine/base/types/logging/LogLevel.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/logging/LogLevel.java
index 5cdac4af..8053a5d6 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/logging/LogLevel.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/logging/LogLevel.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.logging;
+package de.staropensource.sosengine.base.type.logging;
import de.staropensource.sosengine.base.logging.Logger;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/logging/LogRule.java b/base/src/main/java/de/staropensource/sosengine/base/type/logging/LogRule.java
similarity index 97%
rename from base/src/main/java/de/staropensource/sosengine/base/types/logging/LogRule.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/logging/LogRule.java
index 9ba4430d..d93af8ad 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/logging/LogRule.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/logging/LogRule.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.logging;
+package de.staropensource.sosengine.base.type.logging;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/logging/LogRuleType.java b/base/src/main/java/de/staropensource/sosengine/base/type/logging/LogRuleType.java
similarity index 96%
rename from base/src/main/java/de/staropensource/sosengine/base/types/logging/LogRuleType.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/logging/LogRuleType.java
index 941ee36d..53654fd6 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/logging/LogRuleType.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/logging/LogRuleType.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.logging;
+package de.staropensource.sosengine.base.type.logging;
/**
* Used for determining if a {@link LogRule} should allow (whitelist) or prevent (blacklist) log call processing.
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/logging/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/type/logging/package-info.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/types/logging/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/logging/package-info.java
index 4ccec302..51c0da97 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/logging/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/logging/package-info.java
@@ -23,4 +23,4 @@
* @see de.staropensource.sosengine.base.logging
* @since v1-alpha1
*/
-package de.staropensource.sosengine.base.types.logging;
+package de.staropensource.sosengine.base.type.logging;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/type/package-info.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/types/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/package-info.java
index e91b371f..ed94d033 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha0
*/
-package de.staropensource.sosengine.base.types;
+package de.staropensource.sosengine.base.type;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/reflection/ClassType.java b/base/src/main/java/de/staropensource/sosengine/base/type/reflection/ClassType.java
similarity index 96%
rename from base/src/main/java/de/staropensource/sosengine/base/types/reflection/ClassType.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/reflection/ClassType.java
index 96d03a77..c66d0db0 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/reflection/ClassType.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/reflection/ClassType.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.reflection;
+package de.staropensource.sosengine.base.type.reflection;
/**
* Identifies a class' type.
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/reflection/VisibilityModifier.java b/base/src/main/java/de/staropensource/sosengine/base/type/reflection/VisibilityModifier.java
similarity index 93%
rename from base/src/main/java/de/staropensource/sosengine/base/types/reflection/VisibilityModifier.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/reflection/VisibilityModifier.java
index f2eedcc8..e5bea5b3 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/reflection/VisibilityModifier.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/reflection/VisibilityModifier.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.reflection;
+package de.staropensource.sosengine.base.type.reflection;
-import de.staropensource.sosengine.base.exceptions.UnexpectedCheckEndException;
+import de.staropensource.sosengine.base.exception.UnexpectedCheckEndException;
import java.lang.reflect.Modifier;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/reflection/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/type/reflection/package-info.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/types/reflection/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/reflection/package-info.java
index 29371ead..681d1e91 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/reflection/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/reflection/package-info.java
@@ -23,4 +23,4 @@
* @see de.staropensource.sosengine.base.reflection
* @since v1-alpha2
*/
-package de.staropensource.sosengine.base.types.reflection;
+package de.staropensource.sosengine.base.type.reflection;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec2d.java b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec2d.java
similarity index 97%
rename from base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec2d.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec2d.java
index a9842e0f..dfc0e7e1 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec2d.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec2d.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.vectors;
+package de.staropensource.sosengine.base.type.vectors;
import de.staropensource.sosengine.base.EngineConfiguration;
import lombok.Getter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec2f.java b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec2f.java
similarity index 97%
rename from base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec2f.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec2f.java
index 76014443..66865fcc 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec2f.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec2f.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.vectors;
+package de.staropensource.sosengine.base.type.vectors;
import de.staropensource.sosengine.base.EngineConfiguration;
import lombok.Getter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec2i.java b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec2i.java
similarity index 97%
rename from base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec2i.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec2i.java
index 4db14ada..89c9599f 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec2i.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec2i.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.vectors;
+package de.staropensource.sosengine.base.type.vectors;
import de.staropensource.sosengine.base.EngineConfiguration;
import lombok.Getter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec3d.java b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec3d.java
similarity index 98%
rename from base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec3d.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec3d.java
index 6234e525..d055711f 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec3d.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec3d.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.vectors;
+package de.staropensource.sosengine.base.type.vectors;
import de.staropensource.sosengine.base.EngineConfiguration;
import lombok.Getter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec3f.java b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec3f.java
similarity index 98%
rename from base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec3f.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec3f.java
index 2bc3ee18..5c138220 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec3f.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec3f.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.vectors;
+package de.staropensource.sosengine.base.type.vectors;
import de.staropensource.sosengine.base.EngineConfiguration;
import lombok.Getter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec3i.java b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec3i.java
similarity index 98%
rename from base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec3i.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec3i.java
index d1e8dbf7..73f4c56b 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/Vec3i.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/Vec3i.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.base.types.vectors;
+package de.staropensource.sosengine.base.type.vectors;
import de.staropensource.sosengine.base.EngineConfiguration;
import lombok.Getter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/package-info.java b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/package-info.java
similarity index 94%
rename from base/src/main/java/de/staropensource/sosengine/base/types/vectors/package-info.java
rename to base/src/main/java/de/staropensource/sosengine/base/type/vectors/package-info.java
index f85be3c1..f01b6ef9 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/types/vectors/package-info.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/type/vectors/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha1
*/
-package de.staropensource.sosengine.base.types.vectors;
+package de.staropensource.sosengine.base.type.vectors;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/utility/DependencyResolver.java b/base/src/main/java/de/staropensource/sosengine/base/utility/DependencyResolver.java
index 8bf709da..16958691 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/utility/DependencyResolver.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/utility/DependencyResolver.java
@@ -19,11 +19,11 @@
package de.staropensource.sosengine.base.utility;
-import de.staropensource.sosengine.base.classes.VersioningSystem;
-import de.staropensource.sosengine.base.exceptions.UnexpectedThrowableException;
-import de.staropensource.sosengine.base.exceptions.dependency.UnmetDependenciesException;
+import de.staropensource.sosengine.base.implementable.VersioningSystem;
+import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
+import de.staropensource.sosengine.base.exception.dependency.UnmetDependenciesException;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.DependencyVector;
+import de.staropensource.sosengine.base.type.DependencyVector;
import lombok.Getter;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/utility/Miscellaneous.java b/base/src/main/java/de/staropensource/sosengine/base/utility/Miscellaneous.java
index 5d393821..d445db02 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/utility/Miscellaneous.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/utility/Miscellaneous.java
@@ -19,9 +19,9 @@
package de.staropensource.sosengine.base.utility;
-import de.staropensource.sosengine.base.events.ThrowableCatchEvent;
-import de.staropensource.sosengine.base.exceptions.TristateConversionException;
-import de.staropensource.sosengine.base.types.Tristate;
+import de.staropensource.sosengine.base.event.ThrowableCatchEvent;
+import de.staropensource.sosengine.base.exception.TristateConversionException;
+import de.staropensource.sosengine.base.type.Tristate;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Range;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/utility/PlaceholderEngine.java b/base/src/main/java/de/staropensource/sosengine/base/utility/PlaceholderEngine.java
index 8a8ef6f2..70ff8f18 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/utility/PlaceholderEngine.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/utility/PlaceholderEngine.java
@@ -20,7 +20,7 @@
package de.staropensource.sosengine.base.utility;
import de.staropensource.sosengine.base.Engine;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.internal.placeholders.*;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import lombok.Getter;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/utility/PropertiesReader.java b/base/src/main/java/de/staropensource/sosengine/base/utility/PropertiesReader.java
index a00841c8..bec07e21 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/utility/PropertiesReader.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/utility/PropertiesReader.java
@@ -20,7 +20,7 @@
package de.staropensource.sosengine.base.utility;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.Tristate;
+import de.staropensource.sosengine.base.type.Tristate;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/base/src/main/java/de/staropensource/sosengine/base/utility/converter/EmptyShortcodeConverter.java b/base/src/main/java/de/staropensource/sosengine/base/utility/converter/EmptyShortcodeConverter.java
index 17ba03d5..9344b101 100644
--- a/base/src/main/java/de/staropensource/sosengine/base/utility/converter/EmptyShortcodeConverter.java
+++ b/base/src/main/java/de/staropensource/sosengine/base/utility/converter/EmptyShortcodeConverter.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.utility.converter;
-import de.staropensource.sosengine.base.classes.ShortcodeParserSkeleton;
-import de.staropensource.sosengine.base.exceptions.ParserException;
+import de.staropensource.sosengine.base.implementable.ShortcodeParserSkeleton;
+import de.staropensource.sosengine.base.exception.ParserException;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/base/src/main/java/de/staropensource/sosengine/unittests/UnitConfig.java b/base/src/main/java/de/staropensource/sosengine/unittests/UnitConfig.java
index 495a5536..36072d86 100644
--- a/base/src/main/java/de/staropensource/sosengine/unittests/UnitConfig.java
+++ b/base/src/main/java/de/staropensource/sosengine/unittests/UnitConfig.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.unittests;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
/**
* Static configuration for unit test classes.
diff --git a/base/src/main/java/de/staropensource/sosengine/unittests/UnitLogger.java b/base/src/main/java/de/staropensource/sosengine/unittests/UnitLogger.java
index cf987264..1edec2ca 100644
--- a/base/src/main/java/de/staropensource/sosengine/unittests/UnitLogger.java
+++ b/base/src/main/java/de/staropensource/sosengine/unittests/UnitLogger.java
@@ -20,7 +20,7 @@
package de.staropensource.sosengine.unittests;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/base/src/main/java/module-info.java b/base/src/main/java/module-info.java
index ec7e2b32..a9d83173 100644
--- a/base/src/main/java/module-info.java
+++ b/base/src/main/java/module-info.java
@@ -12,25 +12,25 @@ module sosengine.base {
// API access
exports de.staropensource.sosengine.base;
- exports de.staropensource.sosengine.base.annotations;
- exports de.staropensource.sosengine.base.classes;
- exports de.staropensource.sosengine.base.classes.helpers;
- exports de.staropensource.sosengine.base.data.information;
- exports de.staropensource.sosengine.base.data.versioning;
- exports de.staropensource.sosengine.base.events;
- exports de.staropensource.sosengine.base.exceptions;
- exports de.staropensource.sosengine.base.exceptions.dependency;
- exports de.staropensource.sosengine.base.exceptions.reflection;
- exports de.staropensource.sosengine.base.exceptions.versioning;
+ exports de.staropensource.sosengine.base.annotation;
+ exports de.staropensource.sosengine.base.implementable;
+ exports de.staropensource.sosengine.base.implementable.helpers;
+ exports de.staropensource.sosengine.base.dataprovider.information;
+ exports de.staropensource.sosengine.base.dataprovider.versioning;
+ exports de.staropensource.sosengine.base.event;
+ exports de.staropensource.sosengine.base.exception;
+ exports de.staropensource.sosengine.base.exception.dependency;
+ exports de.staropensource.sosengine.base.exception.reflection;
+ exports de.staropensource.sosengine.base.exception.versioning;
exports de.staropensource.sosengine.base.internal.events; // Internal: Required for subsystems
exports de.staropensource.sosengine.base.logging;
exports de.staropensource.sosengine.base.logging.implementation;
exports de.staropensource.sosengine.base.reflection;
- exports de.staropensource.sosengine.base.types;
- exports de.staropensource.sosengine.base.types.immutable;
- exports de.staropensource.sosengine.base.types.logging;
- exports de.staropensource.sosengine.base.types.reflection;
- exports de.staropensource.sosengine.base.types.vectors;
+ exports de.staropensource.sosengine.base.type;
+ exports de.staropensource.sosengine.base.type.immutable;
+ exports de.staropensource.sosengine.base.type.logging;
+ exports de.staropensource.sosengine.base.type.reflection;
+ exports de.staropensource.sosengine.base.type.vectors;
exports de.staropensource.sosengine.base.utility;
exports de.staropensource.sosengine.base.utility.converter;
exports de.staropensource.sosengine.base.utility.parser;
@@ -38,25 +38,25 @@ module sosengine.base {
// Reflection access
opens de.staropensource.sosengine.base;
- opens de.staropensource.sosengine.base.annotations;
- opens de.staropensource.sosengine.base.classes;
- opens de.staropensource.sosengine.base.classes.helpers;
- opens de.staropensource.sosengine.base.data.information;
- opens de.staropensource.sosengine.base.data.versioning;
- opens de.staropensource.sosengine.base.events;
- opens de.staropensource.sosengine.base.exceptions;
- opens de.staropensource.sosengine.base.exceptions.dependency;
- opens de.staropensource.sosengine.base.exceptions.reflection;
- opens de.staropensource.sosengine.base.exceptions.versioning;
+ opens de.staropensource.sosengine.base.annotation;
+ opens de.staropensource.sosengine.base.implementable;
+ opens de.staropensource.sosengine.base.implementable.helpers;
+ opens de.staropensource.sosengine.base.dataprovider.information;
+ opens de.staropensource.sosengine.base.dataprovider.versioning;
+ opens de.staropensource.sosengine.base.event;
+ opens de.staropensource.sosengine.base.exception;
+ opens de.staropensource.sosengine.base.exception.dependency;
+ opens de.staropensource.sosengine.base.exception.reflection;
+ opens de.staropensource.sosengine.base.exception.versioning;
opens de.staropensource.sosengine.base.internal.events; // Internal: Required for subsystems
opens de.staropensource.sosengine.base.logging;
opens de.staropensource.sosengine.base.logging.implementation;
opens de.staropensource.sosengine.base.reflection;
- opens de.staropensource.sosengine.base.types;
- opens de.staropensource.sosengine.base.types.immutable;
- opens de.staropensource.sosengine.base.types.logging;
- opens de.staropensource.sosengine.base.types.reflection;
- opens de.staropensource.sosengine.base.types.vectors;
+ opens de.staropensource.sosengine.base.type;
+ opens de.staropensource.sosengine.base.type.immutable;
+ opens de.staropensource.sosengine.base.type.logging;
+ opens de.staropensource.sosengine.base.type.reflection;
+ opens de.staropensource.sosengine.base.type.vectors;
opens de.staropensource.sosengine.base.utility;
opens de.staropensource.sosengine.base.utility.converter;
opens de.staropensource.sosengine.base.utility.parser;
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/EngineConfigurationTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/EngineConfigurationTest.java
index 03a5870a..8f1b9789 100644
--- a/base/src/test/java/de/staropensource/sosengine/base/srctests/EngineConfigurationTest.java
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/EngineConfigurationTest.java
@@ -20,7 +20,7 @@
package de.staropensource.sosengine.base.srctests;
import de.staropensource.sosengine.base.EngineConfiguration;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/FourNumberVersioningSystemTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/FourNumberVersioningSystemTest.java
index a1f3ed4d..2a0f513f 100644
--- a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/FourNumberVersioningSystemTest.java
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/FourNumberVersioningSystemTest.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.srctests.data.versioning;
-import de.staropensource.sosengine.base.data.versioning.FourNumberVersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.dataprovider.versioning.FourNumberVersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.srctests.TestBase;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/OneNumberVersioningSystemTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/OneNumberVersioningSystemTest.java
index 326df4ec..4ad83ecc 100644
--- a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/OneNumberVersioningSystemTest.java
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/OneNumberVersioningSystemTest.java
@@ -19,9 +19,9 @@
package de.staropensource.sosengine.base.srctests.data.versioning;
-import de.staropensource.sosengine.base.data.versioning.OneNumberVersioningSystem;
-import de.staropensource.sosengine.base.data.versioning.TwoNumberVersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.dataprovider.versioning.OneNumberVersioningSystem;
+import de.staropensource.sosengine.base.dataprovider.versioning.TwoNumberVersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.srctests.TestBase;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/SemanticVersioningSystemTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/SemanticVersioningSystemTest.java
index 34fe11a1..ee181a64 100644
--- a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/SemanticVersioningSystemTest.java
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/SemanticVersioningSystemTest.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.srctests.data.versioning;
-import de.staropensource.sosengine.base.data.versioning.SemanticVersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.dataprovider.versioning.SemanticVersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.srctests.TestBase;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/StarOpenSourceVersioningSystemTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/StarOpenSourceVersioningSystemTest.java
index 8131d28d..56f63af5 100644
--- a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/StarOpenSourceVersioningSystemTest.java
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/StarOpenSourceVersioningSystemTest.java
@@ -19,9 +19,9 @@
package de.staropensource.sosengine.base.srctests.data.versioning;
-import de.staropensource.sosengine.base.data.versioning.SemanticVersioningSystem;
-import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.dataprovider.versioning.SemanticVersioningSystem;
+import de.staropensource.sosengine.base.dataprovider.versioning.StarOpenSourceVersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.srctests.TestBase;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/ThreeNumberVersioningSystemTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/ThreeNumberVersioningSystemTest.java
index 9fc1264b..a2e3f30c 100644
--- a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/ThreeNumberVersioningSystemTest.java
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/ThreeNumberVersioningSystemTest.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.srctests.data.versioning;
-import de.staropensource.sosengine.base.data.versioning.ThreeNumberVersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.dataprovider.versioning.ThreeNumberVersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.srctests.TestBase;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/TwoNumberVersioningSystemTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/TwoNumberVersioningSystemTest.java
index 3eee119d..ee4ad5bc 100644
--- a/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/TwoNumberVersioningSystemTest.java
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/data/versioning/TwoNumberVersioningSystemTest.java
@@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.srctests.data.versioning;
-import de.staropensource.sosengine.base.data.versioning.TwoNumberVersioningSystem;
-import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
+import de.staropensource.sosengine.base.dataprovider.versioning.TwoNumberVersioningSystem;
+import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.srctests.TestBase;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/DependencyResolverTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/DependencyResolverTest.java
new file mode 100644
index 00000000..b5fb62b0
--- /dev/null
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/DependencyResolverTest.java
@@ -0,0 +1,281 @@
+/*
+ * STAROPENSOURCE ENGINE SOURCE FILE
+ * Copyright (c) 2024 The StarOpenSource Engine Authors
+ * Licensed under the GNU Affero General Public License v3
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package de.staropensource.sosengine.base.srctests.utility;
+
+import de.staropensource.sosengine.base.dataprovider.versioning.OneNumberVersioningSystem;
+import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
+import de.staropensource.sosengine.base.exception.dependency.UnmetDependenciesException;
+import de.staropensource.sosengine.base.srctests.TestBase;
+import de.staropensource.sosengine.base.type.DependencyVector;
+import de.staropensource.sosengine.base.utility.DependencyResolver;
+import org.jetbrains.annotations.NotNull;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Tests the class {@link DependencyResolver}.
+ */
+@DisplayName("DependencyResolver")
+class DependencyResolverTest extends TestBase {
+ @ParameterizedTest
+ @DisplayName("resolve")
+ @ValueSource(ints = {
+ 0, 1, 2, 3, 4, 5
+ })
+ void testResolve(int layers) throws UnmetDependenciesException, UnexpectedThrowableException {
+ if (checkCondition()) return;
+
+ getLogger().testCall("testResolve", layers);
+ DependencyResolver resolver = new DependencyResolver();
+ Set<@NotNull DependencyVector> vectors = new HashSet<>();
+ Set<@NotNull String> dependencies = new HashSet<>();
+
+ switch (layers) {
+ case 0 -> {
+ // Vector 0
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test0")
+ .setVersion("1")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .build()
+ );
+ // Vector 1
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test1")
+ .setVersion("55")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .build()
+ );
+ }
+ case 1 -> {
+ // Vector 0
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test0")
+ .setVersion("49")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .build()
+ );
+ // Vector 1
+ dependencies.add("test0");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test1")
+ .setVersion("999")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+
+ // Vector 2
+ dependencies = new HashSet<>();
+ dependencies.add("test0=49");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test2")
+ .setVersion("666")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ // Vector 3
+ dependencies.add("test0>30<50");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test3")
+ .setVersion("6978")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ }
+ case 2 -> {
+ // Vector 0
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test0")
+ .setVersion("49")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .build()
+ );
+ // Vector 1
+ dependencies.add("test0");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test1")
+ .setVersion("999")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ // Vector 2
+ dependencies = new HashSet<>();
+ dependencies.add("test1");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test2")
+ .setVersion("666")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+
+ // Vector 3
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test3")
+ .setVersion("49")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .build()
+ );
+ // Vector 4
+ dependencies = new HashSet<>();
+ dependencies.add("test3=49");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test4")
+ .setVersion("999")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ // Vector 5
+ dependencies.add("test4>998<100");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test5")
+ .setVersion("6978")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ }
+ case 3 -> {
+ // Vector 0
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test0")
+ .setVersion("49")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .build()
+ );
+ // Vector 1
+ dependencies.add("test0");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test1")
+ .setVersion("999")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ // Vector 2
+ dependencies = new HashSet<>();
+ dependencies.add("test1");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test2")
+ .setVersion("666")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ // Vector 3
+ dependencies = new HashSet<>();
+ dependencies.add("test2<700");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test3")
+ .setVersion("666")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+
+ // Vector 4
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test4")
+ .setVersion("49")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .build()
+ );
+ // Vector 5
+ dependencies = new HashSet<>();
+ dependencies.add("test4=49");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test5")
+ .setVersion("999")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ // Vector 6
+ dependencies.add("test5>998<100");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test6")
+ .setVersion("6978")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ // Vector 7
+ dependencies.add("test6>7900");
+ vectors.add(
+ new DependencyVector.Builder()
+ .setIdentifier("test7")
+ .setVersion("110")
+ .setVersioningSystem(OneNumberVersioningSystem.class)
+ .setDependencies(dependencies)
+ .build()
+ );
+ }
+ default -> {
+ getLogger().error("layers=" + layers + " is unimplemented");
+ throw new IllegalStateException("layers=" + layers + " is unimplemented");
+ }
+ }
+
+ resolver.addVectors(vectors);
+ try {
+ resolver.resolve();
+ } catch (Throwable throwable) {
+ if (throwable instanceof UnmetDependenciesException exception) {
+ getLogger().error("Dependency resolution failed: Unmet dependencies found:");
+ for (DependencyVector vector : exception.getUnmetDependencies().keySet())
+ getLogger().error("-> " + vector.getIdentifier() + "=" + vector.getVersion() + ": " + exception.getUnmetDependencies().get(vector));
+ } else if (throwable instanceof UnexpectedThrowableException exception) {
+ getLogger().error("Dependency resolution failed: An unexpected throwable was thrown: " + exception.getThrowable().getClass().getName() + ": " + exception.getThrowable().getMessage());
+ exception.getThrowable().printStackTrace();
+ } else
+ getLogger().error("Dependency resolution failed: " + throwable.getMessage());
+
+ throw throwable;
+ }
+ }
+}
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/MiscellaneousTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/MiscellaneousTest.java
index ca48bd60..95009c6b 100644
--- a/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/MiscellaneousTest.java
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/MiscellaneousTest.java
@@ -20,8 +20,8 @@
package de.staropensource.sosengine.base.srctests.utility;
import de.staropensource.sosengine.base.EngineConfiguration;
-import de.staropensource.sosengine.base.annotations.EventListener;
-import de.staropensource.sosengine.base.events.ThrowableCatchEvent;
+import de.staropensource.sosengine.base.annotation.EventListener;
+import de.staropensource.sosengine.base.event.ThrowableCatchEvent;
import de.staropensource.sosengine.base.srctests.TestBase;
import de.staropensource.sosengine.base.utility.Math;
import de.staropensource.sosengine.base.utility.Miscellaneous;
diff --git a/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/PlaceholderEngineTest.java b/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/PlaceholderEngineTest.java
index 2c0f4006..571343aa 100644
--- a/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/PlaceholderEngineTest.java
+++ b/base/src/test/java/de/staropensource/sosengine/base/srctests/utility/PlaceholderEngineTest.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.srctests.utility;
-import de.staropensource.sosengine.base.classes.Placeholder;
+import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.srctests.TestBase;
import de.staropensource.sosengine.base.utility.PlaceholderEngine;
import org.jetbrains.annotations.NotNull;
diff --git a/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/CompatibilityLogger.java b/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/CompatibilityLogger.java
index 0f830c2a..ad617751 100644
--- a/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/CompatibilityLogger.java
+++ b/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/CompatibilityLogger.java
@@ -22,7 +22,7 @@ package de.staropensource.sosengine.slf4j_compat;
import de.staropensource.sosengine.base.Engine;
import de.staropensource.sosengine.base.EngineConfiguration;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Marker;
import org.slf4j.event.Level;
diff --git a/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/CompatibilityLoggerProvider.java b/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/CompatibilityLoggerProvider.java
index 7d63a7f8..b4b49874 100644
--- a/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/CompatibilityLoggerProvider.java
+++ b/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/CompatibilityLoggerProvider.java
@@ -19,7 +19,7 @@
package de.staropensource.sosengine.slf4j_compat;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.slf4j.ILoggerFactory;
diff --git a/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/Slf4jCompatSubsystem.java b/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/Slf4jCompatSubsystem.java
index 78c76a17..71022909 100644
--- a/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/Slf4jCompatSubsystem.java
+++ b/slf4j-compat/src/main/java/de/staropensource/sosengine/slf4j_compat/Slf4jCompatSubsystem.java
@@ -19,16 +19,16 @@
package de.staropensource.sosengine.slf4j_compat;
-import de.staropensource.sosengine.base.annotations.EngineSubsystem;
-import de.staropensource.sosengine.base.classes.SubsystemClass;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
-import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
-import de.staropensource.sosengine.base.events.LogEvent;
+import de.staropensource.sosengine.base.annotation.EngineSubsystem;
+import de.staropensource.sosengine.base.implementable.SubsystemClass;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
+import de.staropensource.sosengine.base.dataprovider.versioning.StarOpenSourceVersioningSystem;
+import de.staropensource.sosengine.base.event.LogEvent;
import de.staropensource.sosengine.base.logging.Logger;
-import de.staropensource.sosengine.base.types.DependencyVector;
-import de.staropensource.sosengine.base.types.logging.LogLevel;
-import de.staropensource.sosengine.base.types.logging.LogRule;
-import de.staropensource.sosengine.base.types.logging.LogRuleType;
+import de.staropensource.sosengine.base.type.DependencyVector;
+import de.staropensource.sosengine.base.type.logging.LogLevel;
+import de.staropensource.sosengine.base.type.logging.LogRule;
+import de.staropensource.sosengine.base.type.logging.LogRuleType;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/testapp/src/main/java/de/staropensource/sosengine/testapp/Main.java b/testapp/src/main/java/de/staropensource/sosengine/testapp/Main.java
index b691588c..a5d8503d 100644
--- a/testapp/src/main/java/de/staropensource/sosengine/testapp/Main.java
+++ b/testapp/src/main/java/de/staropensource/sosengine/testapp/Main.java
@@ -20,26 +20,21 @@
package de.staropensource.sosengine.testapp;
import de.staropensource.sosengine.base.Engine;
-import de.staropensource.sosengine.base.annotations.EventListener;
-import de.staropensource.sosengine.base.data.versioning.OneNumberVersioningSystem;
+import de.staropensource.sosengine.base.annotation.EventListener;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.DependencyVector;
-import de.staropensource.sosengine.base.types.vectors.Vec2i;
-import de.staropensource.sosengine.base.utility.DependencyResolver;
+import de.staropensource.sosengine.base.type.vectors.Vec2i;
import de.staropensource.sosengine.base.utility.parser.StackTraceParser;
import de.staropensource.sosengine.windowing.WindowingSubsystem;
-import de.staropensource.sosengine.windowing.classes.Window;
-import de.staropensource.sosengine.windowing.events.InputEvent;
-import de.staropensource.sosengine.windowing.types.input.Key;
-import de.staropensource.sosengine.windowing.types.input.KeyState;
+import de.staropensource.sosengine.windowing.event.InputEvent;
+import de.staropensource.sosengine.windowing.implementable.Window;
+import de.staropensource.sosengine.windowing.type.input.Key;
+import de.staropensource.sosengine.windowing.type.input.KeyState;
import lombok.Getter;
import lombok.SneakyThrows;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import java.util.HashSet;
import java.util.LinkedHashMap;
-import java.util.Set;
/**
* The main class of the sos!engine development application.
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/GlfwSubsystem.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/GlfwSubsystem.java
index b1691ab2..720ee01d 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/GlfwSubsystem.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/GlfwSubsystem.java
@@ -19,20 +19,20 @@
package de.staropensource.sosengine.windowing.glfw;
-import de.staropensource.sosengine.base.annotations.EngineSubsystem;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
-import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
+import de.staropensource.sosengine.base.annotation.EngineSubsystem;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
+import de.staropensource.sosengine.base.dataprovider.versioning.StarOpenSourceVersioningSystem;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.DependencyVector;
+import de.staropensource.sosengine.base.type.DependencyVector;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import de.staropensource.sosengine.windowing.WindowingSubsystem;
-import de.staropensource.sosengine.windowing.classes.api.ApiClass;
-import de.staropensource.sosengine.windowing.classes.api.ApiInternalClass;
-import de.staropensource.sosengine.windowing.classes.api.ApiManagementClass;
-import de.staropensource.sosengine.windowing.events.WindowingErrorEvent;
-import de.staropensource.sosengine.windowing.exceptions.NotOnMainThreadException;
-import de.staropensource.sosengine.windowing.glfw.classes.GlfwInternalClass;
-import de.staropensource.sosengine.windowing.glfw.classes.GlfwManagementClass;
+import de.staropensource.sosengine.windowing.implementable.api.ApiClass;
+import de.staropensource.sosengine.windowing.implementable.api.ApiInternalClass;
+import de.staropensource.sosengine.windowing.implementable.api.ApiManagementClass;
+import de.staropensource.sosengine.windowing.event.WindowingErrorEvent;
+import de.staropensource.sosengine.windowing.exception.NotOnMainThreadException;
+import de.staropensource.sosengine.windowing.glfw.implementable.GlfwInternalClass;
+import de.staropensource.sosengine.windowing.glfw.implementable.GlfwManagementClass;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFWErrorCallback;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/GlfwSubsystemConfiguration.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/GlfwSubsystemConfiguration.java
index 9b270db1..9dde5543 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/GlfwSubsystemConfiguration.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/GlfwSubsystemConfiguration.java
@@ -19,9 +19,9 @@
package de.staropensource.sosengine.windowing.glfw;
-import de.staropensource.sosengine.base.classes.Configuration;
+import de.staropensource.sosengine.base.implementable.Configuration;
import de.staropensource.sosengine.base.utility.PropertiesReader;
-import de.staropensource.sosengine.windowing.glfw.types.GlfwPlatform;
+import de.staropensource.sosengine.windowing.glfw.type.GlfwPlatform;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callbacks/KeyCallback.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callback/KeyCallback.java
similarity index 95%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callbacks/KeyCallback.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callback/KeyCallback.java
index d6bf4006..ec08186d 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callbacks/KeyCallback.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callback/KeyCallback.java
@@ -17,13 +17,13 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.glfw.callbacks;
+package de.staropensource.sosengine.windowing.glfw.callback;
-import de.staropensource.sosengine.windowing.classes.Window;
-import de.staropensource.sosengine.windowing.events.InputEvent;
-import de.staropensource.sosengine.windowing.glfw.classes.WindowCallback;
-import de.staropensource.sosengine.windowing.types.input.Key;
-import de.staropensource.sosengine.windowing.types.input.KeyState;
+import de.staropensource.sosengine.windowing.implementable.Window;
+import de.staropensource.sosengine.windowing.event.InputEvent;
+import de.staropensource.sosengine.windowing.glfw.implementable.WindowCallback;
+import de.staropensource.sosengine.windowing.type.input.Key;
+import de.staropensource.sosengine.windowing.type.input.KeyState;
import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFWKeyCallbackI;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callbacks/MouseButtonCallback.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callback/MouseButtonCallback.java
similarity index 87%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callbacks/MouseButtonCallback.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callback/MouseButtonCallback.java
index 4f3f5f89..5a5c975e 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callbacks/MouseButtonCallback.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callback/MouseButtonCallback.java
@@ -17,13 +17,13 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.glfw.callbacks;
+package de.staropensource.sosengine.windowing.glfw.callback;
-import de.staropensource.sosengine.windowing.classes.Window;
-import de.staropensource.sosengine.windowing.events.InputEvent;
-import de.staropensource.sosengine.windowing.glfw.classes.WindowCallback;
-import de.staropensource.sosengine.windowing.types.input.Key;
-import de.staropensource.sosengine.windowing.types.input.KeyState;
+import de.staropensource.sosengine.windowing.implementable.Window;
+import de.staropensource.sosengine.windowing.event.InputEvent;
+import de.staropensource.sosengine.windowing.glfw.implementable.WindowCallback;
+import de.staropensource.sosengine.windowing.type.input.Key;
+import de.staropensource.sosengine.windowing.type.input.KeyState;
import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFWMouseButtonCallbackI;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callbacks/package-info.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callback/package-info.java
similarity index 91%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callbacks/package-info.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callback/package-info.java
index b9c0a394..fcc0e5e9 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callbacks/package-info.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/callback/package-info.java
@@ -18,8 +18,8 @@
*/
/**
- * Callbacks, which emit {@link de.staropensource.sosengine.base.classes.Event}s.
+ * Callbacks, which emit {@link de.staropensource.sosengine.base.implementable.Event}s.
*
* @since v1-alpha2
*/
-package de.staropensource.sosengine.windowing.glfw.callbacks;
+package de.staropensource.sosengine.windowing.glfw.callback;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwInternalClass.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwInternalClass.java
similarity index 90%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwInternalClass.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwInternalClass.java
index 369f1414..421b3668 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwInternalClass.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwInternalClass.java
@@ -17,12 +17,12 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.glfw.classes;
+package de.staropensource.sosengine.windowing.glfw.implementable;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.windowing.classes.Monitor;
-import de.staropensource.sosengine.windowing.classes.api.ApiInternalClass;
-import de.staropensource.sosengine.windowing.exceptions.NoMonitorsFoundException;
+import de.staropensource.sosengine.windowing.implementable.Monitor;
+import de.staropensource.sosengine.windowing.implementable.api.ApiInternalClass;
+import de.staropensource.sosengine.windowing.exception.NoMonitorsFoundException;
import lombok.Getter;
import lombok.Setter;
import org.jetbrains.annotations.NotNull;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwManagementClass.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwManagementClass.java
similarity index 91%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwManagementClass.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwManagementClass.java
index cee47f13..68fe849c 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwManagementClass.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwManagementClass.java
@@ -17,13 +17,13 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.glfw.classes;
+package de.staropensource.sosengine.windowing.glfw.implementable;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.utility.Miscellaneous;
-import de.staropensource.sosengine.windowing.classes.api.ApiManagementClass;
-import de.staropensource.sosengine.windowing.classes.Window;
-import de.staropensource.sosengine.windowing.exceptions.NotOnMainThreadException;
+import de.staropensource.sosengine.windowing.implementable.api.ApiManagementClass;
+import de.staropensource.sosengine.windowing.implementable.Window;
+import de.staropensource.sosengine.windowing.exception.NotOnMainThreadException;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwMonitor.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwMonitor.java
similarity index 92%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwMonitor.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwMonitor.java
index cbe57f21..5a80c987 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwMonitor.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwMonitor.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.glfw.classes;
+package de.staropensource.sosengine.windowing.glfw.implementable;
-import de.staropensource.sosengine.base.types.vectors.Vec2i;
-import de.staropensource.sosengine.windowing.classes.Monitor;
-import de.staropensource.sosengine.windowing.exceptions.InvalidMonitorException;
+import de.staropensource.sosengine.base.type.vectors.Vec2i;
+import de.staropensource.sosengine.windowing.implementable.Monitor;
+import de.staropensource.sosengine.windowing.exception.InvalidMonitorException;
import lombok.SneakyThrows;
import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFWVidMode;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwWindow.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwWindow.java
similarity index 94%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwWindow.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwWindow.java
index 619965c4..bbea485b 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/GlfwWindow.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/GlfwWindow.java
@@ -17,23 +17,23 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.glfw.classes;
+package de.staropensource.sosengine.windowing.glfw.implementable;
-import de.staropensource.sosengine.base.exceptions.UnexpectedThrowableException;
-import de.staropensource.sosengine.base.types.Tristate;
-import de.staropensource.sosengine.base.types.vectors.Vec2i;
+import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
+import de.staropensource.sosengine.base.type.Tristate;
+import de.staropensource.sosengine.base.type.vectors.Vec2i;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import de.staropensource.sosengine.windowing.WindowingSubsystemConfiguration;
-import de.staropensource.sosengine.windowing.classes.Monitor;
-import de.staropensource.sosengine.windowing.classes.Window;
-import de.staropensource.sosengine.windowing.events.RenderingErrorEvent;
-import de.staropensource.sosengine.windowing.events.InputEvent;
-import de.staropensource.sosengine.windowing.glfw.callbacks.KeyCallback;
-import de.staropensource.sosengine.windowing.glfw.callbacks.MouseButtonCallback;
-import de.staropensource.sosengine.windowing.exceptions.NotOnMainThreadException;
-import de.staropensource.sosengine.windowing.exceptions.WindowCreationFailureException;
-import de.staropensource.sosengine.windowing.types.window.VsyncMode;
-import de.staropensource.sosengine.windowing.types.window.WindowMode;
+import de.staropensource.sosengine.windowing.implementable.Monitor;
+import de.staropensource.sosengine.windowing.implementable.Window;
+import de.staropensource.sosengine.windowing.event.RenderingErrorEvent;
+import de.staropensource.sosengine.windowing.event.InputEvent;
+import de.staropensource.sosengine.windowing.glfw.callback.KeyCallback;
+import de.staropensource.sosengine.windowing.glfw.callback.MouseButtonCallback;
+import de.staropensource.sosengine.windowing.exception.NotOnMainThreadException;
+import de.staropensource.sosengine.windowing.exception.WindowCreationFailureException;
+import de.staropensource.sosengine.windowing.type.window.VsyncMode;
+import de.staropensource.sosengine.windowing.type.window.WindowMode;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFWKeyCallback;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/WindowCallback.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/WindowCallback.java
similarity index 92%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/WindowCallback.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/WindowCallback.java
index 997fce35..9399ddb1 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/WindowCallback.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/WindowCallback.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.glfw.classes;
+package de.staropensource.sosengine.windowing.glfw.implementable;
-import de.staropensource.sosengine.windowing.classes.Window;
+import de.staropensource.sosengine.windowing.implementable.Window;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/package-info.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/package-info.java
similarity index 89%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/package-info.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/package-info.java
index fc0a6b6c..5b34c2f0 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/classes/package-info.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/implementable/package-info.java
@@ -20,6 +20,6 @@
/**
* Interfaces and abstract classes which can be used for implementing classes.
*
- * These are not to be confused with data types. See {@link de.staropensource.sosengine.windowing.glfw.types}.
+ * These are not to be confused with data types. See {@link de.staropensource.sosengine.windowing.glfw.type}.
*/
-package de.staropensource.sosengine.windowing.glfw.classes;
+package de.staropensource.sosengine.windowing.glfw.implementable;
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/types/GlfwPlatform.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/type/GlfwPlatform.java
similarity index 96%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/types/GlfwPlatform.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/type/GlfwPlatform.java
index 94f44d4b..92b5ab43 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/types/GlfwPlatform.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/type/GlfwPlatform.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.glfw.types;
+package de.staropensource.sosengine.windowing.glfw.type;
/**
* Contains all available platforms which GLFW can be initialized with.
diff --git a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/types/package-info.java b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/type/package-info.java
similarity index 93%
rename from windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/types/package-info.java
rename to windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/type/package-info.java
index 0a8f4811..79119ee7 100644
--- a/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/types/package-info.java
+++ b/windowing/glfw/src/main/java/de/staropensource/sosengine/windowing/glfw/type/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha2
*/
-package de.staropensource.sosengine.windowing.glfw.types;
+package de.staropensource.sosengine.windowing.glfw.type;
diff --git a/windowing/glfw/src/main/java/module-info.java b/windowing/glfw/src/main/java/module-info.java
index 316aa031..75f9500a 100644
--- a/windowing/glfw/src/main/java/module-info.java
+++ b/windowing/glfw/src/main/java/module-info.java
@@ -1,4 +1,4 @@
-import de.staropensource.sosengine.windowing.classes.Window;
+import de.staropensource.sosengine.windowing.implementable.Window;
/**
* The {@code glfw} subsystem and windowing API, which makes it
@@ -19,9 +19,9 @@ module sosengine.windowing.glfw {
// API access
exports de.staropensource.sosengine.windowing.glfw;
- exports de.staropensource.sosengine.windowing.glfw.classes;
+ exports de.staropensource.sosengine.windowing.glfw.implementable;
// Reflection access
opens de.staropensource.sosengine.windowing.glfw;
- opens de.staropensource.sosengine.windowing.glfw.classes;
+ opens de.staropensource.sosengine.windowing.glfw.implementable;
}
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/WindowingSubsystem.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/WindowingSubsystem.java
index e131b143..cb6d494b 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/WindowingSubsystem.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/WindowingSubsystem.java
@@ -19,21 +19,21 @@
package de.staropensource.sosengine.windowing;
-import de.staropensource.sosengine.base.annotations.EngineSubsystem;
-import de.staropensource.sosengine.base.annotations.EventListener;
-import de.staropensource.sosengine.base.classes.SubsystemClass;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
-import de.staropensource.sosengine.base.data.information.EngineInformation;
-import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
+import de.staropensource.sosengine.base.annotation.EngineSubsystem;
+import de.staropensource.sosengine.base.annotation.EventListener;
+import de.staropensource.sosengine.base.implementable.SubsystemClass;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
+import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
+import de.staropensource.sosengine.base.dataprovider.versioning.StarOpenSourceVersioningSystem;
import de.staropensource.sosengine.base.internal.events.InternalEngineShutdownEvent;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.DependencyVector;
+import de.staropensource.sosengine.base.type.DependencyVector;
import de.staropensource.sosengine.base.utility.Miscellaneous;
-import de.staropensource.sosengine.windowing.classes.api.ApiClass;
-import de.staropensource.sosengine.windowing.events.InputEvent;
-import de.staropensource.sosengine.windowing.events.RenderingErrorEvent;
-import de.staropensource.sosengine.windowing.events.WindowingErrorEvent;
-import de.staropensource.sosengine.windowing.events.WindowingShutdownEvent;
+import de.staropensource.sosengine.windowing.implementable.api.ApiClass;
+import de.staropensource.sosengine.windowing.event.InputEvent;
+import de.staropensource.sosengine.windowing.event.RenderingErrorEvent;
+import de.staropensource.sosengine.windowing.event.WindowingErrorEvent;
+import de.staropensource.sosengine.windowing.event.WindowingShutdownEvent;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/WindowingSubsystemConfiguration.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/WindowingSubsystemConfiguration.java
index 43a38af6..05e33537 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/WindowingSubsystemConfiguration.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/WindowingSubsystemConfiguration.java
@@ -19,11 +19,11 @@
package de.staropensource.sosengine.windowing;
-import de.staropensource.sosengine.base.classes.Configuration;
+import de.staropensource.sosengine.base.implementable.Configuration;
import de.staropensource.sosengine.base.utility.PropertiesReader;
-import de.staropensource.sosengine.windowing.events.RenderingErrorEvent;
-import de.staropensource.sosengine.windowing.events.WindowingErrorEvent;
-import de.staropensource.sosengine.windowing.types.window.VsyncMode;
+import de.staropensource.sosengine.windowing.event.RenderingErrorEvent;
+import de.staropensource.sosengine.windowing.event.WindowingErrorEvent;
+import de.staropensource.sosengine.windowing.type.window.VsyncMode;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/InputEvent.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/InputEvent.java
similarity index 86%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/events/InputEvent.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/event/InputEvent.java
index a3257a4c..f1828e0f 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/InputEvent.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/InputEvent.java
@@ -17,15 +17,15 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.events;
+package de.staropensource.sosengine.windowing.event;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.windowing.WindowingSubsystemConfiguration;
-import de.staropensource.sosengine.windowing.classes.Window;
-import de.staropensource.sosengine.windowing.types.input.Key;
-import de.staropensource.sosengine.windowing.types.input.KeyState;
+import de.staropensource.sosengine.windowing.implementable.Window;
+import de.staropensource.sosengine.windowing.type.input.Key;
+import de.staropensource.sosengine.windowing.type.input.KeyState;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/RenderingErrorEvent.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/RenderingErrorEvent.java
similarity index 89%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/events/RenderingErrorEvent.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/event/RenderingErrorEvent.java
index a5e8e48b..7ec6538b 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/RenderingErrorEvent.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/RenderingErrorEvent.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.events;
+package de.staropensource.sosengine.windowing.event;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/WindowingErrorEvent.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/WindowingErrorEvent.java
similarity index 89%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/events/WindowingErrorEvent.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/event/WindowingErrorEvent.java
index 9107d1ed..2fcca436 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/WindowingErrorEvent.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/WindowingErrorEvent.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.events;
+package de.staropensource.sosengine.windowing.event;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/WindowingShutdownEvent.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/WindowingShutdownEvent.java
similarity index 86%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/events/WindowingShutdownEvent.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/event/WindowingShutdownEvent.java
index 160c57cc..45fbe908 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/WindowingShutdownEvent.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/WindowingShutdownEvent.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.events;
+package de.staropensource.sosengine.windowing.event;
-import de.staropensource.sosengine.base.classes.Event;
-import de.staropensource.sosengine.base.classes.helpers.EventHelper;
+import de.staropensource.sosengine.base.implementable.Event;
+import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
/**
* Called when the windowing API shuts down.
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/package-info.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/package-info.java
similarity index 94%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/events/package-info.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/event/package-info.java
index d191137b..bf2d6f06 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/events/package-info.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/event/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha0
*/
-package de.staropensource.sosengine.windowing.events;
+package de.staropensource.sosengine.windowing.event;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/InvalidMonitorException.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/InvalidMonitorException.java
similarity index 95%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/InvalidMonitorException.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/exception/InvalidMonitorException.java
index 03ff5c08..a4fa7c56 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/InvalidMonitorException.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/InvalidMonitorException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.exceptions;
+package de.staropensource.sosengine.windowing.exception;
/**
* Thrown when the specified monitor does not exist.
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/NoMonitorsFoundException.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/NoMonitorsFoundException.java
similarity index 95%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/NoMonitorsFoundException.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/exception/NoMonitorsFoundException.java
index af10c209..a55ca9c4 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/NoMonitorsFoundException.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/NoMonitorsFoundException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.exceptions;
+package de.staropensource.sosengine.windowing.exception;
/**
* Thrown when trying to access one or more monitors but none are found.
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/NotOnMainThreadException.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/NotOnMainThreadException.java
similarity index 95%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/NotOnMainThreadException.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/exception/NotOnMainThreadException.java
index 27644343..b253da7d 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/NotOnMainThreadException.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/NotOnMainThreadException.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.exceptions;
+package de.staropensource.sosengine.windowing.exception;
/**
* Thrown when trying to communicate with a windowing API over a non-main thread.
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/WindowCreationFailureException.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/WindowCreationFailureException.java
similarity index 91%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/WindowCreationFailureException.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/exception/WindowCreationFailureException.java
index fb1eff6b..64e9c7b8 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/WindowCreationFailureException.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/WindowCreationFailureException.java
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.exceptions;
+package de.staropensource.sosengine.windowing.exception;
-import de.staropensource.sosengine.windowing.classes.Window;
+import de.staropensource.sosengine.windowing.implementable.Window;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/package-info.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/package-info.java
similarity index 94%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/package-info.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/exception/package-info.java
index 7d47042f..467bc50f 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/exceptions/package-info.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/exception/package-info.java
@@ -25,4 +25,4 @@
*
* @since v1-alpha2
*/
-package de.staropensource.sosengine.windowing.exceptions;
+package de.staropensource.sosengine.windowing.exception;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/Monitor.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/Monitor.java
similarity index 94%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/classes/Monitor.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/Monitor.java
index 121675d4..e90dfb74 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/Monitor.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/Monitor.java
@@ -17,13 +17,13 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.classes;
+package de.staropensource.sosengine.windowing.implementable;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.vectors.Vec2i;
+import de.staropensource.sosengine.base.type.vectors.Vec2i;
import de.staropensource.sosengine.windowing.WindowingSubsystem;
-import de.staropensource.sosengine.windowing.exceptions.InvalidMonitorException;
-import de.staropensource.sosengine.windowing.exceptions.NoMonitorsFoundException;
+import de.staropensource.sosengine.windowing.exception.InvalidMonitorException;
+import de.staropensource.sosengine.windowing.exception.NoMonitorsFoundException;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/Window.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/Window.java
similarity index 99%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/classes/Window.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/Window.java
index ad094880..1c24dd3a 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/Window.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/Window.java
@@ -17,14 +17,14 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.classes;
+package de.staropensource.sosengine.windowing.implementable;
-import de.staropensource.sosengine.base.exceptions.UnexpectedThrowableException;
+import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
import de.staropensource.sosengine.base.logging.LoggerInstance;
-import de.staropensource.sosengine.base.types.Tristate;
-import de.staropensource.sosengine.base.types.vectors.Vec2i;
+import de.staropensource.sosengine.base.type.Tristate;
+import de.staropensource.sosengine.base.type.vectors.Vec2i;
import de.staropensource.sosengine.windowing.WindowingSubsystem;
-import de.staropensource.sosengine.windowing.types.window.WindowMode;
+import de.staropensource.sosengine.windowing.type.window.WindowMode;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/ApiClass.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/ApiClass.java
similarity index 94%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/ApiClass.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/ApiClass.java
index 959aa667..b18261ff 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/ApiClass.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/ApiClass.java
@@ -17,10 +17,10 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.classes.api;
+package de.staropensource.sosengine.windowing.implementable.api;
import de.staropensource.sosengine.base.Engine;
-import de.staropensource.sosengine.base.classes.SubsystemClass;
+import de.staropensource.sosengine.base.implementable.SubsystemClass;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/ApiInternalClass.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/ApiInternalClass.java
similarity index 83%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/ApiInternalClass.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/ApiInternalClass.java
index b60f2d28..69bc7169 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/ApiInternalClass.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/ApiInternalClass.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.classes.api;
+package de.staropensource.sosengine.windowing.implementable.api;
-import de.staropensource.sosengine.windowing.classes.Monitor;
-import de.staropensource.sosengine.windowing.classes.Window;
-import de.staropensource.sosengine.windowing.exceptions.NoMonitorsFoundException;
+import de.staropensource.sosengine.windowing.implementable.Monitor;
+import de.staropensource.sosengine.windowing.implementable.Window;
+import de.staropensource.sosengine.windowing.exception.NoMonitorsFoundException;
import org.jetbrains.annotations.NotNull;
import java.util.LinkedHashSet;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/ApiManagementClass.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/ApiManagementClass.java
similarity index 96%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/ApiManagementClass.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/ApiManagementClass.java
index 5fa7c815..0e8e27d8 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/ApiManagementClass.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/ApiManagementClass.java
@@ -17,14 +17,14 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.classes.api;
+package de.staropensource.sosengine.windowing.implementable.api;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.utility.Math;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import de.staropensource.sosengine.windowing.WindowingSubsystemConfiguration;
-import de.staropensource.sosengine.windowing.classes.Window;
-import de.staropensource.sosengine.windowing.types.window.VsyncMode;
+import de.staropensource.sosengine.windowing.implementable.Window;
+import de.staropensource.sosengine.windowing.type.window.VsyncMode;
import lombok.AccessLevel;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/package-info.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/package-info.java
similarity index 93%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/package-info.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/package-info.java
index e9e65ff7..2cfbd018 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/api/package-info.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/api/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha2
*/
-package de.staropensource.sosengine.windowing.classes.api;
+package de.staropensource.sosengine.windowing.implementable.api;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/package-info.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/package-info.java
similarity index 90%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/classes/package-info.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/package-info.java
index 0e5da6d2..84056039 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/classes/package-info.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/implementable/package-info.java
@@ -20,8 +20,8 @@
/**
* Interfaces and abstract classes which can be used for implementing classes.
*
- * These are not to be confused with data types. See {@link de.staropensource.sosengine.windowing.types}.
+ * These are not to be confused with data types. See {@link de.staropensource.sosengine.windowing.type}.
*
* @since v1-alpha0
*/
-package de.staropensource.sosengine.windowing.classes;
+package de.staropensource.sosengine.windowing.implementable;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/input/Key.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/input/Key.java
similarity index 99%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/types/input/Key.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/type/input/Key.java
index 57aeb57b..1cd915b7 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/input/Key.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/input/Key.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.types.input;
+package de.staropensource.sosengine.windowing.type.input;
/**
* Contains a list of keys which can be recognized by the engine.
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/input/KeyState.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/input/KeyState.java
similarity index 95%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/types/input/KeyState.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/type/input/KeyState.java
index 25700cc6..ec18531f 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/input/KeyState.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/input/KeyState.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.types.input;
+package de.staropensource.sosengine.windowing.type.input;
/**
* Contains in which state a key is.
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/input/package-info.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/input/package-info.java
similarity index 93%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/types/input/package-info.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/type/input/package-info.java
index c4c91d22..454554e0 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/input/package-info.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/input/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha2
*/
-package de.staropensource.sosengine.windowing.types.input;
+package de.staropensource.sosengine.windowing.type.input;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/package-info.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/package-info.java
similarity index 94%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/types/package-info.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/type/package-info.java
index 9ebb6e9d..698a7541 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/package-info.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha1
*/
-package de.staropensource.sosengine.windowing.types;
+package de.staropensource.sosengine.windowing.type;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/window/VsyncMode.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/window/VsyncMode.java
similarity index 96%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/types/window/VsyncMode.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/type/window/VsyncMode.java
index 03da6dd6..2659221d 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/window/VsyncMode.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/window/VsyncMode.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.types.window;
+package de.staropensource.sosengine.windowing.type.window;
import de.staropensource.sosengine.windowing.WindowingSubsystemConfiguration;
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/window/WindowMode.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/window/WindowMode.java
similarity index 97%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/types/window/WindowMode.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/type/window/WindowMode.java
index ac4c825d..601fce9c 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/window/WindowMode.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/window/WindowMode.java
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
-package de.staropensource.sosengine.windowing.types.window;
+package de.staropensource.sosengine.windowing.type.window;
/**
* Contains how a window should be displayed.
diff --git a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/window/package-info.java b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/window/package-info.java
similarity index 93%
rename from windowing/src/main/java/de/staropensource/sosengine/windowing/types/window/package-info.java
rename to windowing/src/main/java/de/staropensource/sosengine/windowing/type/window/package-info.java
index 7d4be98e..1e19a158 100644
--- a/windowing/src/main/java/de/staropensource/sosengine/windowing/types/window/package-info.java
+++ b/windowing/src/main/java/de/staropensource/sosengine/windowing/type/window/package-info.java
@@ -22,4 +22,4 @@
*
* @since v1-alpha1
*/
-package de.staropensource.sosengine.windowing.types.window;
+package de.staropensource.sosengine.windowing.type.window;
diff --git a/windowing/src/main/java/module-info.java b/windowing/src/main/java/module-info.java
index a1f1c902..c1983088 100644
--- a/windowing/src/main/java/module-info.java
+++ b/windowing/src/main/java/module-info.java
@@ -14,19 +14,19 @@ module sosengine.windowing {
// API access
exports de.staropensource.sosengine.windowing;
- exports de.staropensource.sosengine.windowing.classes;
- exports de.staropensource.sosengine.windowing.classes.api;
- exports de.staropensource.sosengine.windowing.events;
- exports de.staropensource.sosengine.windowing.exceptions;
- exports de.staropensource.sosengine.windowing.types.input;
- exports de.staropensource.sosengine.windowing.types.window;
+ exports de.staropensource.sosengine.windowing.implementable;
+ exports de.staropensource.sosengine.windowing.implementable.api;
+ exports de.staropensource.sosengine.windowing.event;
+ exports de.staropensource.sosengine.windowing.exception;
+ exports de.staropensource.sosengine.windowing.type.input;
+ exports de.staropensource.sosengine.windowing.type.window;
// Reflection access
opens de.staropensource.sosengine.windowing;
- opens de.staropensource.sosengine.windowing.classes;
- opens de.staropensource.sosengine.windowing.classes.api;
- opens de.staropensource.sosengine.windowing.events;
- opens de.staropensource.sosengine.windowing.exceptions;
- opens de.staropensource.sosengine.windowing.types.input;
- opens de.staropensource.sosengine.windowing.types.window;
+ opens de.staropensource.sosengine.windowing.implementable;
+ opens de.staropensource.sosengine.windowing.implementable.api;
+ opens de.staropensource.sosengine.windowing.event;
+ opens de.staropensource.sosengine.windowing.exception;
+ opens de.staropensource.sosengine.windowing.type.input;
+ opens de.staropensource.sosengine.windowing.type.window;
}