diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php
index 4478a4e8a6cd47a61de766f8ea71105745d744c9..6d291321957a829f29d4bbdb8596a6bc61ca5e5c 100644
--- a/lib/public/iservercontainer.php
+++ b/lib/public/iservercontainer.php
@@ -62,6 +62,20 @@ interface IServerContainer {
 	 */
 	function getRootFolder();
 
+	/**
+	 * Returns a view to ownCloud's files folder
+	 *
+	 * @return \OCP\Files\Folder
+	 */
+	function getUserFolder();
+
+	/**
+	 * Returns an app-specific view in ownClouds data directory
+	 *
+	 * @return \OCP\Files\Folder
+	 */
+	function getAppFolder();
+
 	/**
 	 * Returns the user session
 	 *
diff --git a/lib/server.php b/lib/server.php
index 804af6b0eac7cfc9a170ba8c317dfcf32e211264..fccb8fad4d00b2d5fe6f31ae9cb29a32edc31a3b 100644
--- a/lib/server.php
+++ b/lib/server.php
@@ -148,6 +148,42 @@ class Server extends SimpleContainer implements IServerContainer {
 		return $this->query('RootFolder');
 	}
 
+	/**
+	 * Returns a view to ownCloud's files folder
+	 *
+	 * @return \OCP\Files\Folder
+	 */
+	function getUserFolder() {
+
+		$dir = '/files';
+		$root = $this->getRootFolder();
+		$folder = null;
+		if(!$root->nodeExists($dir)) {
+			$folder = $root->newFolder($dir);
+		} else {
+			$folder = $root->get($dir);
+		}
+		return $folder;
+	}
+
+	/**
+	 * Returns an app-specific view in ownClouds data directory
+	 *
+	 * @return \OCP\Files\Folder
+	 */
+	function getAppFolder() {
+
+		$dir = '/' . \OC_App::getCurrentApp();
+		$root = $this->getRootFolder();
+		$folder = null;
+		if(!$root->nodeExists($dir)) {
+			$folder = $root->newFolder($dir);
+		} else {
+			$folder = $root->get($dir);
+		}
+		return $folder;
+	}
+
 	/**
 	 * @return \OC\User\Manager
 	 */
@@ -175,6 +211,7 @@ class Server extends SimpleContainer implements IServerContainer {
 	function getConfig() {
 		return $this->query('AllConfig');
 	}
+
 	/**
 	 * Returns an ICache instance
 	 *