diff --git a/lib/files/mount/mount.php b/lib/files/mount/mount.php
index 69b8285ab4c210fd7fbffbb761a2dba1a28320dd..d25a7b3be6ec5cfd9fa3badef1c081db1d1eeea3 100644
--- a/lib/files/mount/mount.php
+++ b/lib/files/mount/mount.php
@@ -22,6 +22,11 @@ class Mount {
 	private $arguments = array();
 	private $mountPoint;
 
+	/**
+	 * @var callable[] $storageWrappers
+	 */
+	private $storageWrappers = array();
+
 	/**
 	 * @param string|\OC\Files\Storage\Storage $storage
 	 * @param string $mountpoint
@@ -62,7 +67,7 @@ class Mount {
 	private function createStorage() {
 		if (class_exists($this->class)) {
 			try {
-				return new $this->class($this->arguments);
+				return $this->loadStorage($this->class, $this->arguments);
 			} catch (\Exception $exception) {
 				\OC_Log::write('core', $exception->getMessage(), \OC_Log::ERROR);
 				return null;
@@ -73,6 +78,25 @@ class Mount {
 		}
 	}
 
+	/**
+	 * allow modifier storage behaviour by adding wrappers around storages
+	 *
+	 * $callback should be a function of type (string $mountPoint, Storage $storage) => Storage
+	 *
+	 * @param callable $callback
+	 */
+	public function addStorageWrapper($callback) {
+		$this->storageWrappers[] = $callback;
+	}
+
+	private function loadStorage($class, $arguments) {
+		$storage = new $class($arguments);
+		foreach ($this->storageWrappers as $wrapper) {
+			$storage = $wrapper($this->mountPoint, $storage);
+		}
+		return $storage;
+	}
+
 	/**
 	 * @return \OC\Files\Storage\Storage
 	 */
diff --git a/lib/files/storage/loader.php b/lib/files/storage/loader.php
new file mode 100644
index 0000000000000000000000000000000000000000..7330cae4cc457160e1199ac06c2d846fcc98d069
--- /dev/null
+++ b/lib/files/storage/loader.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Storage;
+
+class Loader {
+	private function $wrappers
+
+	public function load($class, $arguments) {
+		return new $class($arguments);
+	}
+}