diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..1ff0c423042b46cb1d617b81efb715defbe8054d
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,63 @@
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text=auto
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+#*.cs     diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following 
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+#*.sln       merge=binary
+#*.csproj    merge=binary
+#*.vbproj    merge=binary
+#*.vcxproj   merge=binary
+#*.vcproj    merge=binary
+#*.dbproj    merge=binary
+#*.fsproj    merge=binary
+#*.lsproj    merge=binary
+#*.wixproj   merge=binary
+#*.modelproj merge=binary
+#*.sqlproj   merge=binary
+#*.wwaproj   merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+#*.jpg   binary
+#*.png   binary
+#*.gif   binary
+
+###############################################################################
+# diff behavior for common document formats
+# 
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the 
+# entries below.
+###############################################################################
+#*.doc   diff=astextplain
+#*.DOC   diff=astextplain
+#*.docx  diff=astextplain
+#*.DOCX  diff=astextplain
+#*.dot   diff=astextplain
+#*.DOT   diff=astextplain
+#*.pdf   diff=astextplain
+#*.PDF   diff=astextplain
+#*.rtf   diff=astextplain
+#*.RTF   diff=astextplain
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 70f41bc841fef797f60350032c50e96f2d99fe9b..b339a45c43a1dcb4b80ab99e6224bc7232abd723 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,5 @@
 stages:
   - test
-  - docs
   - release
   - releasetrigger
 
@@ -19,15 +18,6 @@ cake:Test:
     - master
     - tags
 
-docs:
-  stage: docs
-  script:
-    - .\publishDocs.ps1 $GITLAB_TOKEN
-  variables:
-    GIT_STRATEGY: clone
-  only:
-    - tags
-
 cake:Release:
   stage: release
   script:
