public function copy(string $templateFolder, string $targetFolder, array $context) {
    $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($templateFolder, \FilesystemIterator::KEY_AS_PATHNAME | \FilesystemIterator::CURRENT_AS_FILEINFO | \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST);

    foreach($iterator as $file) {
      $targetPath = $this->getTargetPath($templateFolder, $targetFolder, $this->replacePathVariables($file->getPathname(), $context));

      if($file->isDir()) {
        $this->getFilesystem()->mkdir($targetPath);
      }else {
        $this->getFilesystem()->dumpFile($targetPath, $this->getTwig()->render($file->getPathname(), $context));
      }
    }
  }