diff --git a/src/main/scala/de/tobias/playpad/server/server/Result.scala b/src/main/scala/de/tobias/playpad/server/server/Result.scala
new file mode 100644
index 0000000000000000000000000000000000000000..5483dd5c4c18c697bdd453f77e22149a4eb100ec
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/Result.scala
@@ -0,0 +1,16 @@
+package de.tobias.playpad.server.server
+
+/**
+  * Created by tobias on 16.02.17.
+  */
+class Result {
+
+	var status: Status.Value = _
+	var message: String = _
+
+	def this(status: Status.Value, message: String = "") {
+		this()
+		this.status = status
+		this.message = message
+	}
+}
diff --git a/src/main/scala/de/tobias/playpad/server/server/Status.scala b/src/main/scala/de/tobias/playpad/server/server/Status.scala
new file mode 100644
index 0000000000000000000000000000000000000000..2a44ddff8bfb2e24b0f8a5712029cab42681645e
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/Status.scala
@@ -0,0 +1,8 @@
+package de.tobias.playpad.server.server
+
+/**
+  * Created by tobias on 16.02.17.
+  */
+object Status extends Enumeration {
+	val OK, ERROR = Value
+}
diff --git a/src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala b/src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala
index 4fc8c5a90030f044de142b59ab479736f9ac2975..8082e431f802a278b4e0bacb135d1f494d8d43c1 100644
--- a/src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala
@@ -4,6 +4,7 @@ import java.sql.SQLException
 
 import com.j256.ormlite.dao.Dao
 import de.tobias.playpad.server.account.Account
