diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b339a45c43a1dcb4b80ab99e6224bc7232abd723..690e1a1b5ff98301e8ddd862fdbcb37b0aead23e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,55 +1,33 @@
+include:
+  - project: coscine/tools/gitlab-ci-templates
+    file: 
+      - /dotnet.yml
+
 stages:
+  - build
   - test
-  - release
-  - releasetrigger
-
-cake:Test:
-  stage: test
-  script:
-    - PowerShell .\build.ps1 -Target Test -Configuration Debug
-  variables:
-    GIT_STRATEGY: clone
-  artifacts:
-    reports:
-      junit: "./Artifacts/TestResults.xml"
-    paths:
-      - "./Artifacts/*"
-  except:
-    - master
-    - tags
-
-cake:Release:
-  stage: release
-  script:
-    - PowerShell .\build.ps1 -Target Release -Configuration Release --nugetApiKey="${NUGET_API_KEY}"
-  variables:
-    GIT_STRATEGY: clone
-  dependencies:
-    - cake:Test
-  artifacts:
-    paths:
-      - "./Artifacts/*"
-  only:
-    - tags
-
-cake:Prerelease:
-  stage: release
-  script:
-    - PowerShell .\build.ps1 -Target Prerelease -Configuration Release
-  variables:
-    GIT_STRATEGY: clone
-  dependencies:
-    - cake:Test
-  artifacts:
-    paths:
-      - "./Artifacts/*"
-  except:
-    - tags
-    - master
-
-cake:GitlabRelease:
-    stage: releasetrigger
-    script:
-      - PowerShell .\build.ps1 -Target GitlabRelease --GitlabProjectPath="${CI_PROJECT_PATH}" --gitlabProjectId="${CI_PROJECT_ID}" --gitlabToken="${GITLAB_TOKEN}"
-    only:
-      - master
\ No newline at end of file
+  - publish
+
+variables:
+  DOTNET_MAIN_PROJECT_FOLDER: ECSManager
+
+build-branch:
+  extends: .build-branch
+
+build-nuget-release:
+  extends: .build-nuget-release
+
+test:
+  extends: .test
+
+publish-branch-prerelease:
+  extends: .publish-branch-prerelease
+
+publish-gitlab-release:
+  extends: .publish-gitlab-release
+
+publish-master-release:
+  extends: .publish-master-release
+
+publish-nuget-release:
+  extends: .publish-nuget-release
diff --git a/LICENSE b/LICENSE
index b8cd48a4db77aeee8a31fbec89cd7c8c4fb0b5ff..b2b571a29a4e6a417fc7c74b7ab46bc0cc9f1897 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) 2020 RWTH Aachen University
+Copyright (c) 2021 RWTH Aachen University
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/build.cake b/build.cake
deleted file mode 100644
index 81648ff61bbee492e1bc7b4390eb8e0cc33d3056..0000000000000000000000000000000000000000
--- a/build.cake
+++ /dev/null
@@ -1,351 +0,0 @@
-#tool nuget:?package=NUnit.ConsoleRunner&version=3.10.0
-#tool nuget:?package=vswhere&version=2.8.4
-#tool nuget:?package=GitVersion.CommandLine&version=5.1.3
-
-#addin nuget:https://api.nuget.org/v3/index.json?package=Cake.Json&version=4.0.0
-#addin nuget:https://api.nuget.org/v3/index.json?package=Newtonsoft.Json&version=11.0.2
-#addin nuget:https://api.nuget.org/v3/index.json?package=Cake.FileHelpers&version=3.2.1
-
-using System.Net;
-using System.Net.Http;
-
-// Commandline arguments
-var target = Argument("target", "Default");
-var configuration = Argument("configuration", "Release");
-var nugetApiKey = Argument<string>("nugetApiKey", null);
-var version = Argument("nugetVersion", "");
-var gitlabProjectPath = Argument("gitlabProjectPath", "");
-var gitlabProjectId = Argument("gitlabProjectId", "");
-var gitlabToken = Argument("gitlabToken", "");
-
-// Define directories
-var projects = GetFiles("./**/*.csproj");
-var artifactsDir = Directory("./Artifacts");
-string nupkgDir;
-var solutionFile = GetFiles("./**/*.sln").First();
-var projectName = solutionFile.GetFilenameWithoutExtension().ToString();
-var nugetSource = "https://api.nuget.org/v3/index.json";
-var assemblyInfoSubPath = "Properties/AssemblyInfo.cs";
-var semanticVersion = "";
-string localNugetFeed;
-
-// get latest MSBuild version
-var vsLatest  = VSWhereLatest();	
-var msBuildPathX64 = (vsLatest == null) ? null : vsLatest.CombineWithFilePath("./MSBuild/Current/Bin/MSBuild.exe");
-
-Setup(context =>{
-	nupkgDir = $"{artifactsDir.ToString()}/nupkg";
-	var branch = GitVersion(new GitVersionSettings {
-			UpdateAssemblyInfo = false
-		}).BranchName.Replace("/", "-");
-
-	localNugetFeed = $"C:\\coscine\\LocalNugetFeeds\\{branch}";
-	Information("{0}", branch);
-	Information("Started at {0}", DateTime.Now);
-});
-
-Teardown(context =>{
-	Information("Finished at {0}", DateTime.Now);
-});
-
-Task("Clean")
-.Description("Cleans all build and artifacts directories")
-.Does(() =>{
-	var settings = new DeleteDirectorySettings {
-		Recursive = true,
-		Force = true
-	};
-	
-	var directoriesToClean = new List<DirectoryPath>();
-	
-	foreach(var project in projects) {
-		directoriesToClean.Add(Directory($"{project.GetDirectory()}/obj"));
-		directoriesToClean.Add(Directory($"{project.GetDirectory()}/bin"));
-	}
-	
-	directoriesToClean.Add(artifactsDir);
-
-	foreach(var dir in directoriesToClean) {
-		Information("Cleaning {0}", dir.ToString());
-		if (DirectoryExists(dir)) {
-			DeleteDirectory(dir, settings);
-			CreateDirectory(dir);
-		} else {
-			CreateDirectory(dir);
-		}
-	}
-});
-
-Task("Restore")
-.Does(() =>{
-	NuGetRestore(solutionFile, new NuGetRestoreSettings {
-		NoCache = true,
-		FallbackSource = new List<string>{ localNugetFeed },
-	});
-});
-
-Task("Test")
-.IsDependentOn("Build")
-.Does(() =>{
-	NUnit3($"./src/**/bin/{configuration}/*.Tests.dll", new NUnit3Settings {
-		// generate the xml file
-		NoResults = false,
-		Results = new NUnit3Result[] {
-			new NUnit3Result() {
-				FileName = $"{artifactsDir}/TestResults.xml",
-				Transform = $"{Context.Environment.WorkingDirectory}/nunit3-junit.xslt"
-			}
-		}
-	});
-});
-
-Task("GitVersion")
-.Does(() => {
-	if(string.IsNullOrWhiteSpace(version)) {
-		version = GitVersion(new GitVersionSettings {
-			UpdateAssemblyInfo = false
-		}).NuGetVersionV2;
-	}
-	var index = version.IndexOf("-");
-	semanticVersion = index > 0 ? version.Substring(0, index) : version;
-	Information("Version: {0}, SemanticVersion: {1}", version, semanticVersion);
-});
-
-Task("UpdateAssemblyInfo")
-.Does(() =>{
-	var index = version.IndexOf("-");
-	var semanticVersion = index > 0 ? version.Substring(0, index) : version;
-
-	foreach(var project in projects) {
-		CreateAssemblyInfo($"{project.GetDirectory()}/{assemblyInfoSubPath}", new AssemblyInfoSettings {
-			Product = project.GetFilenameWithoutExtension().ToString(),
-			Title = project.GetFilenameWithoutExtension().ToString(),
-			Company = "IT Center, RWTH Aachen University",
-			Version = semanticVersion,
-			FileVersion = semanticVersion,
-			InformationalVersion = version,
-			Copyright = $"{DateTime.Now.Year} IT Center, RWTH Aachen University",
-			Description = $"{project.GetFilenameWithoutExtension().ToString()} is a part of the CoScInE group."
-		});
-	}
-});
-
-Task("GitlabRelease")
-.IsDependentOn("GitVersion")
-.Does(() => {
-	var client = new HttpClient();
-	client.DefaultRequestHeaders.Add("PRIVATE-TOKEN", gitlabToken);
-	
-	// get the latest tag
-	var result = client.GetAsync($"https://git.rwth-aachen.de/api/v4/projects/{gitlabProjectId}/repository/tags").Result;
-	if(!result.IsSuccessStatusCode) {
-		throw new Exception("Tag query failed.");
-	}
-
-	var tagList = result.Content.ReadAsStringAsync().Result;
-	var jArray = JArray.Parse(tagList);
-	// null if not tags exists yet
-	var lastTag = jArray.Select(x => x["name"]).FirstOrDefault();
-
-	var url = $"https://git.rwth-aachen.de/{gitlabProjectPath}";
-	
-	if(url.EndsWith(".git")) {
-		url = url.Substring(0, url.Length - ".git".Length);
-	}
-
-	if(url.EndsWith("/")) {
-		url = url.Substring(0, url.Length - 1);
-	}
-
-	var description = "";
-	// First line of description
-	// Gitlab compare url, if something can be compared
-	if(lastTag == null) {
-		description = $"# {semanticVersion} ({DateTime.Now.Year}-{DateTime.Now.Month}-{DateTime.Now.Day})\n\n\n";
-	} else {
-		description = $"# [{semanticVersion}]({url}/compare/{lastTag}...v{semanticVersion}) ({DateTime.Now.Year}-{DateTime.Now.Month}-{DateTime.Now.Day})\n\n\n";
-	}
-
-	// From when will messages be parsed, null results in all messages
-	var logParam = "";
-	if(lastTag != null) {
-		logParam = $"{lastTag}..Head";
-	}
-
-	Information(lastTag);
-
-	IEnumerable<string> redirectedStandardOutput;
-	var exitCodeWithArgument =
-		StartProcess(
-			"git",
-			new ProcessSettings {
-				Arguments = $"log {logParam} --pretty=format:HASH%h:%B",
-				RedirectStandardOutput = true
-			},
-			out redirectedStandardOutput
-		);
-
-	var prefixList = new Dictionary<string, List<string>>{
-		{"Fix", new List<string>()},
-		{"Update", new List<string>()},
-		{"New", new List<string>()},
-		{"Breaking", new List<string>()},
-		{"Docs", new List<string>()},
-		{"Build", new List<string>()},
-		{"Upgrade", new List<string>()},
-		{"Chore", new List<string>()},
-	};
-
-	var currentHash = "";
-	// Output last line of process output.
-	foreach(var line in redirectedStandardOutput) {
-		var commitMessage = "";
-		if(line.StartsWith("HASH")) {
-			currentHash = line.Substring("HASH".Length);
-			currentHash = currentHash.Substring(0, currentHash.IndexOf(":"));
-			commitMessage = line.Substring(currentHash.Length + line.IndexOf(currentHash) + 1);
-		} else {
-			commitMessage = line;
-		}
-
-		foreach(var kv in prefixList) {
-			if(commitMessage.StartsWith($"{kv.Key}:")) {
-				kv.Value.Add($"* {commitMessage.Substring(kv.Key.Length + 1).Trim()} {currentHash}");
-				break;
-			}
-		};
-	}
-	
-	foreach(var kv in prefixList) {
-		if(kv.Value.Any()) {
-			description += $" ### {kv.Key}\n\n";
-			foreach(var line in kv.Value) {
-				description += $"{line}\n";
-			}
-			description += "\n";
-		}
-	}
-	// correctly escape the json newlines
-	description = description.Replace("\n", "\\n");
-	Information("Description: {0}", description);
-
-	// create tag
-	result = client.PostAsync($"https://git.rwth-aachen.de/api/v4/projects/{gitlabProjectId}/repository/tags?tag_name=v{semanticVersion}&ref=master", null).Result;
-	Information("Create tag: {0}", result.Content.ReadAsStringAsync().Result);
-	if(!result.IsSuccessStatusCode) {
-		throw new Exception("Tag creation failed.");
-	}
-
-	// create release
-	var json = $"{{\"name\": \"v{semanticVersion}\", \"tag_name\": \"v{semanticVersion}\", \"description\": \"{description}\"}}";
-	var content = new StringContent(json, Encoding.UTF8, "application/json");
-	result = client.PostAsync($"https://git.rwth-aachen.de/api/v4/projects/{gitlabProjectId}/releases", content).Result;
-	Information("Create release: {0}", result.Content.ReadAsStringAsync().Result);
-	if(!result.IsSuccessStatusCode) {
-		throw new Exception("Release creation failed.");
-	}
-});
-
-Task("Build")
-.IsDependentOn("Clean")
-.IsDependentOn("GitVersion")
-.IsDependentOn("UpdateAssemblyInfo")
-.IsDependentOn("Restore")
-.Does(() =>{
-		var frameworkSettingsWindows = new MSBuildSettings {
-			Configuration = configuration
-		};
-		
-		frameworkSettingsWindows.ToolPath = msBuildPathX64;
-		frameworkSettingsWindows.WorkingDirectory = Context.Environment.WorkingDirectory;
-
-		if (configuration.Equals("Release")) {
-			frameworkSettingsWindows.WithProperty("DebugSymbols", "false");
-			frameworkSettingsWindows.WithProperty("DebugType", "None");
-		}
-
-		// Use MSBuild
-		Information("Building {0}", solutionFile);
-		MSBuild(solutionFile, frameworkSettingsWindows);
-});
-
-Task("NugetPack")
-.IsDependentOn("Build")
-.Does(() =>{
-	foreach(var project in projects) {
-			var nuspec = $"{project.GetDirectory()}/{project.GetFilenameWithoutExtension()}.nuspec";
-			if(!project.ToString().EndsWith(".Tests") && FileExists(nuspec))
-			{
-				var settings = new NuGetPackSettings 
-				{
-					OutputDirectory = nupkgDir,
-					Version = version,
-					Properties = new Dictionary<string, string>
-					{
-						{ "Configuration", configuration}
-					}
-				};				
-				NuGetPack(project.ToString(), settings);
-			}
-		}
-});
-
-Task("NugetPush")
-.IsDependentOn("NugetPack")
-.Does(() =>{
-	var nupkgs = GetFiles($"{nupkgDir}/*.nupkg");
-	Information("Need to push {0} packages", nupkgs.Count);
-	if(!String.IsNullOrWhiteSpace(nugetApiKey)) {
-		foreach(var nupkg in nupkgs) {
-			Information("Pushing {0}", nupkg);
-			NuGetPush(nupkg, new NuGetPushSettings {
-				Source = nugetSource,
-				ApiKey = nugetApiKey
-			});
-		}
-	} else {
-		Information("NugetApiKey is not set. Can't push.");
-		throw new Exception("NugetApiKey is not set. Can't push.");
-	}
-});
-
-Task("CopyToArtifacts")
-.Does(() =>{
-	foreach(var project in projects) {
-		if(!project.GetDirectory().ToString().EndsWith(".Tests")
-		&& !FileExists($"{project.GetDirectory()}/{project.GetFilenameWithoutExtension()}.nuspec")
-		&& DirectoryExists(project.GetDirectory()))
-		{
-			Information("Copying {0}/* to {1}", $"{project.GetDirectory()}/bin/{configuration}", artifactsDir);
-			CopyDirectory($"{project.GetDirectory()}/bin/{configuration}/", artifactsDir);
-		}
-	}
-});
-
-Task("NugetPushLocal")
-.IsDependentOn("NugetPack")
-.Does(() =>{	
-	var nupkgs = GetFiles($"{nupkgDir}/*.nupkg");
-	foreach(var nupkg in nupkgs) {
-		if(!DirectoryExists(localNugetFeed)) {
-			CreateDirectory(localNugetFeed);
-		}
-		CopyFile(nupkg.ToString(), $"{localNugetFeed}\\{nupkg.GetFilename()}");
-	}
-});
-
-Task("Prerelease")
-.IsDependentOn("Build")
-.IsDependentOn("CopyToArtifacts")
-.IsDependentOn("NugetPushLocal");
-
-Task("Release")
-.IsDependentOn("NugetPack")
-.IsDependentOn("CopyToArtifacts")
-.IsDependentOn("NugetPushLocal")
-.IsDependentOn("NugetPush");
-
-Task("Default")
-.IsDependentOn("Test");
-
-RunTarget(target);
diff --git a/build.ps1 b/build.ps1
deleted file mode 100644
index f83382e8e4092ba6cf32a47f9dfa4e211c878430..0000000000000000000000000000000000000000
--- a/build.ps1
+++ /dev/null
@@ -1,255 +0,0 @@
-#The MIT License (MIT)
-#
-#Copyright (c) 2014 - 2016 Patrik Svensson, Mattias Karlsson, Gary Ewan Park and contributors
-#
-#Permission is hereby granted, free of charge, to any person obtaining a copy of
-#this software and associated documentation files (the "Software"), to deal in
-#the Software without restriction, including without limitation the rights to
-#use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-#the Software, and to permit persons to whom the Software is furnished to do so,
-#subject to the following conditions:
-#
-#The above copyright notice and this permission notice shall be included in all
-#copies or substantial portions of the Software.
-#
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-#FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-#COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-#IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-#CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-##########################################################################
-# This is the Cake bootstrapper script for PowerShell.
-# This file was downloaded from https://github.com/cake-build/resources
-# Feel free to change this file to fit your needs.
-##########################################################################
-
-<#
-
-.SYNOPSIS
-This is a Powershell script to bootstrap a Cake build.
-
-.DESCRIPTION
-This Powershell script will download NuGet if missing, restore NuGet tools (including Cake)
-and execute your Cake build script with the parameters you provide.
-
-.PARAMETER Script
-The build script to execute.
-.PARAMETER Target
-The build script target to run.
-.PARAMETER Configuration
-The build configuration to use.
-.PARAMETER Verbosity
-Specifies the amount of information to be displayed.
-.PARAMETER ShowDescription
-Shows description about tasks.
-.PARAMETER DryRun
-Performs a dry run.
-.PARAMETER Experimental
-Uses the nightly builds of the Roslyn script engine.
-.PARAMETER Mono
-Uses the Mono Compiler rather than the Roslyn script engine.
-.PARAMETER SkipToolPackageRestore
-Skips restoring of packages.
-.PARAMETER ScriptArgs
-Remaining arguments are added here.
-
-.LINK
-https://cakebuild.net
-
-#>
-
-[CmdletBinding()]
-Param(
-    [string]$Script = "build.cake",
-    [string]$Target,
-    [string]$Configuration,
-    [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")]
-    [string]$Verbosity,
-    [switch]$ShowDescription,
-    [Alias("WhatIf", "Noop")]
-    [switch]$DryRun,
-    [switch]$Experimental,
-    [switch]$Mono,
-    [switch]$SkipToolPackageRestore,
-    [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
-    [string[]]$ScriptArgs
-)
-
-[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null
-function MD5HashFile([string] $filePath)
-{
-    if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf))
-    {
-        return $null
-    }
-
-    [System.IO.Stream] $file = $null;
-    [System.Security.Cryptography.MD5] $md5 = $null;
-    try
-    {
-        $md5 = [System.Security.Cryptography.MD5]::Create()
-        $file = [System.IO.File]::OpenRead($filePath)
-        return [System.BitConverter]::ToString($md5.ComputeHash($file))
-    }
-    finally
-    {
-        if ($file -ne $null)
-        {
-            $file.Dispose()
-        }
-    }
-}
-
-function GetProxyEnabledWebClient
-{
-    $wc = New-Object System.Net.WebClient
-    $proxy = [System.Net.WebRequest]::GetSystemWebProxy()
-    $proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials        
-    $wc.Proxy = $proxy
-    return $wc
-}
-
-Write-Host "Preparing to run build script..."
-
-if(!$PSScriptRoot){
-    $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
-}
-
-$TOOLS_DIR = Join-Path $PSScriptRoot "tools"
-$ADDINS_DIR = Join-Path $TOOLS_DIR "Addins"
-$MODULES_DIR = Join-Path $TOOLS_DIR "Modules"
-$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe"
-$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe"
-$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
-$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config"
-$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum"
-$ADDINS_PACKAGES_CONFIG = Join-Path $ADDINS_DIR "packages.config"
-$MODULES_PACKAGES_CONFIG = Join-Path $MODULES_DIR "packages.config"
-
-# Make sure tools folder exists
-if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) {
-    Write-Verbose -Message "Creating tools directory..."
-    New-Item -Path $TOOLS_DIR -Type directory | out-null
-}
-
-# Make sure that packages.config exist.
-if (!(Test-Path $PACKAGES_CONFIG)) {
-    Write-Verbose -Message "Downloading packages.config..."    
-    try {        
-        $wc = GetProxyEnabledWebClient
-        $wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch {
-        Throw "Could not download packages.config."
-    }
-}
-
-# Try find NuGet.exe in path if not exists
-if (!(Test-Path $NUGET_EXE)) {
-    Write-Verbose -Message "Trying to find nuget.exe in PATH..."
-    $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) }
-    $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1
-    if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) {
-        Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)."
-        $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName
-    }
-}
-
-# Try download NuGet.exe if not exists
-if (!(Test-Path $NUGET_EXE)) {
-    Write-Verbose -Message "Downloading NuGet.exe..."
-    try {
-        $wc = GetProxyEnabledWebClient
-        $wc.DownloadFile($NUGET_URL, $NUGET_EXE)
-    } catch {
-        Throw "Could not download NuGet.exe."
-    }
-}
-
-# Save nuget.exe path to environment to be available to child processed
-$ENV:NUGET_EXE = $NUGET_EXE
-
-# Restore tools from NuGet?
-if(-Not $SkipToolPackageRestore.IsPresent) {
-    Push-Location
-    Set-Location $TOOLS_DIR
-
-    # Check for changes in packages.config and remove installed tools if true.
-    [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG)
-    if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or
-      ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) {
-        Write-Verbose -Message "Missing or changed package.config hash..."
-        Remove-Item * -Recurse -Exclude packages.config,nuget.exe
-    }
-
-    Write-Verbose -Message "Restoring tools from NuGet..."
-    $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`""
-
-    if ($LASTEXITCODE -ne 0) {
-        Throw "An error occurred while restoring NuGet tools."
-    }
-    else
-    {
-        $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII"
-    }
-    Write-Verbose -Message ($NuGetOutput | out-string)
-
-    Pop-Location
-}
-
-# Restore addins from NuGet
-if (Test-Path $ADDINS_PACKAGES_CONFIG) {
-    Push-Location
-    Set-Location $ADDINS_DIR
-
-    Write-Verbose -Message "Restoring addins from NuGet..."
-    $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`""
-
-    if ($LASTEXITCODE -ne 0) {
-        Throw "An error occurred while restoring NuGet addins."
-    }
-
-    Write-Verbose -Message ($NuGetOutput | out-string)
-
-    Pop-Location
-}
-
-# Restore modules from NuGet
-if (Test-Path $MODULES_PACKAGES_CONFIG) {
-    Push-Location
-    Set-Location $MODULES_DIR
-
-    Write-Verbose -Message "Restoring modules from NuGet..."
-    $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`""
-
-    if ($LASTEXITCODE -ne 0) {
-        Throw "An error occurred while restoring NuGet modules."
-    }
-
-    Write-Verbose -Message ($NuGetOutput | out-string)
-
-    Pop-Location
-}
-
-# Make sure that Cake has been installed.
-if (!(Test-Path $CAKE_EXE)) {
-    Throw "Could not find Cake.exe at $CAKE_EXE"
-}
-
-
-
-# Build Cake arguments
-$cakeArguments = @("$Script");
-if ($Target) { $cakeArguments += "-target=$Target" }
-if ($Configuration) { $cakeArguments += "-configuration=$Configuration" }
-if ($Verbosity) { $cakeArguments += "-verbosity=$Verbosity" }
-if ($ShowDescription) { $cakeArguments += "-showdescription" }
-if ($DryRun) { $cakeArguments += "-dryrun" }
-if ($Experimental) { $cakeArguments += "-experimental" }
-if ($Mono) { $cakeArguments += "-mono" }
-$cakeArguments += $ScriptArgs
-
-# Start Cake
-Write-Host "Running build script..."
-&$CAKE_EXE $cakeArguments
-exit $LASTEXITCODE
diff --git a/build.sh b/build.sh
deleted file mode 100644
index d088917ed78538ff57cf654cf71aad6bf045d655..0000000000000000000000000000000000000000
--- a/build.sh
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env bash
-
-#The MIT License (MIT)
-#
-#Copyright (c) 2014 - 2016 Patrik Svensson, Mattias Karlsson, Gary Ewan Park and contributors
-#
-#Permission is hereby granted, free of charge, to any person obtaining a copy of
-#this software and associated documentation files (the "Software"), to deal in
-#the Software without restriction, including without limitation the rights to
-#use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-#the Software, and to permit persons to whom the Software is furnished to do so,
-#subject to the following conditions:
-#
-#The above copyright notice and this permission notice shall be included in all
-#copies or substantial portions of the Software.
-#
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-#FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-#COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-#IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-#CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-##########################################################################
-# This is the Cake bootstrapper script for Linux and OS X.
-# This file was downloaded from https://github.com/cake-build/resources
-# Feel free to change this file to fit your needs.
-##########################################################################
-
-# Define directories.
-SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
-TOOLS_DIR=$SCRIPT_DIR/tools
-NUGET_EXE=$TOOLS_DIR/nuget.exe
-CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe
-PACKAGES_CONFIG=$TOOLS_DIR/packages.config
-PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum
-
-# Define md5sum or md5 depending on Linux/OSX
-MD5_EXE=
-if [[ "$(uname -s)" == "Darwin" ]]; then
-    MD5_EXE="md5 -r"
-else
-    MD5_EXE="md5sum"
-fi
-
-# Define default arguments.
-SCRIPT="build.cake"
-TARGET="Default"
-CONFIGURATION="Release"
-VERBOSITY="verbose"
-DRYRUN=
-SHOW_VERSION=false
-SCRIPT_ARGUMENTS=()
-
-# Parse arguments.
-for i in "$@"; do
-    case $1 in
-        -s|--script) SCRIPT="$2"; shift ;;
-        -t|--target) TARGET="$2"; shift ;;
-        -c|--configuration) CONFIGURATION="$2"; shift ;;
-        -v|--verbosity) VERBOSITY="$2"; shift ;;
-        -d|--dryrun) DRYRUN="-dryrun" ;;
-        --version) SHOW_VERSION=true ;;
-        --) shift; SCRIPT_ARGUMENTS+=("$@"); break ;;
-        *) SCRIPT_ARGUMENTS+=("$1") ;;
-    esac
-    shift
-done
-
-# Make sure the tools folder exist.
-if [ ! -d "$TOOLS_DIR" ]; then
-  mkdir "$TOOLS_DIR"
-fi
-
-# Make sure that packages.config exist.
-if [ ! -f "$TOOLS_DIR/packages.config" ]; then
-    echo "Downloading packages.config..."
-    curl -Lsfo "$TOOLS_DIR/packages.config" https://cakebuild.net/download/bootstrapper/packages
-    if [ $? -ne 0 ]; then
-        echo "An error occurred while downloading packages.config."
-        exit 1
-    fi
-fi
-
-# Download NuGet if it does not exist.
-if [ ! -f "$NUGET_EXE" ]; then
-    echo "Downloading NuGet..."
-    curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
-    if [ $? -ne 0 ]; then
-        echo "An error occurred while downloading nuget.exe."
-        exit 1
-    fi
-fi
-
-# Restore tools from NuGet.
-pushd "$TOOLS_DIR" >/dev/null
-if [ ! -f $PACKAGES_CONFIG_MD5 ] || [ "$( cat $PACKAGES_CONFIG_MD5 | sed 's/\r$//' )" != "$( $MD5_EXE $PACKAGES_CONFIG | awk '{ print $1 }' )" ]; then
-    find . -type d ! -name . | xargs rm -rf
-fi
-
-mono "$NUGET_EXE" install -ExcludeVersion
-if [ $? -ne 0 ]; then
-    echo "Could not restore NuGet packages."
-    exit 1
-fi
-
-$MD5_EXE $PACKAGES_CONFIG | awk '{ print $1 }' >| $PACKAGES_CONFIG_MD5
-
-popd >/dev/null
-
-# Make sure that Cake has been installed.
-if [ ! -f "$CAKE_EXE" ]; then
-    echo "Could not find Cake.exe at '$CAKE_EXE'."
-    exit 1
-fi
-
-# Start Cake
-if $SHOW_VERSION; then
-    exec mono "$CAKE_EXE" -version
-else
-    exec mono "$CAKE_EXE" $SCRIPT -verbosity=$VERBOSITY -configuration=$CONFIGURATION -target=$TARGET $DRYRUN "${SCRIPT_ARGUMENTS[@]}"
-fi
\ No newline at end of file
diff --git a/src/ECSManager.Tests/EcsManager.Tests.csproj b/src/ECSManager.Tests/EcsManager.Tests.csproj
index 0c7af6c5f74a86b4f0989bf038752dd7674ddebb..1f4e67956f250fcbfd212cf51ad4b5c40a98300d 100644
--- a/src/ECSManager.Tests/EcsManager.Tests.csproj
+++ b/src/ECSManager.Tests/EcsManager.Tests.csproj
@@ -1,79 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\NUnit3TestAdapter.3.17.0\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\packages\NUnit3TestAdapter.3.17.0\build\net35\NUnit3TestAdapter.props')" />
-  <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
-  <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>{680BC188-42CC-4C00-BFFF-C7C59F612444}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Coscine.ECSManager.Tests</RootNamespace>
-    <AssemblyName>Coscine.ECSManager.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <Deterministic>true</Deterministic>
-    <NuGetPackageImportStamp>
-    </NuGetPackageImportStamp>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <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' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Consul, Version=0.7.2.6, Culture=neutral, PublicKeyToken=20a6ad9a81df1d95, processorArchitecture=MSIL">
-      <HintPath>..\packages\Consul.0.7.2.6\lib\net45\Consul.dll</HintPath>
-    </Reference>
-    <Reference Include="Coscine.Configuration, Version=1.5.0.0, Culture=neutral, PublicKeyToken=ce3d7a32d7dc1e5a, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.Configuration.1.5.0\lib\net461\Coscine.Configuration.dll</HintPath>
-    </Reference>
-    <Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
-      <HintPath>..\packages\NUnit.3.12.0\lib\net45\nunit.framework.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Net.Http.WebRequest" />
-    <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" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="EcsManagerTests.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\ECSManager\EcsManager.csproj">
-      <Project>{dd73734b-3b55-44d3-843d-6eba0f3601d7}</Project>
-      <Name>EcsManager</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
-    <Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.17.0\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.17.0\build\net35\NUnit3TestAdapter.props'))" />
-  </Target>
+<Project Sdk="Microsoft.NET.Sdk">
+	<PropertyGroup>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Coscine.ECSManager.Tests</RootNamespace>
+		<AssemblyName>Coscine.ECSManager.Tests</AssemblyName>
+		<TargetFrameworks>net5.0;net461</TargetFrameworks>
+	</PropertyGroup>
+	<ItemGroup>
+		<ProjectReference Include="..\ECSManager\EcsManager.csproj" />
+	</ItemGroup>
+	<ItemGroup>
+		<PackageReference Include="Consul" Version="1.6.1.1" />
+		<PackageReference Include="Coscine.Configuration" Version="*-*" />
+		<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
+		<PackageReference Include="NUnit" Version="3.13.0" />
+		<PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
+	</ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/src/ECSManager.Tests/Properties/AssemblyInfo.cs b/src/ECSManager.Tests/Properties/AssemblyInfo.cs
index a648fbe25d7cb7bb87049ebd306908656040f3cc..cbe550fbe3ccad45542149ec77777dfe32d3f4ef 100644
--- a/src/ECSManager.Tests/Properties/AssemblyInfo.cs
+++ b/src/ECSManager.Tests/Properties/AssemblyInfo.cs
@@ -5,12 +5,5 @@
 //------------------------------------------------------------------------------
 using System.Reflection;
 
-[assembly: AssemblyTitle("EcsManager.Tests")]
 [assembly: AssemblyDescription("EcsManager.Tests is a part of the CoScInE group.")]
-[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
-[assembly: AssemblyProduct("EcsManager.Tests")]
-[assembly: AssemblyVersion("1.1.1")]
-[assembly: AssemblyFileVersion("1.1.1")]
-[assembly: AssemblyInformationalVersion("1.1.1-topic-1279-quota0001")]
 [assembly: AssemblyCopyright("2021 IT Center, RWTH Aachen University")]
-
diff --git a/src/ECSManager.Tests/app.config b/src/ECSManager.Tests/app.config
deleted file mode 100644
index dde2c3cc64e799408ff0170f1089525f1b140c2b..0000000000000000000000000000000000000000
--- a/src/ECSManager.Tests/app.config
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-</configuration>
\ No newline at end of file
diff --git a/src/ECSManager.Tests/packages.config b/src/ECSManager.Tests/packages.config
deleted file mode 100644
index 16347db03504209c2ef684cbdd76d47463e9e4ff..0000000000000000000000000000000000000000
--- a/src/ECSManager.Tests/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Consul" version="0.7.2.6" targetFramework="net461" />
-  <package id="Coscine.Configuration" version="1.5.0" targetFramework="net461" />
-  <package id="NUnit" version="3.12.0" targetFramework="net461" />
-  <package id="NUnit3TestAdapter" version="3.17.0" targetFramework="net461" />
-</packages>
\ No newline at end of file
diff --git a/src/ECSManager/EcsManager.csproj b/src/ECSManager/EcsManager.csproj
index dc75b4b837bb80d11ad22a92ca9620f2fa530b27..98a4ab5f476c9cdc19e1763d072b564f4410ebce 100644
--- a/src/ECSManager/EcsManager.csproj
+++ b/src/ECSManager/EcsManager.csproj
@@ -1,69 +1,15 @@
-<?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>{DD73734B-3B55-44D3-843D-6EBA0F3601D7}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Coscine.ECSManager</RootNamespace>
-    <AssemblyName>Coscine.ECSManager</AssemblyName>
-    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <Deterministic>true</Deterministic>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <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' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Consul, Version=0.7.2.6, Culture=neutral, PublicKeyToken=20a6ad9a81df1d95, processorArchitecture=MSIL">
-      <HintPath>..\packages\Consul.0.7.2.6\lib\net45\Consul.dll</HintPath>
-    </Reference>
-    <Reference Include="Coscine.Configuration, Version=1.5.0.0, Culture=neutral, PublicKeyToken=ce3d7a32d7dc1e5a, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.Configuration.1.5.0\lib\net461\Coscine.Configuration.dll</HintPath>
-    </Reference>
-    <Reference Include="ECSManagementSDK, Version=1.2.2.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\packages\ECSManagementSDK.1.2.2\lib\net45\ECSManagementSDK.dll</HintPath>
-    </Reference>
-    <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <HintPath>..\packages\Newtonsoft.Json.10.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Net.Http.WebRequest" />
-    <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" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="EcsManager.cs" />
-    <Compile Include="EcsManagerConfiguration.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+<Project Sdk="Microsoft.NET.Sdk">
+	<PropertyGroup>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Coscine.ECSManager</RootNamespace>
+		<AssemblyName>Coscine.ECSManager</AssemblyName>
+		<TargetFrameworks>net5.0;net461</TargetFrameworks>
+	</PropertyGroup>
+	<ItemGroup>
+		<PackageReference Include="Consul" Version="1.6.1.1" />
+		<PackageReference Include="Coscine.Configuration" Version="*-*" />
+		<PackageReference Include="ECSManagementSDK" Version="1.2.2" />
+		<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
+		<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
+	</ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/src/ECSManager/Properties/AssemblyInfo.cs b/src/ECSManager/Properties/AssemblyInfo.cs
index a9432fb0fe9a4f038817ddd5bcca10d714057be7..d0bb9b82e12b197a6b35bf479f52e8e17862cf3a 100644
--- a/src/ECSManager/Properties/AssemblyInfo.cs
+++ b/src/ECSManager/Properties/AssemblyInfo.cs
@@ -5,12 +5,5 @@
 //------------------------------------------------------------------------------
 using System.Reflection;
 
-[assembly: AssemblyTitle("EcsManager")]
 [assembly: AssemblyDescription("EcsManager is a part of the CoScInE group.")]
-[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
-[assembly: AssemblyProduct("EcsManager")]
-[assembly: AssemblyVersion("1.1.1")]
-[assembly: AssemblyFileVersion("1.1.1")]
-[assembly: AssemblyInformationalVersion("1.1.1-topic-1279-quota0001")]
 [assembly: AssemblyCopyright("2021 IT Center, RWTH Aachen University")]
-
diff --git a/src/ECSManager/app.config b/src/ECSManager/app.config
deleted file mode 100644
index dde2c3cc64e799408ff0170f1089525f1b140c2b..0000000000000000000000000000000000000000
--- a/src/ECSManager/app.config
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-</configuration>
\ No newline at end of file
diff --git a/src/ECSManager/packages.config b/src/ECSManager/packages.config
deleted file mode 100644
index dd9b026f5da2834310d2c08fa4c3995fb28c2cb7..0000000000000000000000000000000000000000
--- a/src/ECSManager/packages.config
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Consul" version="0.7.2.6" targetFramework="net461" />
-  <package id="Coscine.Configuration" version="1.5.0" targetFramework="net461" />
-  <package id="ECSManagementSDK" version="1.2.2" targetFramework="net461" />
-  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net461" />
-  <package id="Newtonsoft.Json" version="10.0.1" targetFramework="net461" />
-</packages>
\ No newline at end of file
diff --git a/tools/packages.config b/tools/packages.config
deleted file mode 100644
index 14aef3bf00189e621993b61ccea2e4a203e73b9b..0000000000000000000000000000000000000000
--- a/tools/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-    <package id="Cake" version="0.36.0" />
-</packages>