public function create($name, array $files): ProjectInterface
    {
        $project = new Project($name);

        foreach ($files as $filePath) {
            $strategy = $this->strategies->findMatching($filePath);
            $file = $strategy->create($filePath, $this->strategies);
            if ($file !== null) {
                $project->addFile($file);
            }
        }

        $this->buildNamespaces($project);

        return $project;
    }