diff --git a/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt b/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt
index 78b389d..df7c6d8 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/Sample.kt
@@ -10,12 +10,12 @@ import de.pheerai.rcdbquery.dataMappings.vendor.Vendor.*
 import de.pheerai.rcdbquery.dataMappings.vendor.vendors
 import de.pheerai.rcdbquery.dsl.rcdbQuery
 
-fun main() {
+public fun main() {
     println(generateNameQueryUrl())
     println(generatePageQueryUrl())
 }
 
-fun generateNameQueryUrl() = rcdbQuery {
+private fun generateNameQueryUrl() = rcdbQuery {
     searchType(SearchType.COASTER)
     searchTerm("Dragon")
     vendors {
@@ -29,7 +29,7 @@ fun generateNameQueryUrl() = rcdbQuery {
     }
 }
 
-fun generatePageQueryUrl() = rcdbQuery {
+private fun generatePageQueryUrl() = rcdbQuery {
     page(3)
     searchType(SearchType.COASTER)
     vendors {
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/Category.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/Category.kt
index 89ed396..810a0fb 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/Category.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/Category.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.category
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable
 
-enum class Category(
+public enum class Category(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long
@@ -38,7 +38,7 @@ enum class Category(
 
     constructor(name: String, paramValue: Long) : this(name, name, paramValue)
 
-    companion object : StringGeneratable<Category> {
+    internal companion object : StringGeneratable<Category> {
         override val paramKey = "ca"
         override fun of(input: String): Category? = when (input) {
             "4th Dimension" -> FOURTH_DIMENSION
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt
index 9571d0f..dc2c7cd 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/CategoryBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.category
 
 import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder
 
-class CategoryBuilder : MultiParamBuilder<Long, Category>() {
+internal class CategoryBuilder : MultiParamBuilder<Long, Category>() {
     override fun add(param: Category): CategoryBuilder {
         super.add(param)
         return this
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt
index 323cbcc..fa4c50c 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/category/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.category
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.category(body: CategoryBuilder.() -> CategoryBuilder): ParamsCollector {
+private fun ParamsCollector.category(body: CategoryBuilder.() -> CategoryBuilder): ParamsCollector {
     val builder = CategoryBuilder()
     builder.body()
     this[Category.paramKey] = builder.build()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt
index 6d471b9..d10511e 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/Classification.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.classification
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable
 
-enum class Classification(
+internal enum class Classification(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt
index 9b8328b..93545b2 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/ClassificationBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.classification
 
 import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder
 
-class ClassificationBuilder : MultiParamBuilder<Long, Classification>() {
+internal class ClassificationBuilder : MultiParamBuilder<Long, Classification>() {
     override fun add(param: Classification): ClassificationBuilder {
         super.add(param)
         return this
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt
index 14d7410..bb75f92 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/classification/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.classification
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.classification(body: ClassificationBuilder.() -> ClassificationBuilder): ParamsCollector {
+private fun ParamsCollector.classification(body: ClassificationBuilder.() -> ClassificationBuilder): ParamsCollector {
     val builder = ClassificationBuilder()
     builder.body()
     this[Classification.paramKey] = builder.build()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt
index 2ac4369..ebb322d 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/Design.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.design
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable
 
-enum class Design(
+internal enum class Design(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt
index 237130d..99f1e86 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/DesignBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.design
 
 import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder
 
-class DesignBuilder : MultiParamBuilder<Long, Design>() {
+internal class DesignBuilder : MultiParamBuilder<Long, Design>() {
     override fun add(param: Design): DesignBuilder {
         super.add(param)
         return this
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt
index e94d32c..e6df028 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/design/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.design
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.design(body: DesignBuilder.() -> DesignBuilder): ParamsCollector {
+private fun ParamsCollector.design(body: DesignBuilder.() -> DesignBuilder): ParamsCollector {
     val builder = DesignBuilder()
     builder.body()
     this[Design.paramKey] = builder.build()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt
index e1cbe56..c496efe 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt
@@ -1,6 +1,6 @@
 package de.pheerai.rcdbquery.dataMappings.internal
 
-abstract class MultiParamBuilder<out U : Any, T : RcdbParamOption<U>> {
+internal abstract class MultiParamBuilder<out U : Any, T : RcdbParamOption<U>> {
     private val paramList: MutableList<T> = mutableListOf()
 
     open fun add(param: T): MultiParamBuilder<U, T> {
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/ParamKey.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/ParamKey.kt
index 2e32fc6..205978d 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/ParamKey.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/ParamKey.kt
@@ -1,5 +1,5 @@
 package de.pheerai.rcdbquery.dataMappings.internal
 
-interface ParamKey {
+internal interface ParamKey {
     val paramKey: String
 }
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbItem.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbItem.kt
index 575408f..913bb42 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbItem.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbItem.kt
@@ -1,6 +1,6 @@
 package de.pheerai.rcdbquery.dataMappings.internal
 
-interface RcdbItem {
+internal interface RcdbItem {
     val url: String
         get() ="https://www.rcdb.com/${id}.htm"
     val id: Long
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt
index 98f1ed6..bd63d3b 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RcdbParamOption.kt
@@ -1,6 +1,6 @@
 package de.pheerai.rcdbquery.dataMappings.internal
 
-interface RcdbParamOption<out T> {
+internal interface RcdbParamOption<out T> {
     val prettyName: String
     val fullName: String
     val paramValue: T
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RelevantForAll.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RelevantForAll.kt
index fdd6d7c..a744af0 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RelevantForAll.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/RelevantForAll.kt
@@ -1,5 +1,5 @@
 package de.pheerai.rcdbquery.dataMappings.internal
 
-interface RelevantForAll {
+internal interface RelevantForAll {
     val relevantForAll: Boolean
 }
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/StringGeneratable.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/StringGeneratable.kt
index 56762a5..071fd22 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/StringGeneratable.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/StringGeneratable.kt
@@ -1,5 +1,5 @@
 package de.pheerai.rcdbquery.dataMappings.internal
 
-interface StringGeneratable<T>: ParamKey {
+internal interface StringGeneratable<T>: ParamKey {
     fun of(input: String): T?
 }
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt
index f6bf566..3714457 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/Layout.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.layout
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable
 
-enum class Layout(
+internal enum class Layout(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt
index 6f75765..ca24477 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/LayoutBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.layout
 
 import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder
 
-class LayoutBuilder : MultiParamBuilder<Long, Layout>() {
+internal class LayoutBuilder : MultiParamBuilder<Long, Layout>() {
     override fun add(param: Layout): LayoutBuilder {
         super.add(param)
         return this
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt
index 611b9e2..f0bc40a 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/layout/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.layout
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.layout(body: LayoutBuilder.() -> LayoutBuilder): ParamsCollector {
+private fun ParamsCollector.layout(body: LayoutBuilder.() -> LayoutBuilder): ParamsCollector {
     val builder = LayoutBuilder()
     with(Layout) {
         builder.body()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt
index fee5bdf..9125f3f 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/Order.kt
@@ -3,14 +3,13 @@ package de.pheerai.rcdbquery.dataMappings.order
 import de.pheerai.rcdbquery.dataMappings.internal.ParamKey
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.internal.RelevantForAll
-import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable
 
 @Suppress("unused")
-enum class Order(
+internal enum class Order(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long,
-    override val relevantForAll: Boolean = true
+    override val relevantForAll: Boolean = true,
 ) : RcdbParamOption<Long>,
     RelevantForAll {
     IMAGES("Images", "Amount of Images", 0),
@@ -50,7 +49,7 @@ enum class Order(
 
     constructor(name: String, paramId: Long) : this(name, name, paramId)
 
-    companion object: ParamKey {
+    companion object : ParamKey {
         override val paramKey = "order"
     }
 }
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt
index 79570f2..cbfcdf9 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/OrderBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.order
 
 import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder
 
-class OrderBuilder : MultiParamBuilder<Long, Order>() {
+internal class OrderBuilder : MultiParamBuilder<Long, Order>() {
     override fun add(param: Order): OrderBuilder {
         super.add(param)
         return this
@@ -18,6 +18,6 @@ class OrderBuilder : MultiParamBuilder<Long, Order>() {
         return this
     }
 
-    override fun Order.invoke() = add(this)
+    override operator fun Order.invoke() = add(this)
     fun allRelevant() = this.addAll(Order.values().filter { it.relevantForAll })
 }
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt
index 2c205ee..719d0b3 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/order/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.order
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.sortBy(body: OrderBuilder.() -> OrderBuilder): ParamsCollector {
+internal fun ParamsCollector.sortBy(body: OrderBuilder.() -> OrderBuilder): ParamsCollector {
     val builder = OrderBuilder()
     builder.body()
     this[Order.paramKey] = builder.build()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/Page.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/Page.kt
index d54ba1b..b686b42 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/Page.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/Page.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.page
 import de.pheerai.rcdbquery.dataMappings.internal.ParamKey
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 
-class Page(override val paramValue: Long) :
+internal class Page(override val paramValue: Long) :
     RcdbParamOption<Long> {
     override val fullName = "The page to show"
     override val prettyName = "Page"
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt
index 4cf3d14..fbe5a3b 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/page/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.page
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.page(page: Long) = also {
+internal fun ParamsCollector.page(page: Long) = also {
     this[Page.paramKey] =
         Page(page)
 }
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/SearchTerm.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/SearchTerm.kt
index 37e4694..13f631f 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/SearchTerm.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/SearchTerm.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.searchTerm
 import de.pheerai.rcdbquery.dataMappings.internal.ParamKey
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 
-class SearchTerm(override val paramValue: String) :
+internal class SearchTerm(override val paramValue: String) :
     RcdbParamOption<String> {
     override val prettyName = "Search Term"
     override val fullName = "Search for elements whose name contain this term"
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt
index ab3d49f..130dc5b 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchTerm/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.searchTerm
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.searchTerm(term: String) = also {
+internal fun ParamsCollector.searchTerm(term: String) = also {
     it[SearchTerm.paramKey] = listOf(
         SearchTerm(term)
     )
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt
index 3ef74f4..35234dd 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/SearchType.kt
@@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.ParamKey
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 
 @Suppress("unused")
-enum class SearchType(
+internal enum class SearchType(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt
index 08fb494..2630b1b 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/searchType/paramBuilder.kt
@@ -2,6 +2,6 @@ package de.pheerai.rcdbquery.dataMappings.searchType
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.searchType(searchType: SearchType) = also {
+internal fun ParamsCollector.searchType(searchType: SearchType) = also {
     it[SearchType.paramKey] = searchType
 }
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/StartsWith.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/StartsWith.kt
index 42eb629..ba2382c 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/StartsWith.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/StartsWith.kt
@@ -5,7 +5,7 @@ package de.pheerai.rcdbquery.dataMappings.startsWith
 import de.pheerai.rcdbquery.dataMappings.internal.ParamKey
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 
-class StartsWith(override val paramValue: String) :
+internal class StartsWith(override val paramValue: String) :
     RcdbParamOption<String> {
     override val prettyName = "Starts with"
     override val fullName = "Name starting with term"
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt
index f23422a..ef3b914 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/startsWith/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.startsWith
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.startsWith(term: String) = also {
+internal fun ParamsCollector.startsWith(term: String) = also {
     this[StartsWith.paramKey] =
         StartsWith(term)
 }
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt
index 8462287..1fd4911 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/Status.kt
@@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable
 
 @Suppress("unused")
-enum class Status(
+internal enum class Status(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt
index 752da5b..ad27919 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/StatusBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.status
 
 import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder
 
-class StatusBuilder : MultiParamBuilder<Long, Status>() {
+internal class StatusBuilder : MultiParamBuilder<Long, Status>() {
     override fun add(param: Status): StatusBuilder {
         super.add(param)
         return this
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt
index 7fd8830..582f40b 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/status/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.status
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.status(body: StatusBuilder.() -> StatusBuilder): ParamsCollector {
+private fun ParamsCollector.status(body: StatusBuilder.() -> StatusBuilder): ParamsCollector {
     val builder = StatusBuilder()
     builder.body()
     this[Status.paramKey] = builder.build()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt
index 940ec2b..e7cbd62 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/Thrill.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.thrill
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable
 
-enum class Thrill(
+internal enum class Thrill(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt
index 7dab9e9..5ab3de9 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/ThrillBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.thrill
 
 import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder
 
-class ThrillBuilder : MultiParamBuilder<Long, Thrill>() {
+internal class ThrillBuilder : MultiParamBuilder<Long, Thrill>() {
     override fun add(param: Thrill): ThrillBuilder {
         super.add(param)
         return this
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt
index da3ba1b..5e20ffe 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/thrill/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.thrill
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.thrill(body: ThrillBuilder.() -> ThrillBuilder): ParamsCollector {
+private fun ParamsCollector.thrill(body: ThrillBuilder.() -> ThrillBuilder): ParamsCollector {
     val builder = ThrillBuilder()
     builder.body()
     this[Thrill.paramKey] = builder.build()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt
index 620c801..033f638 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/Type.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.type
 import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable
 
-enum class Type(
+internal enum class Type(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt
index fd0fccd..570ac1b 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/TypeBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.type
 
 import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder
 
-class TypeBuilder : MultiParamBuilder<Long, Type>() {
+internal class TypeBuilder : MultiParamBuilder<Long, Type>() {
     override fun add(param: Type): TypeBuilder {
         super.add(param)
         return this
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt
index db509eb..e961ba5 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/type/paramBuilder.kt
@@ -2,7 +2,7 @@ package de.pheerai.rcdbquery.dataMappings.type
 
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-fun ParamsCollector.type(body: TypeBuilder.() -> TypeBuilder): ParamsCollector {
+private fun ParamsCollector.type(body: TypeBuilder.() -> TypeBuilder): ParamsCollector {
     val builder = TypeBuilder()
     builder.body()
     this[Type.paramKey] = builder.build()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt
index fe72e91..adc2ce4 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/unknownParams.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings
 import de.pheerai.rcdbquery.dataMappings.order.Order
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
-const val EXTRA_COLUMNS_ERROR_MESSAGE =
+public const val EXTRA_COLUMNS_ERROR_MESSAGE: String =
     "The parameter for extra columns has not yet been discovered (if it even exists). Use multiple values in the `sortBy` param instead (first values take sorting precedence)"
 
 @Suppress("unused")
@@ -11,7 +11,7 @@ const val EXTRA_COLUMNS_ERROR_MESSAGE =
     EXTRA_COLUMNS_ERROR_MESSAGE,
     ReplaceWith("sortBy"), DeprecationLevel.ERROR
 )
-fun ParamsCollector.extraColumns(orders: List<Order>): Nothing =
+internal fun ParamsCollector.extraColumns(orders: List<Order>): Nothing =
     error(EXTRA_COLUMNS_ERROR_MESSAGE)
 
 @Suppress("unused")
@@ -19,5 +19,5 @@ fun ParamsCollector.extraColumns(orders: List<Order>): Nothing =
     EXTRA_COLUMNS_ERROR_MESSAGE,
     ReplaceWith("sortBy"), DeprecationLevel.ERROR
 )
-fun ParamsCollector.extraColumns(vararg orders: Order): Nothing =
+internal fun ParamsCollector.extraColumns(vararg orders: Order): Nothing =
     error(EXTRA_COLUMNS_ERROR_MESSAGE)
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt
index c53ebbe..9f4694f 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/Vendor.kt
@@ -5,7 +5,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.internal.StringGeneratable
 
 @Suppress("unused")
-enum class Vendor(
+internal enum class Vendor(
     override val prettyName: String,
     override val fullName: String,
     override val paramValue: Long,
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt
index 5a8986e..852797c 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/VendorBuilder.kt
@@ -2,11 +2,11 @@ package de.pheerai.rcdbquery.dataMappings.vendor
 
 import de.pheerai.rcdbquery.dataMappings.internal.MultiParamBuilder
 
-class VendorBuilder : MultiParamBuilder<Long, Vendor>() {
+internal class VendorBuilder : MultiParamBuilder<Long, Vendor>() {
     override fun add(param: Vendor): VendorBuilder {
         super.add(param)
         return this
     }
 
-    override fun Vendor.invoke() = add(this)
+    override operator fun Vendor.invoke() = add(this)
 }
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt
index 5a36515..3aca8f2 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/vendor/paramBuilder.kt
@@ -3,7 +3,7 @@ package de.pheerai.rcdbquery.dataMappings.vendor
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 
 // TODO: Try to generify. This is currently lacking some sort of "This interface requires a companion implementing that interface"
-fun ParamsCollector.vendors(body: VendorBuilder.() -> VendorBuilder): ParamsCollector {
+internal fun ParamsCollector.vendors(body: VendorBuilder.() -> VendorBuilder): ParamsCollector {
     val builder = VendorBuilder()
     builder.body()
     this[Vendor.paramKey] = builder.build()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt
index cf591a0..90e3bba 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Collector.kt
@@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dataMappings.internal.RcdbParamOption
 import de.pheerai.rcdbquery.dataMappings.searchType.SearchType
 import de.pheerai.rcdbquery.dsl.RcdbParams
 
-class ParamsCollector {
+internal class ParamsCollector {
     private val multiParams: MutableMap<String, List<RcdbParamOption<Any>>> = mutableMapOf()
     private val singleParams: MutableMap<String, RcdbParamOption<Any>> = mutableMapOf()
 
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt
index b144c14..df5f03e 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/Params.kt
@@ -1,8 +1,8 @@
 package de.pheerai.rcdbquery.dsl.params
 
-sealed class BaseParams<T> {
+internal sealed class BaseParams<T> {
     abstract val params: Map<String, T>
 }
 
-class MultiParams(override val params: Map<String, List<String>>) : BaseParams<List<String>>()
-class SingleParams(override val params: Map<String, String>) : BaseParams<String>()
+internal class MultiParams(override val params: Map<String, List<String>>) : BaseParams<List<String>>()
+internal class SingleParams(override val params: Map<String, String>) : BaseParams<String>()
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt
index f3c485d..f832174 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/params/exceptions.kt
@@ -1,3 +1,3 @@
 package de.pheerai.rcdbquery.dsl.params
 
-class ParamAlreadySetException(message: String) : IllegalArgumentException(message)
+internal class ParamAlreadySetException(message: String) : IllegalArgumentException(message)
diff --git a/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt b/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt
index 31a5217..83f799e 100644
--- a/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt
+++ b/src/main/kotlin/de/pheerai/rcdbquery/dsl/rcdbQueryDsl.kt
@@ -4,7 +4,7 @@ import de.pheerai.rcdbquery.dsl.params.MultiParams
 import de.pheerai.rcdbquery.dsl.params.ParamsCollector
 import de.pheerai.rcdbquery.dsl.params.SingleParams
 
-data class RcdbParams(
+internal data class RcdbParams(
     val multiParams: MultiParams,
     val singleParams: SingleParams,
 ) {
@@ -24,10 +24,10 @@ data class RcdbParams(
     }
 }
 
-fun rcdbQuery(body: ParamsCollector.() -> ParamsCollector) =
+internal fun rcdbQuery(body: ParamsCollector.() -> ParamsCollector) =
     RcdbUrlQuery("https://www.rcdb.com/r.htm?", rcdbQueryParams(body)).toString()
 
-data class RcdbUrlQuery(val baseUrl: String, val params: RcdbParams) {
+private data class RcdbUrlQuery(val baseUrl: String, val params: RcdbParams) {
     override fun toString(): String {
         return params.toStrings()
             .joinToString(prefix = baseUrl, separator = "&")
@@ -37,7 +37,7 @@ data class RcdbUrlQuery(val baseUrl: String, val params: RcdbParams) {
 /**
  * Builder for the parameters only (mainly because it might be possilbe in the future to have an API with a POST search object?
  */
-fun rcdbQueryParams(body: ParamsCollector.() -> ParamsCollector): RcdbParams {
+private fun rcdbQueryParams(body: ParamsCollector.() -> ParamsCollector): RcdbParams {
     val builder = ParamsCollector()
     builder.body()
     return builder.build()
diff --git a/src/main/kotlin/module-info.java b/src/main/kotlin/module-info.java
index 94ec0e1..fe982a7 100644
--- a/src/main/kotlin/module-info.java
+++ b/src/main/kotlin/module-info.java
@@ -1,6 +1,7 @@
 module rcdbquery.main {
     exports de.pheerai.rcdbquery.dataMappings.category;
     exports de.pheerai.rcdbquery.dataMappings.classification;
+    exports de.pheerai.rcdbquery.dataMappings;
     exports de.pheerai.rcdbquery.dataMappings.design;
     exports de.pheerai.rcdbquery.dataMappings.layout;
     exports de.pheerai.rcdbquery.dataMappings.order;
@@ -16,4 +17,5 @@ module rcdbquery.main {
     exports de.pheerai.rcdbquery.dsl.params;
 
     requires kotlin.stdlib;
+    requires java.base;
 }