public static function registerPlugins(KinveyClient $client, $plugins = array())
	{
		$plugins = array(
			new KinveyAuthPlugin(),
			new KinveyEntityCreateWithIDPlugin(),
			new KinveyCollectionNamePlugin(),
			new KinveyFileMetadataPlugin(),
			new KinveyEntityPathRewritePlugin(),
			new KinveyUserSoftDeletePlugin(),
			new KinveyRemoveInternalDataPlugin(),
			new KinveyInjectEntityIdPlugin(),
			new KinveyExceptionPlugin(new KinveyResponseExceptionFactory()),
			self::getExponentialBackoffPlugin(
				2,
				array('BLTimeoutError', 'KinveyInternalErrorRetry')
			)
		);

		if ($client->getConfig('logging')) $plugins[] = self::getLogPlugin(Log::getMonolog());

		foreach ($plugins as $plugin) $client->addSubscriber($plugin);

		return $client;
	}