+import de.tobias.playpad.server.server.{Result, Status}
 import spark.{Request, Response, Route, Spark}
 
 /**
@@ -19,10 +20,10 @@ class AccountPost(accountDao: Dao[Account, Int]) extends Route {
 		try {
 			accountDao.create(account)
 		} catch {
-			case e: SQLException => Spark.halt(409, "username not allowed")
+			case e: SQLException => return new Result(Status.ERROR)
 		}
 
-		"created"
+		new Result(Status.OK, "created")
 	}
 
 }
diff --git a/src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala b/src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala
index a40fd229db6e2a912237fe5092344716d090b72b..d8e7b635942a587c74e898d0358d52f9d5146e8c 100644
--- a/src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala
@@ -1,7 +1,10 @@
 package de.tobias.playpad.server.server.account
 
+import java.sql.SQLException
+
 import com.j256.ormlite.dao.Dao
 import de.tobias.playpad.server.account.Account
+import de.tobias.playpad.server.server.{Result, Status}
 import spark.{Request, Response, Route}
 
 /**
@@ -23,13 +26,14 @@ class AccountPut(accountDao: Dao[Account, Int]) extends Route {
 				if (account.password.equals(oldPassword)) {
 					account.password = newPassword
 					accountDao.update(account)
+					return new Result(Status.OK)
 				}
 			}
 		} catch {
-			case e: Exception => e.printStackTrace()
+			case e: SQLException => return new Result(Status.ERROR)
 		}
 
-		""
+		new Result(Status.ERROR)
 	}
 
 }
diff --git a/src/main/scala/de/tobias/playpad/server/server/account/SessionDelete.scala b/src/main/scala/de/tobias/playpad/server/server/account/SessionDelete.scala
index c3bd25e482dfe233eaf63439a5bf46a1b8749f9c..69fd68d49a84b63b8cc1261551dc0f0c3f78d25b 100644
--- a/src/main/scala/de/tobias/playpad/server/server/account/SessionDelete.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/account/SessionDelete.scala
@@ -1,7 +1,8 @@
 package de.tobias.playpad.server.server.account
 
 import com.j256.ormlite.dao.Dao
-import de.tobias.playpad.server.account.{Account, Session}
+import de.tobias.playpad.server.account.Account
+import de.tobias.playpad.server.server.{Result, Status}
 import spark.{Request, Response, Route}
 
 /**
@@ -21,11 +22,11 @@ class SessionDelete(accountDao: Dao[Account, Int]) extends Route {
 			if (account.password.equals(password)) {
 				account.sessions.removeIf(s => s.key.equals(key))
 				accountDao.update(account)
-				return "deleted"
+				return new Result(Status.OK, "deleted")
 			}
 		}
 
-		null
+		new Result(Status.ERROR)
 	}
 
 }
diff --git a/src/main/scala/de/tobias/playpad/server/server/account/SessionGet.scala b/src/main/scala/de/tobias/playpad/server/server/account/SessionGet.scala
index 6a9518565a7036e27091a1c6dfbc9221a63c6214..24849960815b6cc081c8dbeaca84a0883f65fbce 100644
--- a/src/main/scala/de/tobias/playpad/server/server/account/SessionGet.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/account/SessionGet.scala
@@ -2,7 +2,8 @@ package de.tobias.playpad.server.server.account
 
 import com.google.gson.{JsonArray, JsonObject}
 import com.j256.ormlite.dao.Dao
-import de.tobias.playpad.server.account.{Account, Session}
+import de.tobias.playpad.server.account.Account
+import de.tobias.playpad.server.server.{Result, Status}
 import spark.{Request, Response, Route}
 
 /**
@@ -31,7 +32,7 @@ class SessionGet(accountDao: Dao[Account, Int]) extends Route {
 			}
 		}
 
-		null
+		new Result(Status.ERROR)
 	}
 
 }
diff --git a/src/main/scala/de/tobias/playpad/server/server/account/SessionPost.scala b/src/main/scala/de/tobias/playpad/server/server/account/SessionPost.scala
index 3d693836bb088335e0bd3ece720ff43df1ac833a..4b3fe88ff8ff6eaa7d9cc9ba43cd6bc336101b21 100644
--- a/src/main/scala/de/tobias/playpad/server/server/account/SessionPost.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/account/SessionPost.scala
@@ -2,6 +2,7 @@ package de.tobias.playpad.server.server.account
 
 import com.j256.ormlite.dao.Dao
 import de.tobias.playpad.server.account.{Account, Session}
+import de.tobias.playpad.server.server.{Result, Status}
 import spark.{Request, Response, Route}
 
 /**
@@ -24,11 +25,24 @@ class SessionPost(accountDao: Dao[Account, Int]) extends Route {
 
 				account.sessions.add(session)
 				accountDao.update(account)
-				return randomKey
+				return new SessionPostResult(Status.OK, randomKey)
 			}
 		}
 
-		null
+		new Result(Status.ERROR)
+	}
+
+	private class SessionPostResult {
+		var status: Status.Value = _
+		var message: String = _
+		var key: String = _
+
+		def this(status: Status.Value, key: String, message: String = "") {
+			this()
+			this.status = status
+			this.message = message
+			this.key = key
+		}
 	}
 
 }
diff --git a/src/main/scala/de/tobias/playpad/server/server/plugin/PluginGet.scala b/src/main/scala/de/tobias/playpad/server/server/plugin/PluginGet.scala
index 075adc7dd5cee802d9c42855b50b4cafdd160048..c222880949bd818c1ca5e6d96dd55681895a04d4 100644
--- a/src/main/scala/de/tobias/playpad/server/server/plugin/PluginGet.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/plugin/PluginGet.scala
@@ -3,6 +3,7 @@ package de.tobias.playpad.server.server.plugin
 import com.google.gson.Gson
 import com.j256.ormlite.dao.Dao
 import de.tobias.playpad.server.plugin.Plugin
+import de.tobias.playpad.server.server.{Result, Status}
 import spark.{Request, Response, Route, Spark}
 
 /**
@@ -15,7 +16,7 @@ class PluginGet(dao: Dao[Plugin, Int]) extends Route {
 	override def handle(request: Request, response: Response): AnyRef = {
 		val plugin = dao.queryForId(request.params(":id").toInt)
 		if (plugin == null) {
-			Spark.halt(400, "Bad request")
+			return new Result(Status.ERROR, "Bad request")
 		}
 		plugin
 	}