diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringAppend.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringAppend.java
new file mode 100644
index 0000000000000000000000000000000000000000..0b2d6e2a7538a1155a092e050d9306ace69db28c
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringAppend.java
@@ -0,0 +1,27 @@
+package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
+import java.util.Optional;
+
+public class BiCreaterStringAppend extends AbstractBoundaryBiCreater<StringBoundary> {
+
+  private static final BiCreaterStringAppend instance = new BiCreaterStringAppend();
+
+  private BiCreaterStringAppend() {
+    super();
+  }
+
+  public static BiCreaterStringAppend getInstance() {
+    return instance;
+  }
+
+  @Override
+  public BoundaryBiCreaterType getType() {
+    return BoundaryBiCreaterType.APPEND;
+  }
+
+  @Override
+  public Optional<StringBoundary> create(StringBoundary b1, StringBoundary b2) {
+    return Optional.empty();
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringBetween.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringBetween.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b6f10a5d2e84ad44110dada1df648f5dbb8c175
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringBetween.java
@@ -0,0 +1,27 @@
+package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
+import java.util.Optional;
+
+public class BiCreaterStringBetween extends AbstractBoundaryBiCreater<StringBoundary> {
+
+  private static final BiCreaterStringBetween instance = new BiCreaterStringBetween();
+
+  private BiCreaterStringBetween() {
+    super();
+  }
+
+  public static BiCreaterStringBetween getInstance() {
+    return instance;
+  }
+
+  @Override
+  public BoundaryBiCreaterType getType() {
+    return BoundaryBiCreaterType.BETWEEN;
+  }
+
+  @Override
+  public Optional<StringBoundary> create(StringBoundary b1, StringBoundary b2) {
+    return Optional.empty();
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java
new file mode 100644
index 0000000000000000000000000000000000000000..2ce7ba4cd6a62fa4f694e5a10c604f5cb3c89c7c
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java
@@ -0,0 +1,27 @@
+package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
+import java.util.Optional;
+
+public class BiCreaterStringCombine extends AbstractBoundaryBiCreater<StringBoundary> {
+
+  private static final BiCreaterStringCombine instance = new BiCreaterStringCombine();
+
+  private BiCreaterStringCombine() {
+    super();
+  }
+
+  public static BiCreaterStringCombine getInstance() {
+    return instance;
+  }
+
+  @Override
+  public BoundaryBiCreaterType getType() {
+    return BoundaryBiCreaterType.COMBINE;
+  }
+
+  @Override
+  public Optional<StringBoundary> create(StringBoundary b1, StringBoundary b2) {
+    return Optional.empty();
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringIntersection.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringIntersection.java
new file mode 100644
index 0000000000000000000000000000000000000000..016fcb0c02e89d5a02092405b91f95cc3d679c0a
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringIntersection.java
@@ -0,0 +1,27 @@
+package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
+import java.util.Optional;
+
+public class BiCreaterStringIntersection extends AbstractBoundaryBiCreater<StringBoundary> {
+
+  private static final BiCreaterStringIntersection instance = new BiCreaterStringIntersection();
+
+  private BiCreaterStringIntersection() {
+    super();
+  }
+
+  public static BiCreaterStringIntersection getInstance() {
+    return instance;
+  }
+
+  @Override
+  public BoundaryBiCreaterType getType() {
+    return BoundaryBiCreaterType.INTERSECTION;
+  }
+
+  @Override
+  public Optional<StringBoundary> create(StringBoundary b1, StringBoundary b2) {
+    return Optional.empty();
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringLowerBounds.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringLowerBounds.java
new file mode 100644
index 0000000000000000000000000000000000000000..741c406a9ace324fa0885d0c75151e5b1a6be86e
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringLowerBounds.java
@@ -0,0 +1,27 @@
+package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
+import java.util.Optional;
+
+public class BiCreaterStringLowerBounds extends AbstractBoundaryBiCreater<StringBoundary> {
+
+  private static final BiCreaterStringLowerBounds instance = new BiCreaterStringLowerBounds();
+
+  private BiCreaterStringLowerBounds() {
+    super();
+  }
+
+  public static BiCreaterStringLowerBounds getInstance() {
+    return instance;
+  }
+
+  @Override
+  public BoundaryBiCreaterType getType() {
+    return BoundaryBiCreaterType.LOWER_BOUNDS;
+  }
+
+  @Override
+  public Optional<StringBoundary> create(StringBoundary b1, StringBoundary b2) {
+    return Optional.empty();
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringUpperBounds.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringUpperBounds.java
new file mode 100644
index 0000000000000000000000000000000000000000..27f0124244ed1cdf62a7ad0c15c0462f68da3ad8
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringUpperBounds.java
@@ -0,0 +1,27 @@
+package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
+import java.util.Optional;
+
+public class BiCreaterStringUpperBounds extends AbstractBoundaryBiCreater<StringBoundary> {
+
+  private static final BiCreaterStringUpperBounds instance = new BiCreaterStringUpperBounds();
+
+  private BiCreaterStringUpperBounds() {
+    super();
+  }
+
+  public static BiCreaterStringUpperBounds getInstance() {
+    return instance;
+  }
+
+  @Override
+  public BoundaryBiCreaterType getType() {
+    return BoundaryBiCreaterType.UPPER_BOUNDS;
+  }
+
+  @Override
+  public Optional<StringBoundary> create(StringBoundary b1, StringBoundary b2) {
+    return Optional.empty();
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringLower.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringLower.java
new file mode 100644
index 0000000000000000000000000000000000000000..8371ff22484ee11fb30d602bd2d64218e6fd9318
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringLower.java
@@ -0,0 +1,27 @@
+package de.unikoblenz.fgbks.base.utils.boundary.creater;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
+import java.util.Optional;
+
+public class CreaterStringLower extends AbstractBoundaryCreater<StringBoundary> {
+
+  private static final CreaterStringLower instance = new CreaterStringLower();
+
+  private CreaterStringLower() {
+    super();
+  }
+
+  public static CreaterStringLower getInstance() {
+    return instance;
+  }
+
+  @Override
+  public BoundaryCreaterType getType() {
+    return BoundaryCreaterType.LOWER;
+  }
+
+  @Override
+  public Optional<StringBoundary> create(StringBoundary b) {
+    return Optional.empty();
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringUpper.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringUpper.java
new file mode 100644
index 0000000000000000000000000000000000000000..6167e61581f470c41dee78ceff937dac6d489634
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringUpper.java
@@ -0,0 +1,27 @@
+package de.unikoblenz.fgbks.base.utils.boundary.creater;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
+import java.util.Optional;
+
+public class CreaterStringUpper extends AbstractBoundaryCreater<StringBoundary> {
+
+  private static final CreaterStringUpper instance = new CreaterStringUpper();
+
+  private CreaterStringUpper() {
+    super();
+  }
+
+  public static CreaterStringUpper getInstance() {
+    return instance;
+  }
+
+  @Override
+  public BoundaryCreaterType getType() {
+    return BoundaryCreaterType.UPPER;
+  }
+
+  @Override
+  public Optional<StringBoundary> create(StringBoundary b) {
+    return Optional.empty();
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java
index 6c67fca58a4b910352e2078fbddb17a4c7cebcae..ab43e382788a832eb091dca27cb359bdff9f2f73 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java
@@ -18,9 +18,13 @@ import static de.unikoblenz.fgbks.base.utils.boundary.creater.BoundaryCreaterTyp
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.Boundary;
 import de.unikoblenz.fgbks.base.utils.boundary.BoundaryParseException;
+import de.unikoblenz.fgbks.base.utils.boundary.bicreater.BiCreaterStringAppend;
+import de.unikoblenz.fgbks.base.utils.boundary.bicreater.BiCreaterStringBetween;
+import de.unikoblenz.fgbks.base.utils.boundary.bicreater.BiCreaterStringIntersection;
+import de.unikoblenz.fgbks.base.utils.boundary.bicreater.BiCreaterStringLowerBounds;
+import de.unikoblenz.fgbks.base.utils.boundary.bicreater.BiCreaterStringUpperBounds;
 import de.unikoblenz.fgbks.base.utils.boundary.bicreater.BoundaryBiCreater;
 import de.unikoblenz.fgbks.base.utils.boundary.bicreater.BoundaryBiCreaterType;
-import de.unikoblenz.fgbks.base.utils.boundary.bicreater.EmptyBiCreater;
 import de.unikoblenz.fgbks.base.utils.boundary.checker.BoundaryCheck;
 import de.unikoblenz.fgbks.base.utils.boundary.checker.BoundaryCheckType;
 import de.unikoblenz.fgbks.base.utils.boundary.checker.CheckStringEqual;
@@ -31,8 +35,8 @@ import de.unikoblenz.fgbks.base.utils.boundary.checker.CheckStringSubsumes;
 import de.unikoblenz.fgbks.base.utils.boundary.checker.CheckStringSubsumption;
 import de.unikoblenz.fgbks.base.utils.boundary.creater.BoundaryCreater;
 import de.unikoblenz.fgbks.base.utils.boundary.creater.BoundaryCreaterType;
-import de.unikoblenz.fgbks.base.utils.boundary.creater.CreaterLower;
-import de.unikoblenz.fgbks.base.utils.boundary.creater.CreaterUpper;
+import de.unikoblenz.fgbks.base.utils.boundary.creater.CreaterStringLower;
+import de.unikoblenz.fgbks.base.utils.boundary.creater.CreaterStringUpper;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Objects;
@@ -52,14 +56,14 @@ public class StringBoundary extends AbstractBoundary<String> {
     checkerMap.put(IS_OVERLAPPING, CheckStringOverlap.getInstance());
     checkerMap.put(IS_SUBSUMPTION, CheckStringSubsumption.getInstance());
     checkerMap.put(SUBSUMES, CheckStringSubsumes.getInstance());
-    createrMap.put(UPPER, CreaterUpper.getInstance());
-    createrMap.put(LOWER, CreaterLower.getInstance());
-    biCreaterMap.put(INTERSECTION, EmptyBiCreater.getInstance());
-    biCreaterMap.put(LOWER_BOUNDS, EmptyBiCreater.getInstance());
-    biCreaterMap.put(UPPER_BOUNDS, EmptyBiCreater.getInstance());
-    biCreaterMap.put(BETWEEN, EmptyBiCreater.getInstance());
-    biCreaterMap.put(APPEND, EmptyBiCreater.getInstance());
-    biCreaterMap.put(COMBINE, EmptyBiCreater.getInstance());
+    createrMap.put(UPPER, CreaterStringUpper.getInstance());
+    createrMap.put(LOWER, CreaterStringLower.getInstance());
+    biCreaterMap.put(INTERSECTION, BiCreaterStringIntersection.getInstance());
+    biCreaterMap.put(LOWER_BOUNDS, BiCreaterStringLowerBounds.getInstance());
+    biCreaterMap.put(UPPER_BOUNDS, BiCreaterStringUpperBounds.getInstance());
+    biCreaterMap.put(BETWEEN, BiCreaterStringBetween.getInstance());
+    biCreaterMap.put(APPEND, BiCreaterStringAppend.getInstance());
+    biCreaterMap.put(COMBINE, BiCreaterStringBetween.getInstance());
   }
 
   private boolean matchNoneOfValues;