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 364739c..ef78456 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 16646b4..a63a966 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 2dcf6c3..9a8cb9a 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 d174c65..8d8cd52 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 b7c399c..692b82e 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 a4d9fba..a846116 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 6e2f116..c7e12e3 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 d1f2c69..f43f85d 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 4908780..1e6a775 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 6a437be..7930e59 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 2a86c97..0b85983 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 28358b3..19a878f 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 5993a1f..675cb5e 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 fe774ba..be102b7 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 2203811..87d333b 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 11aff01..4746ad4 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 c69c5f5..7282e33 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 d3844da..7a712f9 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 14d8bec..fb54e82 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 1c284da..7ef3ca8 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 74e2b04..616310c 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 b5c88b1..a78e52e 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 9f86ba5..72e9ed8 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 7c2e36c..162df83 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 360a415..b6a1fd3 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 d00a954..5c27729 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 743f6d2..d527ac4 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 ad19e55..62a4351 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 8137bfc..d329f00 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 e8e017a..4196982 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 fa55e43..5cd0e92 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 09f6118..c230ef9 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 cab2794..dc63e69 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 0082cfd..ffde30d 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 f364e95..6f678d5 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 dd5bdd4..f0c4c49 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 2db6505..258a5d3 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 dc3fa1b..3981e0a 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 d313e48..9f98f0c 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 7f99114..6e2ca00 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 09217f6..cd695c0 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 408de01..012e398 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 26d5660..927e444 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 3379251..e564801 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 4269b20..3e761f2 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 17e08fe..9a27af9 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 c83b8f0..72cf68c 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 30d935b..8d2c546 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 0c8c7d0..713a22e 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 809cdfa..64eabb1 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 fd940ea..528aba3 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 424d383..6e17cd1 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 59416fb..80b62d2 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 77fe512..67dc80d 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 539a005..8438024 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 c124a64..7e73735 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 963188b..49b8710 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 b0d8bff..3edd6e7 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 23c2188..9792e2a 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 b8314e5..09db01e 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 0dc1dc2..40e411c 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 b496ed3..1cf2d0a 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 75c72e4..05711ad 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 e87cf91..a4de6a9 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 a059c7f..63edf8e 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 dc765c2..ee74f12 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 1ba52af..b0431a8 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 fa8144a..d81b354 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 a9040ea..200e9ab 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 36c739d..03ff02b 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 d443adc..2ec7ee8 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 87b3e99..e13d844 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 d26fb01..f764a04 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 51373b9..0007e42 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 6c23073..b770055 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 d6c3869..b28f68e 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 c79fd98..72827fb 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 5fd7a4e..4e8e227 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 91b45fe..cdbcfed 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 370cd18..95e87f6 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 c99ca01..353fdf8 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 557f2c5..6b9fe17 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 b3b8039..e987e15 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 4780315..2a8b29e 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 9627506..597b9dc 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 e38db2d..4f6d86d 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 ecc17a1..92775d5 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 74fd6e2..9767820 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 8ed418c..875fa16 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 5ed4e2e..3065da8 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 f1b2cc6..45c6a56 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 37bc963..a2f4822 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 b0877cf..2dd6363 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 c784fd2..3b97d2b 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 4cb029b..c9e7f76 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 7f38b77..e95aa5d 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 e5718ab..550de98 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 c694ef0..3cd36cb 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 2c5cc49..929f44d 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 7844251..2e5af20 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 9024551..de2706a 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 fbe1af3..2ba067f 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 4514dc1..5a1cca6 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 1ae6d2d..1fa7256 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 cfeaa06..7134460 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 009eba0..afda586 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 77567f8..5b55415 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 c4b92b4..a28c7b4 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 e523135..5f8bc88 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 4339c09..d86861b 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 f981edb..1ee3eb4 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 3661c67..44fe448 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 6b656ac..cb66937 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 cf811f7..c4b4748 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 1c36cb3..86a453a 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 8f43671..54a5cd9 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 7468cb8..64cafba 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 4dac914..bdc290b 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 cb8b703..eab3fdc 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 5d291ea..0f26e67 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 3c94ecc..c01e24e 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 dba90bc..2f8aab9 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 86c7a98..4431939 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 c3ac9c6..1df9749 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 316abad..83e6385 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 6589311..a028fed 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 17c2060..faba44e 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 fd08da2..d541261 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 d4ce0e8..0530b62 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 b1521a5..598b1ee 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 08e0c13..87ce224 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 e391585..916a676 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 378de43..5e832f0 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 a6db6a4..a75fdf4 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 b159aae..e91140a 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 535d440..3dc9b33 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 e1189b3..c059ecf 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 ebb7a5a..cc3f719 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 90d781c..af782de 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 5cdac4a..8053a5d 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 9ba4430..d93af8a 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 941ee36..53654fd 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 4ccec30..51c0da9 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 e91b371..ed94d03 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 96d03a7..c66d0db 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 f2eedcc..e5bea5b 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 29371ea..681d1e9 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 a9842e0..dfc0e7e 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 7601444..66865fc 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 4db14ad..89c9599 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 6234e52..d055711 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 2bc3ee1..5c13822 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 d1e8dbf..73f4c56 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 f85be3c..f01b6ef 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 8bf709d..1695869 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 5d39382..d445db0 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 8a8ef6f..70ff8f1 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 a00841c..bec07e2 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 17ba03d..9344b10 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 495a553..36072d8 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 cf98726..1edec2c 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 ec7e2b3..a9d8317 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 03a5870..8f1b978 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 a1f3ed4..2a0f513 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 326df4e..4ad83ec 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 34fe11a..ee181a6 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 8131d28..56f63af 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 9fc1264..a2e3f30 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 3eee119..ee4ad5b 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 0000000..b5fb62b
--- /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 ca48bd6..95009c6 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 2c0f400..571343a 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 0f830c2..ad61775 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 7d63a7f..b4b4987 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 78c76a1..7102290 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 b691588..a5d8503 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 b1691ab..720ee01 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 9b270db..9dde554 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 d6bf400..ec08186 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 4f3f5f8..5a5c975 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 b9c0a39..fcc0e5e 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 369f141..421b366 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 cee47f1..68fe849 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 cbe57f2..5a80c98 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 619965c..bbea485 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 997fce3..9399ddb 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 fc0a6b6..5b34c2f 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 94f44d4..92b5ab4 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 0a8f481..79119ee 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 316aa03..75f9500 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 e131b14..cb6d494 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 43a38af..05e3353 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 a3257a4..f1828e0 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 a5e8e48..7ec6538 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 9107d1e..2fcca43 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 160c57c..45fbe90 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 d191137..bf2d6f0 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 03ff5c0..a4fa7c5 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 af10c20..a55ca9c 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 2764434..b253da7 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 fb1eff6..64e9c7b 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 7d47042..467bc50 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 121675d..e90dfb7 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 ad09488..1c24dd3 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 959aa66..b18261f 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 b60f2d2..69bc716 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 5fa7c81..0e8e27d 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 e9e65ff..2cfbd01 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 0e5da6d..8405603 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 57aeb57..1cd915b 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 25700cc..ec18531 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 c4c91d2..454554e 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 9ebb6e9..698a754 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 03da6dd..2659221 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 ac4c825..601fce9 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 7d4be98..1e19a15 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 a1f1c90..c198308 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;
}