diff --git a/docs/ESLintConvention.md b/docs/ESLintConvention.md
deleted file mode 100644
index 001dba56ac6f0f96234f03d0278f618826728495..0000000000000000000000000000000000000000
--- a/docs/ESLintConvention.md
+++ /dev/null
@@ -1,45 +0,0 @@
-## ESLint Convention
-
-Make the changes to the code and tests and then commit to your branch. Be sure to follow the commit message conventions.
-
-Commit message summaries must follow this basic format:
-
-```
-Tag: Message (fixes #1234)
-```
-
-`Tag` should not be confused with git tag.
-`Message` should not be confused with git commit message.
-
-The `Tag` is one of the following:
-
-* `Fix` - for a bug fix.
-* `Update` - for a backwards-compatible enhancement.
-* `Breaking` - for a backwards-incompatible enhancement.
-* `Docs` - changes to documentation only.
-* `Build` - changes to build process only.
-* `New` - implemented a new feature.
-* `Upgrade` - for a dependency upgrade.
-
-The message summary should be a one-sentence description of the change. The issue number should be mentioned at the end. * The commit message should say "(fixes #1234)" at the end of the description if it closes out an existing issue (replace 1234 with the issue number). If the commit doesn't completely fix the issue, then use `(refs #1234)` instead of `(fixes #1234)`.
-
-Here are some good commit message summary examples:
-
-```
-Build: Update Travis to only test Node 0.10 (refs #734)
-Fix: Semi rule incorrectly flagging extra semicolon (fixes #840)
-Upgrade: Esprima to 1.2, switch to using Esprima comment attachment (fixes #730)
-```
-
-The commit message format is important because these messages are used to create a changelog for each release. The tag and issue number help to create more consistent and useful changelogs.
-
-Based on https://github.com/eslint/eslint.github.io/blob/master/docs/developer-guide/contributing.md#step-2-make-your-changes
-
-[npm-image]: https://badge.fury.io/js/conventional-changelog-eslint.svg
-[npm-url]: https://npmjs.org/package/conventional-changelog-eslint
-[travis-image]: https://travis-ci.org/stevemao/conventional-changelog-eslint.svg?branch=master
-[travis-url]: https://travis-ci.org/stevemao/conventional-changelog-eslint
-[daviddm-image]: https://david-dm.org/stevemao/conventional-changelog-eslint.svg?theme=shields.io
-[daviddm-url]: https://david-dm.org/stevemao/conventional-changelog-eslint
-[coveralls-image]: https://coveralls.io/repos/stevemao/conventional-changelog-eslint/badge.svg
-[coveralls-url]: https://coveralls.io/r/stevemao/conventional-changelog-eslint
\ No newline at end of file
diff --git a/docs/home.md b/docs/home.md
deleted file mode 100644
index e57a4ee9c07e6ca3f79756079043959585835658..0000000000000000000000000000000000000000
--- a/docs/home.md
+++ /dev/null
@@ -1,31 +0,0 @@
-## C# Template
-
-This template includes:
-
-* Automatic building using cake
-* Automatic testing with NUnit
-* Automatic linting with Resharper
-* Automatic documentation publishing using Gitlab CI / CD and a self written script which puts the docs in the docs folder to the wiki
-* Automatic releases using semantic-release ([ESLint Code Convention](ESLintConvention)), cake and Gitlab CI / CD
-
-## What you need to do
-
-Place you C# project solution file in .src/.
-Make sure Create directory for solution is unticked.
-
-![alt text](images/create_project.png "Create a new Project")
-
-Delete unused docs and update this README.
-
-Add [NUnit](nunit) tests to your solution.
-
-## Building
-
-Build this project by running either the build.ps1 or the build<span></span>.sh script.
-The project will be build and tested.
-
-### Links 
-
-*  [Commit convention](ESLintConvention)
-*  [Everything possible with markup](testdoc)
-*  [Adding NUnit tests](nunit)
diff --git a/docs/images/add_a_package.png b/docs/images/add_a_package.png
deleted file mode 100644
index e8e8ed2121edfc81d8fb2e4f3e03ed4807c66eea..0000000000000000000000000000000000000000
Binary files a/docs/images/add_a_package.png and /dev/null differ
diff --git a/docs/images/add_a_reference.png b/docs/images/add_a_reference.png
deleted file mode 100644
index 4ee38c9951bc5739297b78abb2c82113286f6e71..0000000000000000000000000000000000000000
Binary files a/docs/images/add_a_reference.png and /dev/null differ
diff --git a/docs/images/create_class_library.png b/docs/images/create_class_library.png
deleted file mode 100644
index 89a252c6e358c73fb9b7299464f851e69127285a..0000000000000000000000000000000000000000
Binary files a/docs/images/create_class_library.png and /dev/null differ
diff --git a/docs/images/create_project.png b/docs/images/create_project.png
deleted file mode 100644
index f7ae1a1701c9287d5f7a959bf856f55966293081..0000000000000000000000000000000000000000
Binary files a/docs/images/create_project.png and /dev/null differ
diff --git a/docs/images/select_framework.png b/docs/images/select_framework.png
deleted file mode 100644
index bba5b07168b73cb1005150aad92d6d925bada649..0000000000000000000000000000000000000000
Binary files a/docs/images/select_framework.png and /dev/null differ
diff --git a/docs/images/select_project.png b/docs/images/select_project.png
deleted file mode 100644
index 6f42cc3a18e89d6e2a26cd76de9730f39feb51bf..0000000000000000000000000000000000000000
Binary files a/docs/images/select_project.png and /dev/null differ
diff --git a/docs/images/test_code.png b/docs/images/test_code.png
deleted file mode 100644
index e9d9b5f88107c03fb19d4d2c6567981d25658154..0000000000000000000000000000000000000000
Binary files a/docs/images/test_code.png and /dev/null differ
diff --git a/docs/nunit.md b/docs/nunit.md
deleted file mode 100644
index 020e56f85510b1319edbe89e76cdd0891b5abe43..0000000000000000000000000000000000000000
--- a/docs/nunit.md
+++ /dev/null
@@ -1,33 +0,0 @@
-## Add NUnit Tests
-
-### Add Nunit test adapter
-1.  Choose **Tools > Extensions and Updates**
-2.  In the **Extensions and Updates** dialog box, expand the **Online** category and then **Visual Studio Marketplace**. Then, choose **Tools > Testing**.
-2.  Select the **NUnit test adapter** and then choose **Download.**
-### Add Tests
-
-1.  Create a class library project and add it to your solution.
-
-    For convinience name it like your main project and add **.Tests** as a suffix.
-    ![alt text](images/create_class_library.png "Select Class Library")
-
-2.  Install the plug-in. In **Solution Explorer**, select the class library project, and then choose **Manage NuGet Packages** from its right-click or context menu.
-
-    ![alt text](images/add_a_package.png "Add a package")
-
-3.  In the **NuGet Package Manager** window, search for and select the plug-in (NUnit), and then choose **Install**.
-    ![alt text](images/select_framework.png "Select Project")
-
-    The framework is now referenced in your project under **References**.
-
-4.  From the class library project's **References** node, select **Add Reference**.
-
-    ![alt text](images/add_a_reference.png "Add a reference")
-
-5. In the **Reference Manager** dialog box, select the project that contains the code you'll test.
-
-    ![alt text](images/select_project.png "Select Project")
-
-6. Code your unit test.
-    
-    ![alt text](images/test_code.png "Test Code")
diff --git a/docs/testdoc.md b/docs/testdoc.md
deleted file mode 100644
index 938b6eb3d01ae251f10a000bda25fd4538d87d7a..0000000000000000000000000000000000000000
--- a/docs/testdoc.md
+++ /dev/null
@@ -1,78 +0,0 @@
-It's very easy to make some words **bold** and other words *italic* with Markdown. You can even [link to Google!](http://google.com)
-
-Sometimes you want numbered lists:
-
-1. One
-2. Two
-3. Three
-
-Sometimes you want bullet points:
-
-* Start a line with a star
-* Profit!
-
-Alternatively,
-
-- Dashes work just as well
-- And if you have sub points, put two spaces before the dash or star:
-  - Like this
-  - And this
-
-If you want to embed images, this is how you do it:
-
-![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
-
-# Structured documents
-
-Sometimes it's useful to have different levels of headings to structure your documents. Start lines with a `#` to create headings. Multiple `##` in a row denote smaller heading sizes.
-
-### This is a third-tier heading
-
-You can use one `#` all the way up to `######` six for different heading sizes.
-
-If you'd like to quote someone, use the > character before the line:
-
-> Coffee. The finest organic suspension ever devised... I beat the Borg with it.
-> - Captain Janeway
-
-[200~There are many different ways to style code with GitHub's markdown. If you have inline code blocks, wrap them in backticks: `var example = true`.  If you've got a longer block of code, you can indent with four spaces:
-
-    if (isAwesome){
-      return true
-    }
-
-GitHub also supports something called code fencing, which allows for multiple lines without indentation:
-
-```
-if (isAwesome){
-  return true
-}
-```
-
-And if you'd like to use syntax highlighting, include the language:
-
-```javascript
-if (isAwesome){
-  return true
-}
-```
-
-GitHub supports many extras in Markdown that help you reference and link to people. If you ever want to direct a comment at someone, you can prefix their name with an @ symbol: Hey @kneath — love your sweater!
-
-But I have to admit, tasks lists are my favorite:
-
-- [x] This is a complete item
-- [ ] This is an incomplete item
-
-When you include a task list in the first comment of an Issue, you will see a helpful progress bar in your list of issues. It works in Pull Requests, too!
-
-And, of course emoji!
-GitHub supports many extras in Markdown that help you reference and link to people. If you ever want to direct a comment at someone, you can prefix their name with an @ symbol: Hey @kneath — love your sweater!
-
-But I have to admit, tasks lists are my favorite:
-
- This is a complete item
- This is an incomplete item
-When you include a task list in the first comment of an Issue, you will see a helpful progress bar in your list of issues. It works in Pull Requests, too!
-
-And, of course emoji!
diff --git a/publishDocs.ps1 b/publishDocs.ps1
deleted file mode 100644
index f49b3b93e477ca9d57f7b1163b2bcf246f86d35d..0000000000000000000000000000000000000000
--- a/publishDocs.ps1
+++ /dev/null
@@ -1,19 +0,0 @@
-param(
-    $token
-)
-
-$remoteUrl = git config --get remote.origin.url
-$remoteUrl = $remoteUrl.replace("git@", "")
-$remoteUrl = $remoteUrl -replace "https(.*?)@",""
-$remoteUrl = $remoteUrl.replace(":", "/")
-$remoteUrl = $remoteUrl.replace(".git", ".wiki.git")
-
-$temporaryFolderName = "publishDocsTempFolder"
-
-git clone "https://gitlab-ci-token:$($token)@$($remoteUrl)" $temporaryFolderName
-cd $temporaryFolderName
-Remove-Item *
-cp -r ../docs/* ./
-git add . 
-git commit -m "Docs: Documentation Update" 
-git push
\ No newline at end of file
diff --git a/src/OrganizationDeployer.sln b/src/OrganizationDeployer.sln
new file mode 100644
index 0000000000000000000000000000000000000000..e1461fc0c432085862ed22bd6eb9ce30ee0da9c4
--- /dev/null
+++ b/src/OrganizationDeployer.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29102.190
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OrganizationDeployer", "OrganizationDeployer\OrganizationDeployer.csproj", "{341EB0C4-6882-4281-9310-4213AEAFB65A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{341EB0C4-6882-4281-9310-4213AEAFB65A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{341EB0C4-6882-4281-9310-4213AEAFB65A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{341EB0C4-6882-4281-9310-4213AEAFB65A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{341EB0C4-6882-4281-9310-4213AEAFB65A}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {1D546791-01C8-461D-859F-F1B3738EB3E3}
+	EndGlobalSection
+EndGlobal
diff --git a/src/OrganizationDeployer/App.config b/src/OrganizationDeployer/App.config
new file mode 100644
index 0000000000000000000000000000000000000000..5886ffed6d335e14e44dacb3bdfdb1b5d9fc572d
--- /dev/null
+++ b/src/OrganizationDeployer/App.config
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="dotNetRDF" publicKeyToken="6055ffe4c97cc780" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-2.4.0.0" newVersion="2.4.0.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+</configuration>
\ No newline at end of file
diff --git a/src/OrganizationDeployer/OrganizationDeployer.csproj b/src/OrganizationDeployer/OrganizationDeployer.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..63993964175678078087b7e99719bb56caa28c4c
--- /dev/null
+++ b/src/OrganizationDeployer/OrganizationDeployer.csproj
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{341EB0C4-6882-4281-9310-4213AEAFB65A}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>Coscine.OrganizationDeployer</RootNamespace>
+    <AssemblyName>Coscine.OrganizationDeployer</AssemblyName>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Coscine.Metadata, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.Metadata.1.0.1\lib\net461\Coscine.Metadata.dll</HintPath>
+    </Reference>
+    <Reference Include="dotNetRDF, Version=2.4.0.0, Culture=neutral, PublicKeyToken=6055ffe4c97cc780, processorArchitecture=MSIL">
+      <HintPath>..\packages\dotNetRDF.2.4.0\lib\net40\dotNetRDF.dll</HintPath>
+    </Reference>
+    <Reference Include="dotNetRDF.Data.Virtuoso, Version=2.4.0.0, Culture=neutral, PublicKeyToken=6055ffe4c97cc780, processorArchitecture=MSIL">
+      <HintPath>..\packages\dotNetRDF.Data.Virtuoso.2.4.0\lib\net40\dotNetRDF.Data.Virtuoso.dll</HintPath>
+    </Reference>
+    <Reference Include="HtmlAgilityPack, Version=1.11.17.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
+      <HintPath>..\packages\HtmlAgilityPack.1.11.17\lib\Net45\HtmlAgilityPack.dll</HintPath>
+    </Reference>
+    <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Security" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+    <Reference Include="VDS.Common, Version=1.10.0.0, Culture=neutral, PublicKeyToken=ab5f4eb908061bf0, processorArchitecture=MSIL">
+      <HintPath>..\packages\VDS.Common.1.10.0\lib\net40-client\VDS.Common.dll</HintPath>
+    </Reference>
+    <Reference Include="virtado4, Version=4.0.0.0, Culture=neutral, PublicKeyToken=391bf132017ae989, processorArchitecture=MSIL">
+      <HintPath>..\packages\OpenLink.Data.Virtuoso.7.20.3214.1\lib\net40\virtado4.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+    <None Include="getOrganizations.ps1">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/src/OrganizationDeployer/Program.cs b/src/OrganizationDeployer/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..58d3a93911abc9adfc2cfc8f28d506a25eb64a98
--- /dev/null
+++ b/src/OrganizationDeployer/Program.cs
@@ -0,0 +1,96 @@
+using Coscine.Metadata;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using VDS.RDF;
+
+namespace Coscine.OrganizationDeployer
+{
+    public class Program
+    {
+        public static void Main(string[] args)
+        {
+            ProcessStartInfo startInfo = new ProcessStartInfo
+            {
+                FileName = @"powershell.exe",
+                Arguments = $@"& '{ Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "getOrganizations.ps1") }'",
+                RedirectStandardOutput = true,
+                RedirectStandardError = true,
+                UseShellExecute = false,
+                CreateNoWindow = true
+            };
+            Process process = new Process
+            {
+                StartInfo = startInfo
+            };
+            process.Start();
+
+            string output = process.StandardOutput.ReadToEnd();
+            Console.WriteLine(output);
+
+            string errors = process.StandardError.ReadToEnd();
+            Console.WriteLine(errors);
+
+            var _util = new Util();
+            foreach (var file in GetFiles("organizations").Where((file) => file.Contains(".ttl")))
+            {
+                var graph = new Graph();
+                graph.LoadFromFile(file);
+                var graphName = graph.BaseUri.ToString();
+                if (_util.HasGraph(graphName))
+                {
+                    Console.WriteLine($"Clearing {graphName}");
+                    _util.ClearGraph(graphName);
+                }
+                else
+                {
+                    Console.WriteLine($"Creating {graphName}");
+                    _util.CreateNamedGraph(graphName);
+                }
+
+                Console.WriteLine($"Adding to {graphName}");
+                _util.AddGraph(graph);
+            }
+            Console.WriteLine("Done");
+        }
+
+        private static IEnumerable<string> GetFiles(string path)
+        {
+            Queue<string> queue = new Queue<string>();
+            queue.Enqueue(path);
+            while (queue.Count > 0)
+            {
+                path = queue.Dequeue();
+                try
+                {
+                    foreach (string subDir in Directory.GetDirectories(path))
+                    {
+                        queue.Enqueue(subDir);
+                    }
+                }
+                catch (Exception ex)
+                {
+                    Console.Error.WriteLine(ex);
+                }
+                string[] files = null;
+                try
+                {
+                    files = Directory.GetFiles(path);
+                }
+                catch (Exception ex)
+                {
+                    Console.Error.WriteLine(ex);
+                }
+                if (files != null)
+                {
+                    for (int i = 0; i < files.Length; i++)
+                    {
+                        yield return files[i];
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/src/OrganizationDeployer/Properties/AssemblyInfo.cs b/src/OrganizationDeployer/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..2c087763d9254233e8c1e1ccb0e44cb2911f3b0f
--- /dev/null
+++ b/src/OrganizationDeployer/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OrganizationDeployer")]
+[assembly: AssemblyDescription("OrganizationDeployer is a part of the CoScInE group.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
+[assembly: AssemblyProduct("OrganizationDeployer")]
+[assembly: AssemblyCopyright("2020 IT Center, RWTH Aachen University")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("341eb0c4-6882-4281-9310-4213aeafb65a")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/src/OrganizationDeployer/getOrganizations.ps1 b/src/OrganizationDeployer/getOrganizations.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..53a1d5a1ecc945ee6e4585250a8058c8d9c90e23
--- /dev/null
+++ b/src/OrganizationDeployer/getOrganizations.ps1
@@ -0,0 +1,15 @@
+$extractPath = "C:\Programs\Consul\"
+$fileName = "Consul.exe"
+$fullPath = ($extractPath + $fileName)
+
+$gitlab_token = & $fullPath kv get "coscine/global/gitlabtoken"
+
+Push-Location $PSScriptRoot
+
+git clone https://gitlab-ci-token:$gitlab_token@git.rwth-aachen.de/coscine/organizations.git
+
+cd organizations
+
+git checkout Topic/711-organizations
+
+Pop-Location
\ No newline at end of file
diff --git a/src/OrganizationDeployer/packages.config b/src/OrganizationDeployer/packages.config
new file mode 100644
index 0000000000000000000000000000000000000000..4addf01d817f1801b1050f36c73c99ad0d665623
--- /dev/null
+++ b/src/OrganizationDeployer/packages.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Coscine.Metadata" version="1.0.1" targetFramework="net461" />
+  <package id="dotNetRDF" version="2.4.0" targetFramework="net461" />
+  <package id="dotNetRDF.Data.Virtuoso" version="2.4.0" targetFramework="net461" />
+  <package id="HtmlAgilityPack" version="1.11.17" targetFramework="net461" />
+  <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net461" />
+  <package id="OpenLink.Data.Virtuoso" version="7.20.3214.1" targetFramework="net461" />
+  <package id="VDS.Common" version="1.10.0" targetFramework="net461" />
+</packages>
\ No newline at end of file