public function create(Dsn $dsn)
    {
        $dsnId = hash('md5', (string) $dsn);

        try {
            $filesystem = $this->mountManager->getFilesystem($dsnId);
        } catch (LogicException $e) {
            if ($dsn->getScheme() === 'file') {
                $path = $dsn->getPath();
                $filesystem = new Filesystem(new Local($path, LOCK_EX, Local::SKIP_LINKS));
            } else {
                //This will be implemented as soon as the CloneRemoteGitToLocal adapter is finished
                throw new \InvalidArgumentException('http and https are not supported yet');
            }

            $this->mountManager->mountFilesystem($dsnId, $filesystem);
        }

        $filesystem->addPlugin(new Finder());
        return $filesystem;
    }