protected function _factory($adapter) {
		$_this = static::getInstance();

		if (!isset($adapter['engine'])) {
			$adapter['engine'] = 'Gaufrette';
		}
		if ($adapter['engine'] === static::GAUFRETTE_ENGINE) {
			return $_this->gaufretteFactory($adapter);
		}
		if ($adapter['engine'] === static::FLYSYSTEM_ENGINE) {
			return $_this->flysystemFactory($adapter);
		}

		throw new RuntimeException();
	}