diff --git a/lib/user.php b/lib/user.php
index 549319b3a77b3962c6266a2a4e85ed50f995135d..e3c9c23effa1d566972e8deeaf4e41e1a7199b68 100644
--- a/lib/user.php
+++ b/lib/user.php
@@ -21,7 +21,7 @@
  */
 
 /**
- * This class provides wrapper methods for user management. Multiple backends are 
+ * This class provides wrapper methods for user management. Multiple backends are
  * supported. User management operations are delegated to the configured backend for
  * execution.
  *
@@ -83,7 +83,7 @@ class OC_User {
 	 * Set the User Authentication Module
 	 */
 	public static function useBackend( $backend = 'database' ){
-		if($backend instanceof OC_User_Backend){
+		if($backend instanceof OC_User_Interface){
 			self::$_usedBackends[get_class($backend)]=$backend;
 		}else{
 			// You'll never know what happens
diff --git a/lib/user/backend.php b/lib/user/backend.php
index be068a63ce093caa39afd2fd25c4d568cce6f3c9..daa942d261cfee852eddb24b1f7e6f661e7f4ec7 100644
--- a/lib/user/backend.php
+++ b/lib/user/backend.php
@@ -42,7 +42,7 @@ define('OC_USER_BACKEND_CHECK_PASSWORD',    0x000100);
  *
  * Subclass this for your own backends, and see OC_User_Example for descriptions
  */
-abstract class OC_User_Backend {
+abstract class OC_User_Backend implements OC_User_Interface {
 
 	protected $possibleActions = array(
 		OC_USER_BACKEND_CREATE_USER => 'createUser',
diff --git a/lib/user/interface.php b/lib/user/interface.php
new file mode 100644
index 0000000000000000000000000000000000000000..a04c761630b763551d973fc7c64066424de80d7b
--- /dev/null
+++ b/lib/user/interface.php
@@ -0,0 +1,69 @@
+<?php
+
+/**
+ * ownCloud - user interface
+ *
+ * @author Arthur Schiwon
+ * @copyright 2012 Arthur Schiwon blizzz@owncloud.org
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+interface OC_User_Interface {
+
+	/**
+	* @brief Get all supported actions
+	* @returns bitwise-or'ed actions
+	*
+	* Returns the supported actions as int to be
+	* compared with OC_USER_BACKEND_CREATE_USER etc.
+	*/
+	public function getSupportedActions();
+
+	/**
+	* @brief Check if backend implements actions
+	* @param $actions bitwise-or'ed actions
+	* @returns boolean
+	*
+	* Returns the supported actions as int to be
+	* compared with OC_USER_BACKEND_CREATE_USER etc.
+	*/
+	public function implementsActions($actions);
+
+	/**
+	* @brief delete a user
+	* @param $uid The username of the user to delete
+	* @returns true/false
+	*
+	* Deletes a user
+	*/
+	public function deleteUser($uid);
+
+	/**
+	* @brief Get a list of all users
+	* @returns array with all uids
+	*
+	* Get a list of all users.
+	*/
+	public function getUsers();
+
+	/**
+	* @brief check if a user exists
+	* @param string $uid the username
+	* @return boolean
+	*/
+	public function userExists($uid);
+
+}
\ No newline at end of file