diff --git a/app/build.gradle b/app/build.gradle
index 361ba8d..b3ebb39 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -54,7 +54,7 @@
 
 application {
     // Define the main class for the application.
-    mainClass = 'de.ids_mannheim.korapxmltools.KorapXml2ConlluKt'
+    mainClass = 'de.ids_mannheim.korapxmltools.KorapXmlToolKt'
 }
 
 jar {
@@ -64,10 +64,10 @@
 
     manifest.attributes(
             'Class-Path': configurations.compileClasspath.collect { it.getName() }.join(' '),
-            'Main-Class': "de.ids_mannheim.korapxmltools.KorapXml2ConlluKt"
+            'Main-Class': "de.ids_mannheim.korapxmltools.KorapXmlToolKt"
     )
     shadowJar {
-        archiveBaseName.set('korapxml2conllu')
+        archiveBaseName.set('korapxmltool')
         archiveClassifier.set('')
         archiveVersion.set('')
     }
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/AnnotationToolBridge.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/AnnotationToolBridge.kt
index ab12d60..a99a7bc 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/AnnotationToolBridge.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/AnnotationToolBridge.kt
@@ -11,7 +11,7 @@
     fun tagSentence(
         sentenceTokens: MutableList<String>,
         sentenceTokenOffsets: MutableList<String>,
-        morphoMap: MutableMap<String, KorapXml2Conllu.MorphoSpan>?
+        morphoMap: MutableMap<String, KorapXmlTool.MorphoSpan>?
     )
 }
 
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXml2Conllu.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
similarity index 98%
rename from app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXml2Conllu.kt
rename to app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
index 1bdbcfe..5744391 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXml2Conllu.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
@@ -43,15 +43,15 @@
 val ZIP_ENTRY_UNIX_MODE = parseInt("644", 8)
 
 @Command(
-    name = "KorapXml2Conllu",
+    name = "KorapXmlTool",
     mixinStandardHelpOptions = true,
-    version = ["KorapXml2Conllu 2.0-beta-01"],
+    version = ["KorapXmlTool 2.0-beta-01"],
     description = ["Converts KorAP-XML <https://github.com/KorAP/KorAP-XML-Krill#about-korap-xml> base or " +
             "morpho zips to (annotated) CoNLL(-U) format with all information necessary for " +
             "reconstruction in comment lines."]
 )
 
-class KorapXml2Conllu : Callable<Int> {
+class KorapXmlTool : Callable<Int> {
     val COMPATIBILITY_MODE = System.getenv("COMPATIBILITY_MODE") != null
 
     @Spec lateinit var spec : Model.CommandSpec
@@ -246,7 +246,7 @@
         return 0
     }
 
-    private val LOGGER: Logger = Logger.getLogger(KorapXml2Conllu::class.java.name)
+    private val LOGGER: Logger = Logger.getLogger(KorapXmlTool::class.java.name)
 
     private var annotationWorkerPool : AnnotationWorkerPool? = null
 
@@ -1022,10 +1022,10 @@
 
 }
 
