diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index e4bfcb4e9eebf0c0ab9eb9a01d0a485572a705e5..aa5a2f8c68a1fb54fbb14b2b3adc7e768d8e332c 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -8,6 +8,8 @@
 
 namespace OCA\Files;
 
+use OCP\Files\FileInfo;
+
 /**
  * Helper class for manipulating file information
  */
@@ -58,7 +60,7 @@ class Helper
 	 * @param \OCP\Files\FileInfo $b file
 	 * @return int -1 if $a must come before $b, 1 otherwise
 	 */
-	public static function compareFileNames($a, $b) {
+	public static function compareFileNames(FileInfo $a, FileInfo $b) {
 		$aType = $a->getType();
 		$bType = $b->getType();
 		if ($aType === 'dir' and $bType !== 'dir') {
@@ -77,7 +79,7 @@ class Helper
 	 * @param \OCP\Files\FileInfo $b file
 	 * @return int -1 if $a must come before $b, 1 otherwise
 	 */
-	public static function compareTimestamp($a, $b) {
+	public static function compareTimestamp(FileInfo $a, FileInfo $b) {
 		$aTime = $a->getMTime();
 		$bTime = $b->getMTime();
 		return $aTime - $bTime;
@@ -90,7 +92,7 @@ class Helper
 	 * @param \OCP\Files\FileInfo $b file
 	 * @return int -1 if $a must come before $b, 1 otherwise
 	 */
-	public static function compareSize($a, $b) {
+	public static function compareSize(FileInfo $a, FileInfo $b) {
 		$aSize = $a->getSize();
 		$bSize = $b->getSize();
 		return ($aSize < $bSize) ? -1 : 1;
@@ -102,7 +104,7 @@ class Helper
 	 * @param \OCP\Files\FileInfo $i
 	 * @return array formatted file info
 	 */
-	public static function formatFileInfo($i) {
+	public static function formatFileInfo(FileInfo $i) {
 		$entry = array();
 
 		$entry['id'] = $i['fileid'];
@@ -147,6 +149,7 @@ class Helper
 	/**
 	 * Format file info for JSON
 	 * @param \OCP\Files\FileInfo[] $fileInfos file infos
+	 * @return array
 	 */
 	public static function formatFileInfos($fileInfos) {
 		$files = array();
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index 6f4eb4aaf3befb87be669a89c9d9a58a3332f520..53c380ab2b38d5fc6543bf2999418d184a42e69b 100644
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -89,7 +89,7 @@ class Helper {
 	 * @param string $password
 	 * @return bool
 	 */
-	public static function setupUser($util, $password) {
+	public static function setupUser(Util $util, $password) {
 		// Check files_encryption infrastructure is ready for action
 		if (!$util->ready()) {
 
@@ -333,7 +333,7 @@ class Helper {
 	 * @param string $path
 	 * @param \OC\Files\View $view
 	 */
-	public static function mkdirr($path, $view) {
+	public static function mkdirr($path, \OC\Files\View $view) {
 		$dirname = \OC\Files\Filesystem::normalizePath(dirname($path));
 		$dirParts = explode('/', $dirname);
 		$dir = "";
@@ -348,8 +348,10 @@ class Helper {
 	/**
 	 * redirect to a error page
 	 * @param Session $session
+	 * @param int|null $errorCode
+	 * @throws \Exception
 	 */
-	public static function redirectToErrorPage($session, $errorCode = null) {
+	public static function redirectToErrorPage(Session $session, $errorCode = null) {
 
 		if ($errorCode === null) {
 			$init = $session->getInitialized();
@@ -439,7 +441,7 @@ class Helper {
 	 * @param \OC\Files\View $rootView root view, relative to data/
 	 * @return array list of share key files, path relative to data/$user
 	 */
-	public static function findShareKeys($filePath, $shareKeyPath, $rootView) {
+	public static function findShareKeys($filePath, $shareKeyPath,  \OC\Files\View $rootView) {
 		$result = array();
 
 		$user = \OCP\User::getUser();
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 5378137e1d314f68db7c8070dc76b005efe0e982..fa44e446d9619fab4795ea05aa27f35afeb0f4d0 100644
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -740,7 +740,7 @@ class OC_Mount_Config {
 	 * @param string $backend
 	 * @return string
 	 */
-	private static function getSingleDependencyMessage($l, $module, $backend) {
+	private static function getSingleDependencyMessage(OC_L10N $l, $module, $backend) {
 		switch (strtolower($module)) {
 			case 'curl':
 				return $l->t('<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.', $backend);
diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php
index 6396229641692a2679e045f7c88a32d1828bec07..3d90791108e9a266c4d47ecfac02b21f9e54e258 100644
--- a/apps/files_trashbin/lib/trashbin.php
+++ b/apps/files_trashbin/lib/trashbin.php
@@ -434,10 +434,10 @@ class Trashbin {
 	 * @param string $filename name of file once it was deleted
 	 * @param string $uniqueFilename new file name to restore the file without overwriting existing files
 	 * @param string $location location if file
-	 * @param int $timestamp deleteion time
-	 *
+	 * @param int $timestamp deletion time
+	 * @return bool
 	 */
-	private static function restoreVersions($view, $file, $filename, $uniqueFilename, $location, $timestamp) {
+	private static function restoreVersions(\OC\Files\View $view, $file, $filename, $uniqueFilename, $location, $timestamp) {
 
 		if (\OCP\App::isEnabled('files_versions')) {
 			// disable proxy to prevent recursive calls
@@ -488,10 +488,10 @@ class Trashbin {
 	 * @param string $filename name of file
 	 * @param string $uniqueFilename new file name to restore the file without overwriting existing files
 	 * @param string $location location of file
-	 * @param int $timestamp deleteion time
-	 *
+	 * @param int $timestamp deletion time
+	 * @return bool
 	 */
-	private static function restoreEncryptionKeys($view, $file, $filename, $uniqueFilename, $location, $timestamp) {
+	private static function restoreEncryptionKeys(\OC\Files\View $view, $file, $filename, $uniqueFilename, $location, $timestamp) {
 		// Take care of encryption keys TODO! Get '.key' in file between file name and delete date (also for permanent delete!)
 		if (\OCP\App::isEnabled('files_encryption')) {
 			$user = \OCP\User::getUser();
@@ -639,8 +639,12 @@ class Trashbin {
 
 	/**
 	 * @param \OC\Files\View $view
+	 * @param $file
+	 * @param $filename
+	 * @param $timestamp
+	 * @return int
 	 */
-	private static function deleteVersions($view, $file, $filename, $timestamp) {
+	private static function deleteVersions(\OC\Files\View $view, $file, $filename, $timestamp) {
 		$size = 0;
 		if (\OCP\App::isEnabled('files_versions')) {
 			$user = \OCP\User::getUser();
@@ -664,8 +668,12 @@ class Trashbin {
 
 	/**
 	 * @param \OC\Files\View $view
+	 * @param $file
+	 * @param $filename
+	 * @param $timestamp
+	 * @return int
 	 */
-	private static function deleteEncryptionKeys($view, $file, $filename, $timestamp) {
+	private static function deleteEncryptionKeys(\OC\Files\View $view, $file, $filename, $timestamp) {
 		$size = 0;
 		if (\OCP\App::isEnabled('files_encryption')) {
 			$user = \OCP\User::getUser();
@@ -879,8 +887,10 @@ class Trashbin {
 	 * @param string $source source path, relative to the users files directory
 	 * @param string $destination destination path relative to the users root directoy
 	 * @param \OC\Files\View $view file view for the users root directory
+	 * @return int
+	 * @throws Exceptions\CopyRecursiveException
 	 */
-	private static function copy_recursive($source, $destination, $view) {
+	private static function copy_recursive($source, $destination, \OC\Files\View $view) {
 		$size = 0;
 		if ($view->is_dir($source)) {
 			$view->mkdir($destination);
@@ -955,7 +965,7 @@ class Trashbin {
 	 * @param \OC\Files\View $view filesystem view relative to users root directory
 	 * @return string with unique extension
 	 */
-	private static function getUniqueFilename($location, $filename, $view) {
+	private static function getUniqueFilename($location, $filename, \OC\Files\View $view) {
 		$ext = pathinfo($filename, PATHINFO_EXTENSION);
 		$name = pathinfo($filename, PATHINFO_FILENAME);
 		$l = \OC::$server->getL10N('files_trashbin');
@@ -1036,6 +1046,7 @@ class Trashbin {
 	/**
 	 * check if trash bin is empty for a given user
 	 * @param string $user
+	 * @return bool
 	 */
 	public static function isEmpty($user) {
 
@@ -1050,6 +1061,10 @@ class Trashbin {
 		return true;
 	}
 
+	/**
+	 * @param $path
+	 * @return string
+	 */
 	public static function preview_icon($path) {
 		return \OC_Helper::linkToRoute('core_ajax_trashbin_preview', array('x' => 36, 'y' => 36, 'file' => $path));
 	}
diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php
index 3c367f144db422ff115aaf270502d9c213833d90..632e320576c270318fdf78468f30103b34e70c79 100644
--- a/lib/private/db/mdb2schemamanager.php
+++ b/lib/private/db/mdb2schemamanager.php
@@ -144,7 +144,7 @@ class MDB2SchemaManager {
 	}
 
 	/**
-	 * @param \Doctrine\DBAL\Schema\Schema $schema
+	 * @param \Doctrine\DBAL\Schema\Schema|\Doctrine\DBAL\Schema\SchemaDiff $schema
 	 * @return bool
 	 */
 	private function executeSchemaChange($schema) {
diff --git a/lib/private/files.php b/lib/private/files.php
index a983f6f32f57a99457f91ae01d91f23903d94411..571d3215caa19897351ff9062f44d5c0cbfb8c9a 100644
--- a/lib/private/files.php
+++ b/lib/private/files.php
@@ -195,7 +195,7 @@ class OC_Files {
 	 * @param ZipStreamer $zip
 	 * @param string $internalDir
 	 */
-	public static function zipAddDir($dir, $zip, $internalDir='') {
+	public static function zipAddDir($dir, ZipStreamer $zip, $internalDir='') {
 		$dirname=basename($dir);
 		$rootDir = $internalDir.$dirname;
 		if (!empty($rootDir)) {
diff --git a/lib/private/files/mount/manager.php b/lib/private/files/mount/manager.php
index e5180cfe1731e8a4f7d00b8eb24d01ae6be4b662..0ccf42941decd4fbc133e49aaeda6f2d3f1cda71 100644
--- a/lib/private/files/mount/manager.php
+++ b/lib/private/files/mount/manager.php
@@ -19,7 +19,7 @@ class Manager {
 	/**
 	 * @param Mount $mount
 	 */
-	public function addMount($mount) {
+	public function addMount(Mount $mount) {
 		$this->mounts[$mount->getMountPoint()] = $mount;
 	}
 
diff --git a/lib/private/preview.php b/lib/private/preview.php
index f8b19f11cb090de03d4267614ae98f9bced2d2e7..dbbe173bf80f33db539d77d042a8e12990b8f5f1 100644
--- a/lib/private/preview.php
+++ b/lib/private/preview.php
@@ -779,7 +779,7 @@ class Preview {
 	 * @param \OC\Files\FileInfo $file
 	 * @return bool
 	 */
-	public static function isAvailable($file) {
+	public static function isAvailable(\OC\Files\FileInfo $file) {
 		if (!\OC_Config::getValue('enable_previews', true)) {
 			return false;
 		}
diff --git a/lib/private/server.php b/lib/private/server.php
index 34fd8ab48fdd120873b9a40fe7e74622d22c5b77..186714740f7f632f1fcb4bd2b2826e8f65a8dbf0 100644
--- a/lib/private/server.php
+++ b/lib/private/server.php
@@ -72,15 +72,15 @@ class Server extends SimpleContainer implements IServerContainer {
 		$this->registerService('PreviewManager', function ($c) {
 			return new PreviewManager();
 		});
-		$this->registerService('TagMapper', function($c) {
+		$this->registerService('TagMapper', function(Server $c) {
 			return new TagMapper($c->getDb());
 		});
-		$this->registerService('TagManager', function ($c) {
+		$this->registerService('TagManager', function (Server $c) {
 			$tagMapper = $c->query('TagMapper');
 			$user = \OC_User::getUser();
 			return new TagManager($tagMapper, $user);
 		});
-		$this->registerService('RootFolder', function ($c) {
+		$this->registerService('RootFolder', function (Server $c) {
 			// TODO: get user and user manager from container as well
 			$user = \OC_User::getUser();
 			/** @var $c SimpleContainer */
@@ -90,28 +90,16 @@ class Server extends SimpleContainer implements IServerContainer {
 			$view = new View();
 			return new Root($manager, $view, $user);
 		});
-		$this->registerService('UserManager', function ($c) {
-			/**
-			 * @var SimpleContainer $c
-			 * @var \OC\AllConfig $config
-			 */
-			$config = $c->query('AllConfig');
+		$this->registerService('UserManager', function (Server $c) {
+			$config = $c->getConfig();
 			return new \OC\User\Manager($config);
 		});
-		$this->registerService('GroupManager', function ($c) {
-			/**
-			 * @var SimpleContainer $c
-			 * @var \OC\User\Manager $userManager
-			 */
-			$userManager = $c->query('UserManager');
+		$this->registerService('GroupManager', function (Server $c) {
+			$userManager = $c->getUserManager();
 			return new \OC\Group\Manager($userManager);
 		});
-		$this->registerService('UserSession', function ($c) {
-			/**
-			 * @var SimpleContainer $c
-			 * @var \OC\User\Manager $manager
-			 */
-			$manager = $c->query('UserManager');
+		$this->registerService('UserSession', function (Server $c) {
+			$manager = $c->getUserManager();
 			$userSession = new \OC\User\Session($manager, new \OC\Session\Memory(''));
 			$userSession->listen('\OC\User', 'preCreateUser', function ($uid, $password) {
 				\OC_Hook::emit('OC_User', 'pre_createUser', array('run' => true, 'uid' => $uid, 'password' => $password));
@@ -160,9 +148,8 @@ class Server extends SimpleContainer implements IServerContainer {
 		$this->registerService('L10NFactory', function ($c) {
 			return new \OC\L10N\Factory();
 		});
-		$this->registerService('URLGenerator', function ($c) {
-			/** @var $c SimpleContainer */
-			$config = $c->query('AllConfig');
+		$this->registerService('URLGenerator', function (Server $c) {
+			$config = $c->getConfig();
 			return new \OC\URLGenerator($config);
 		});
 		$this->registerService('AppHelper', function ($c) {
@@ -181,25 +168,18 @@ class Server extends SimpleContainer implements IServerContainer {
 		$this->registerService('AvatarManager', function ($c) {
 			return new AvatarManager();
 		});
-		$this->registerService('Logger', function ($c) {
-			/** @var $c SimpleContainer */
+		$this->registerService('Logger', function (Server $c) {
 			$logClass = $c->query('AllConfig')->getSystemValue('log_type', 'owncloud');
 			$logger = 'OC_Log_' . ucfirst($logClass);
 			call_user_func(array($logger, 'init'));
 
 			return new Log($logger);
 		});
-		$this->registerService('JobList', function ($c) {
-			/**
-			 * @var Server $c
-			 */
+		$this->registerService('JobList', function (Server $c) {
 			$config = $c->getConfig();
 			return new \OC\BackgroundJob\JobList($c->getDatabaseConnection(), $config);
 		});
-		$this->registerService('Router', function ($c) {
-			/**
-			 * @var Server $c
-			 */
+		$this->registerService('Router', function (Server $c) {
 			$cacheFactory = $c->getMemCacheFactory();
 			if ($cacheFactory->isAvailable()) {
 				$router = new \OC\Route\CachingRouter($cacheFactory->create('route'));
@@ -214,13 +194,10 @@ class Server extends SimpleContainer implements IServerContainer {
 		$this->registerService('SecureRandom', function ($c) {
 			return new SecureRandom();
 		});
-		$this->registerService('Crypto', function ($c) {
-			return new Crypto(\OC::$server->getConfig(), \OC::$server->getSecureRandom());
+		$this->registerService('Crypto', function (Server $c) {
+			return new Crypto($c->getConfig(), $c->getSecureRandom());
 		});
-		$this->registerService('DatabaseConnection', function ($c) {
-			/**
-			 * @var Server $c
-			 */
+		$this->registerService('DatabaseConnection', function (Server $c) {
 			$factory = new \OC\DB\ConnectionFactory();
 			$type = $c->getConfig()->getSystemValue('dbtype', 'sqlite');
 			if (!$factory->isValidType($type)) {
@@ -231,18 +208,14 @@ class Server extends SimpleContainer implements IServerContainer {
 			$connection->getConfiguration()->setSQLLogger($c->getQueryLogger());
 			return $connection;
 		});
-		$this->registerService('Db', function ($c) {
-			/**
-			 * @var Server $c
-			 */
+		$this->registerService('Db', function (Server $c) {
 			return new Db($c->getDatabaseConnection());
 		});
-		$this->registerService('HTTPHelper', function (SimpleContainer $c) {
-			$config = $c->query('AllConfig');
+		$this->registerService('HTTPHelper', function (Server $c) {
+			$config = $c->getConfig();
 			return new HTTPHelper($config);
 		});
-		$this->registerService('EventLogger', function ($c) {
-			/** @var Server $c */
+		$this->registerService('EventLogger', function (Server $c) {
 			if (defined('DEBUG') and DEBUG) {
 				return new EventLogger();
 			} else {
diff --git a/lib/private/util.php b/lib/private/util.php
index 858138f58fe1fabca6b7f58475fc0e027910987d..d600f8a5e64a2902d3a425675710166487d62e2f 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -420,7 +420,7 @@ class OC_Util {
 	 * @param \OCP\IConfig $config
 	 * @return array arrays with error messages and hints
 	 */
-	public static function checkServer($config) {
+	public static function checkServer(\OCP\IConfig $config) {
 		$l = \OC::$server->getL10N('lib');
 		$errors = array();
 		$CONFIG_DATADIRECTORY = $config->getSystemValue('datadirectory', OC::$SERVERROOT . '/data');
@@ -1309,7 +1309,7 @@ class OC_Util {
 	 * @param \OCP\IConfig $config
 	 * @return bool whether the core or any app needs an upgrade
 	 */
-	public static function needUpgrade($config) {
+	public static function needUpgrade(\OCP\IConfig $config) {
 		if ($config->getSystemValue('installed', false)) {
 			$installedVersion = $config->getSystemValue('version', '0.0.0');
 			$currentVersion = implode('.', OC_Util::getVersion());