diff --git a/src/commonMain/kotlin/de/timklge/jackrat/And.kt b/src/commonMain/kotlin/de/timklge/jackrat/And.kt
index 710a9601557ad984cda2cf37fdc79327837d1cca..acf27d01855c65df396d27662fed1dd6a899d44c 100644
--- a/src/commonMain/kotlin/de/timklge/jackrat/And.kt
+++ b/src/commonMain/kotlin/de/timklge/jackrat/And.kt
@@ -24,18 +24,3 @@ class AndParser(children: List<Parser>, nodeFunc: NodeTransform = ::emptyNodeTra
     }
 }
 
-class OrParser(children: List<Parser>, nodeFunc: NodeTransform = ::emptyNodeTransform): ParserWithChildren(children, nodeFunc) {
-    override val typeName: String = "OrParser"
-
-    override fun Match(s: Scanner): Node? {
-        val startPosition = s.position
-        children.forEach {
-            val node = s.applyRule(it)
-            if(node != null){
-                return Node(node.matched, this, listOf(node))
-            }
-            s.position = startPosition
-        }
-        return null
-    }
-}
\ No newline at end of file
diff --git a/src/commonMain/kotlin/de/timklge/jackrat/Empty.kt b/src/commonMain/kotlin/de/timklge/jackrat/Empty.kt
index 729466d323c856233a9cd8e0ea074a3abb5b3f3f..b639d892a160194c37b75dae7744151f147c61dd 100644
--- a/src/commonMain/kotlin/de/timklge/jackrat/Empty.kt
+++ b/src/commonMain/kotlin/de/timklge/jackrat/Empty.kt
@@ -10,20 +10,3 @@ class EmptyParser(transform: NodeTransform = ::emptyNodeTransform) : Parser(tran
     }
 }
 
-class EndParser(val skipWhitespace: Boolean = true) : Parser() {
-    override val typeName: String = "EndParser"
-
-    override fun Match(s: Scanner): Node? {
-        val startPosition = s.position
-        if(skipWhitespace){
-            s.skipWhitespace()
-        }
-
-        if(s.position == s.input.length){
-            return Node("", this, listOf())
-        }
-
-        s.position = startPosition
-        return null
-    }
-}
\ No newline at end of file
diff --git a/src/commonMain/kotlin/de/timklge/jackrat/End.kt b/src/commonMain/kotlin/de/timklge/jackrat/End.kt
new file mode 100644
index 0000000000000000000000000000000000000000..259987ffd4331ca84a229c6f26cba54c34222cd1
--- /dev/null
+++ b/src/commonMain/kotlin/de/timklge/jackrat/End.kt
@@ -0,0 +1,21 @@
+package de.timklge.jackrat
+
+import jackrat.de.timklge.jackrat.Scanner
+
+class EndParser(val skipWhitespace: Boolean = true) : Parser() {
+    override val typeName: String = "EndParser"
+
+    override fun Match(s: Scanner): Node? {
+        val startPosition = s.position
+        if(skipWhitespace){
+            s.skipWhitespace()
+        }
+
+        if(s.position == s.input.length){
+            return Node("", this, listOf())
+        }
+
+        s.position = startPosition
+        return null
+    }
+}
\ No newline at end of file
diff --git a/src/commonMain/kotlin/de/timklge/jackrat/Or.kt b/src/commonMain/kotlin/de/timklge/jackrat/Or.kt
new file mode 100644
index 0000000000000000000000000000000000000000..fb54908736006ffbc433a2e876d071091d5b9ca0
--- /dev/null
+++ b/src/commonMain/kotlin/de/timklge/jackrat/Or.kt
@@ -0,0 +1,19 @@
+package de.timklge.jackrat
+
+import jackrat.de.timklge.jackrat.Scanner
+
+class OrParser(children: List<Parser>, nodeFunc: NodeTransform = ::emptyNodeTransform): ParserWithChildren(children, nodeFunc) {
+    override val typeName: String = "OrParser"
+
+    override fun Match(s: Scanner): Node? {
+        val startPosition = s.position
+        children.forEach {
+            val node = s.applyRule(it)
+            if(node != null){
+                return Node(node.matched, this, listOf(node))
+            }
+            s.position = startPosition
+        }
+        return null
+    }
+}
\ No newline at end of file
diff --git a/src/commonMain/kotlin/de/timklge/jackrat/RegexParser.kt b/src/commonMain/kotlin/de/timklge/jackrat/Regex.kt
similarity index 100%
rename from src/commonMain/kotlin/de/timklge/jackrat/RegexParser.kt
rename to src/commonMain/kotlin/de/timklge/jackrat/Regex.kt