-fun main(args: Array<String>): Unit = exitProcess(CommandLine(KorapXml2Conllu()).execute(*args))
+fun main(args: Array<String>): Unit = exitProcess(CommandLine(KorapXmlTool()).execute(*args))
 
 fun debug(args: Array<String>): Int {
-    return (CommandLine(KorapXml2Conllu()).execute(*args))
+    return (CommandLine(KorapXmlTool()).execute(*args))
 }
 
 enum class OutputFormat {
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/MaltParserBridge.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/MaltParserBridge.kt
index 90883d0..d48e2e4 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/MaltParserBridge.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/MaltParserBridge.kt
@@ -30,7 +30,7 @@
     override fun tagSentence(
         sentenceTokens: MutableList<String>,
         sentenceTokenOffsets: MutableList<String>,
-        morpho: MutableMap<String, KorapXml2Conllu.MorphoSpan>?
+        morpho: MutableMap<String, KorapXmlTool.MorphoSpan>?
     ) {
         val result = tagger.parse(sentenceTokens.toTypedArray())
 
@@ -42,7 +42,7 @@
                 val rel = edge.toString().substringAfter("DEPREL:").trim()
                 val old = morpho?.get(sentenceTokenOffsets[head - 1])
                 morpho?.set(
-                    sentenceTokenOffsets[head - 1], KorapXml2Conllu.MorphoSpan(
+                    sentenceTokenOffsets[head - 1], KorapXmlTool.MorphoSpan(
                         lemma = old?.lemma, xpos = old?.xpos, feats = old?.feats, head = from.toString(), deprel = rel
                     )
                 )
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/MarmotBridge.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/MarmotBridge.kt
index b9caa5e..6626779 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/MarmotBridge.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/MarmotBridge.kt
@@ -21,13 +21,13 @@
     override fun tagSentence(
         sentenceTokens: MutableList<String>,
         sentenceTokenOffsets: MutableList<String>,
-        morphoMap: MutableMap<String, KorapXml2Conllu.MorphoSpan>?
+        morphoMap: MutableMap<String, KorapXmlTool.MorphoSpan>?
     ) {
         val sentence = Sentence(sentenceTokens.map { Word(it) })
         var result: List<List<String>>
         result = tagger.tag(sentence)  // LOGGER.info("Marmot tagger finished")// return
         for (i in 0 until result.size) {
-            val taggedWord = KorapXml2Conllu.MorphoSpan(
+            val taggedWord = KorapXmlTool.MorphoSpan(
                 xpos = result[i][0].split("|")[0], feats = result[i][1]
             )
             morphoMap?.set(sentenceTokenOffsets[i], taggedWord)
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/OpenNlpBridge.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/OpenNlpBridge.kt
index 694074e..ed435d1 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/OpenNlpBridge.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/OpenNlpBridge.kt
@@ -33,14 +33,14 @@
     override fun tagSentence(
         sentenceTokens: MutableList<String>,
         sentenceTokenOffsets: MutableList<String>,
-        morphoMap: MutableMap<String, KorapXml2Conllu.MorphoSpan>?
+        morphoMap: MutableMap<String, KorapXmlTool.MorphoSpan>?
     ) {
 
         // Perform POS tagging
         val result = tagger.tag(sentenceTokens.toTypedArray())
         val probs = tagger.probs()
         for (i in 0 until result.size) {
-            val taggedWord = KorapXml2Conllu.MorphoSpan(
+            val taggedWord = KorapXmlTool.MorphoSpan(
                 xpos = result[i],
                 misc = String.format(locale = Locale.ROOT, "%.5f", probs[i])
             )
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/ParserToolBridge.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/ParserToolBridge.kt
index ab79da1..2b8f1c6 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/ParserToolBridge.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/ParserToolBridge.kt
@@ -2,11 +2,11 @@
 
 abstract class ParserToolBridge : AnnotationToolBridge {
     fun parseText(
-        tokens: Array<KorapXml2Conllu.Span>,
-        morpho: MutableMap<String, KorapXml2Conllu.MorphoSpan>?,
-        sentenceSpans: Array<KorapXml2Conllu.Span>?,
+        tokens: Array<KorapXmlTool.Span>,
+        morpho: MutableMap<String, KorapXmlTool.MorphoSpan>?,
+        sentenceSpans: Array<KorapXmlTool.Span>?,
         text: NonBmpString
-    ): MutableMap<String, KorapXml2Conllu.MorphoSpan> {
+    ): MutableMap<String, KorapXmlTool.MorphoSpan> {
         val sentence_tokens = mutableListOf<String>()
         val sentence_token_offsets = mutableListOf<String>()
         var token_index = 1
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/TaggerToolBridge.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/TaggerToolBridge.kt
index 95a9315..34698d9 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/TaggerToolBridge.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/TaggerToolBridge.kt
@@ -3,11 +3,11 @@
 abstract class TaggerToolBridge : AnnotationToolBridge {
 
     fun tagText(
-        tokens: Array<KorapXml2Conllu.Span>, sentenceSpans: Array<KorapXml2Conllu.Span>?, text: NonBmpString
-    ): MutableMap<String, KorapXml2Conllu.MorphoSpan> {
+        tokens: Array<KorapXmlTool.Span>, sentenceSpans: Array<KorapXmlTool.Span>?, text: NonBmpString
+    ): MutableMap<String, KorapXmlTool.MorphoSpan> {
         val sentence_tokens = mutableListOf<String>()
         val sentence_token_offsets = mutableListOf<String>()
-        val morphoMap = mutableMapOf<String, KorapXml2Conllu.MorphoSpan>()
+        val morphoMap = mutableMapOf<String, KorapXmlTool.MorphoSpan>()
         var token_index = 0
         var sentence_index = 0
         tokens.forEach { span ->
diff --git a/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXml2ConlluTest.kt b/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXmlToolTest.kt
similarity index 99%
rename from app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXml2ConlluTest.kt
rename to app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXmlToolTest.kt
index 6794534..288f4e5 100644
--- a/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXml2ConlluTest.kt
+++ b/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXmlToolTest.kt
@@ -11,7 +11,7 @@
 import kotlin.test.assertFalse
 import kotlin.test.assertTrue
 
-class KorapXml2ConlluTest {
+class KorapXmlToolTest {
     private val outContent = ByteArrayOutputStream(10000000)
     private val errContent = ByteArrayOutputStream()
     private val originalOut: PrintStream = System.out
