diff --git a/oauth2-server-json/pom.xml b/oauth2-server-json/pom.xml
new file mode 100644
index 0000000..07917c0
--- /dev/null
+++ b/oauth2-server-json/pom.xml
@@ -0,0 +1,58 @@
+
+
+
+ kotlin-oauth2-server
+ nl.myndocs
+ 0.1.1
+
+ 4.0.0
+
+ oauth2-server-json
+
+
+
+ com.google.code.gson
+ gson
+ 2.8.5
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.1.1
+
+ true
+
+
+ com.google.code.gson:*
+
+
+
+
+ com.google.gson
+ nl.myndocs.oauth2.shaded.com.google.gson
+
+
+ true
+
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/oauth2-server-sparkjava/src/main/java/nl/myndocs/oauth2/sparkjava/json/JsonMapper.kt b/oauth2-server-json/src/main/java/nl/myndocs/oauth2/json/JsonMapper.kt
similarity index 76%
rename from oauth2-server-sparkjava/src/main/java/nl/myndocs/oauth2/sparkjava/json/JsonMapper.kt
rename to oauth2-server-json/src/main/java/nl/myndocs/oauth2/json/JsonMapper.kt
index 5286b4e..30c4882 100644
--- a/oauth2-server-sparkjava/src/main/java/nl/myndocs/oauth2/sparkjava/json/JsonMapper.kt
+++ b/oauth2-server-json/src/main/java/nl/myndocs/oauth2/json/JsonMapper.kt
@@ -1,4 +1,4 @@
-package nl.myndocs.oauth2.sparkjava.json
+package nl.myndocs.oauth2.json
import com.google.gson.Gson
diff --git a/oauth2-server-ktor/pom.xml b/oauth2-server-ktor/pom.xml
index b51b93b..68be8a6 100644
--- a/oauth2-server-ktor/pom.xml
+++ b/oauth2-server-ktor/pom.xml
@@ -31,10 +31,10 @@
provided
- com.google.code.gson
- gson
- 2.8.5
- provided
+ nl.myndocs
+ oauth2-server-json
+ ${project.version}
+ shaded
diff --git a/oauth2-server-ktor/src/main/java/nl/myndocs/oauth2/ktor/feature/json/JsonMapper.kt b/oauth2-server-ktor/src/main/java/nl/myndocs/oauth2/ktor/feature/json/JsonMapper.kt
deleted file mode 100644
index ef1f113..0000000
--- a/oauth2-server-ktor/src/main/java/nl/myndocs/oauth2/ktor/feature/json/JsonMapper.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package nl.myndocs.oauth2.ktor.feature.json
-
-import com.google.gson.Gson
-
-object JsonMapper {
- private val gson = Gson()
-
- fun toJson(content: Any) = gson.toJson(content)
-}
\ No newline at end of file
diff --git a/oauth2-server-ktor/src/main/java/nl/myndocs/oauth2/ktor/feature/request/KtorCallContext.kt b/oauth2-server-ktor/src/main/java/nl/myndocs/oauth2/ktor/feature/request/KtorCallContext.kt
index f117158..301495a 100644
--- a/oauth2-server-ktor/src/main/java/nl/myndocs/oauth2/ktor/feature/request/KtorCallContext.kt
+++ b/oauth2-server-ktor/src/main/java/nl/myndocs/oauth2/ktor/feature/request/KtorCallContext.kt
@@ -11,7 +11,7 @@ import io.ktor.response.respondRedirect
import io.ktor.response.respondText
import io.ktor.util.toMap
import kotlinx.coroutines.experimental.runBlocking
-import nl.myndocs.oauth2.ktor.feature.json.JsonMapper
+import nl.myndocs.oauth2.json.JsonMapper
import nl.myndocs.oauth2.request.CallContext
class KtorCallContext(val applicationCall: ApplicationCall) : CallContext {
diff --git a/oauth2-server-sparkjava/pom.xml b/oauth2-server-sparkjava/pom.xml
index f9fb865..7da8316 100644
--- a/oauth2-server-sparkjava/pom.xml
+++ b/oauth2-server-sparkjava/pom.xml
@@ -25,10 +25,10 @@
provided
- com.google.code.gson
- gson
- 2.8.5
- provided
+ nl.myndocs
+ oauth2-server-json
+ ${project.version}
+ shaded
\ No newline at end of file
diff --git a/oauth2-server-sparkjava/src/main/java/nl/myndocs/oauth2/sparkjava/request/SparkjavaCallContext.kt b/oauth2-server-sparkjava/src/main/java/nl/myndocs/oauth2/sparkjava/request/SparkjavaCallContext.kt
index f47d713..ec77dc1 100644
--- a/oauth2-server-sparkjava/src/main/java/nl/myndocs/oauth2/sparkjava/request/SparkjavaCallContext.kt
+++ b/oauth2-server-sparkjava/src/main/java/nl/myndocs/oauth2/sparkjava/request/SparkjavaCallContext.kt
@@ -1,7 +1,7 @@
package nl.myndocs.oauth2.sparkjava.request
+import nl.myndocs.oauth2.json.JsonMapper
import nl.myndocs.oauth2.request.CallContext
-import nl.myndocs.oauth2.sparkjava.json.JsonMapper
import spark.Request
import spark.Response
diff --git a/pom.xml b/pom.xml
index f730b09..6c4afd6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,7 @@
oauth2-server-core
+ oauth2-server-json
oauth2-server-ktor
oauth2-server-client-inmemory
oauth2-server-identity-inmemory