diff --git a/Duplicati.sln b/Duplicati.sln
index fad895c86..8c41c065f 100644
--- a/Duplicati.sln
+++ b/Duplicati.sln
@@ -59,9 +59,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Scheduler.Data",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Scheduler", "Duplicati\Scheduler\Duplicati.Scheduler.csproj", "{D1D503E8-5CF7-413B-81FB-403D65B43AAB}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utility", "Utility\Utility.csproj", "{0E3DF716-5657-4B51-9BF2-3791880930E1}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Scheduler.Utility", "Duplicati\Scheduler\Utility\Duplicati.Scheduler.Utility.csproj", "{0E3DF716-5657-4B51-9BF2-3791880930E1}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.RunBackup", "Duplicati\RunBackup\Duplicati.RunBackup.csproj", "{520FA2BD-1C59-40D9-BCB5-EDA11327B7F0}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Scheduler.RunBackup", "Duplicati\Scheduler\RunBackup\Duplicati.Scheduler.RunBackup.csproj", "{520FA2BD-1C59-40D9-BCB5-EDA11327B7F0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Duplicati/RunBackup/Duplicati.RunBackup.csproj.user b/Duplicati/RunBackup/Duplicati.RunBackup.csproj.user
deleted file mode 100644
index 6823ec93a..000000000
--- a/Duplicati/RunBackup/Duplicati.RunBackup.csproj.user
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
- test DryRun
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- en-US
- false
-
-
\ No newline at end of file
diff --git a/Duplicati/Scheduler/Data/Duplicati.Scheduler.Data.csproj b/Duplicati/Scheduler/Data/Duplicati.Scheduler.Data.csproj
index 41294d396..631668683 100644
--- a/Duplicati/Scheduler/Data/Duplicati.Scheduler.Data.csproj
+++ b/Duplicati/Scheduler/Data/Duplicati.Scheduler.Data.csproj
@@ -96,7 +96,7 @@
-
+
{0E3DF716-5657-4B51-9BF2-3791880930E1}
Utility
diff --git a/Duplicati/Scheduler/Duplicati.Scheduler.csproj b/Duplicati/Scheduler/Duplicati.Scheduler.csproj
index a92c0bc81..54d432e55 100644
--- a/Duplicati/Scheduler/Duplicati.Scheduler.csproj
+++ b/Duplicati/Scheduler/Duplicati.Scheduler.csproj
@@ -216,7 +216,7 @@
-
+
{0E3DF716-5657-4B51-9BF2-3791880930E1}
Utility
@@ -260,7 +260,7 @@
{DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}
Duplicati.Library.Utility
-
+
{520FA2BD-1C59-40D9-BCB5-EDA11327B7F0}
Duplicati.RunBackup
diff --git a/Duplicati/RunBackup/AppendLog.cs b/Duplicati/Scheduler/RunBackup/AppendLog.cs
similarity index 100%
rename from Duplicati/RunBackup/AppendLog.cs
rename to Duplicati/Scheduler/RunBackup/AppendLog.cs
diff --git a/Duplicati/RunBackup/Duplicati.RunBackup.csproj b/Duplicati/Scheduler/RunBackup/Duplicati.Scheduler.RunBackup.csproj
similarity index 87%
rename from Duplicati/RunBackup/Duplicati.RunBackup.csproj
rename to Duplicati/Scheduler/RunBackup/Duplicati.Scheduler.RunBackup.csproj
index d3ba9a05b..04a1f739e 100644
--- a/Duplicati/RunBackup/Duplicati.RunBackup.csproj
+++ b/Duplicati/Scheduler/RunBackup/Duplicati.Scheduler.RunBackup.csproj
@@ -126,39 +126,39 @@
-
+
{0E3DF716-5657-4B51-9BF2-3791880930E1}
Utility
-
+
{FC9B7611-836F-4127-8B44-A7C31F506807}
Duplicati.Library.Backend.File
-
+
{F61679A9-E5DE-468A-B5A4-05F92D0143D2}
Duplicati.Library.Backend.FTP
-
+
{19ECCE09-B5EB-406C-8C57-BAC66997D469}
Duplicati.Library.Compression
-
+
{0CA86ECF-5BEC-4909-B4F6-110A03B30B92}
Duplicati.Library.DynamicLoader
-
+
{D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}
Duplicati.Library.Logging
-
+
{10D2D1B7-C664-41D8-9B3A-00040C3D421B}
Duplicati.Library.Main
-
+
{DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}
Duplicati.Library.Utility
-
+
{C8F0DD19-E242-4E9C-A707-2FFADE8D7970}
Duplicati.Scheduler.Data
diff --git a/Duplicati/RunBackup/Notifier.cs b/Duplicati/Scheduler/RunBackup/Notifier.cs
similarity index 100%
rename from Duplicati/RunBackup/Notifier.cs
rename to Duplicati/Scheduler/RunBackup/Notifier.cs
diff --git a/Duplicati/RunBackup/Notifier.resx b/Duplicati/Scheduler/RunBackup/Notifier.resx
similarity index 100%
rename from Duplicati/RunBackup/Notifier.resx
rename to Duplicati/Scheduler/RunBackup/Notifier.resx
diff --git a/Duplicati/RunBackup/Options.cs b/Duplicati/Scheduler/RunBackup/Options.cs
similarity index 100%
rename from Duplicati/RunBackup/Options.cs
rename to Duplicati/Scheduler/RunBackup/Options.cs
diff --git a/Duplicati/RunBackup/Pipe.cs b/Duplicati/Scheduler/RunBackup/Pipe.cs
similarity index 100%
rename from Duplicati/RunBackup/Pipe.cs
rename to Duplicati/Scheduler/RunBackup/Pipe.cs
diff --git a/Duplicati/RunBackup/Properties/AssemblyInfo.cs b/Duplicati/Scheduler/RunBackup/Properties/AssemblyInfo.cs
similarity index 100%
rename from Duplicati/RunBackup/Properties/AssemblyInfo.cs
rename to Duplicati/Scheduler/RunBackup/Properties/AssemblyInfo.cs
diff --git a/Duplicati/RunBackup/Properties/Settings.Designer.cs b/Duplicati/Scheduler/RunBackup/Properties/Settings.Designer.cs
similarity index 100%
rename from Duplicati/RunBackup/Properties/Settings.Designer.cs
rename to Duplicati/Scheduler/RunBackup/Properties/Settings.Designer.cs
diff --git a/Duplicati/RunBackup/Properties/Settings.settings b/Duplicati/Scheduler/RunBackup/Properties/Settings.settings
similarity index 100%
rename from Duplicati/RunBackup/Properties/Settings.settings
rename to Duplicati/Scheduler/RunBackup/Properties/Settings.settings
diff --git a/Duplicati/RunBackup/RunBackup.cs b/Duplicati/Scheduler/RunBackup/RunBackup.cs
similarity index 100%
rename from Duplicati/RunBackup/RunBackup.cs
rename to Duplicati/Scheduler/RunBackup/RunBackup.cs
diff --git a/Duplicati/RunBackup/app.config b/Duplicati/Scheduler/RunBackup/app.config
similarity index 100%
rename from Duplicati/RunBackup/app.config
rename to Duplicati/Scheduler/RunBackup/app.config
diff --git a/Utility/AssemblyInfo.cs b/Duplicati/Scheduler/Utility/AssemblyInfo.cs
similarity index 100%
rename from Utility/AssemblyInfo.cs
rename to Duplicati/Scheduler/Utility/AssemblyInfo.cs
diff --git a/Utility/CredentialsDialog.cs b/Duplicati/Scheduler/Utility/CredentialsDialog.cs
similarity index 100%
rename from Utility/CredentialsDialog.cs
rename to Duplicati/Scheduler/Utility/CredentialsDialog.cs
diff --git a/Utility/DayPicker.Designer.cs b/Duplicati/Scheduler/Utility/DayPicker.Designer.cs
similarity index 100%
rename from Utility/DayPicker.Designer.cs
rename to Duplicati/Scheduler/Utility/DayPicker.Designer.cs
diff --git a/Utility/DayPicker.cs b/Duplicati/Scheduler/Utility/DayPicker.cs
similarity index 100%
rename from Utility/DayPicker.cs
rename to Duplicati/Scheduler/Utility/DayPicker.cs
diff --git a/Utility/DayPicker.resx b/Duplicati/Scheduler/Utility/DayPicker.resx
similarity index 100%
rename from Utility/DayPicker.resx
rename to Duplicati/Scheduler/Utility/DayPicker.resx
diff --git a/Utility/Utility.csproj b/Duplicati/Scheduler/Utility/Duplicati.Scheduler.Utility.csproj
similarity index 100%
rename from Utility/Utility.csproj
rename to Duplicati/Scheduler/Utility/Duplicati.Scheduler.Utility.csproj
diff --git a/Utility/FolderTreeControl.Designer.cs b/Duplicati/Scheduler/Utility/FolderTreeControl.Designer.cs
similarity index 100%
rename from Utility/FolderTreeControl.Designer.cs
rename to Duplicati/Scheduler/Utility/FolderTreeControl.Designer.cs
diff --git a/Utility/FolderTreeControl.cs b/Duplicati/Scheduler/Utility/FolderTreeControl.cs
similarity index 100%
rename from Utility/FolderTreeControl.cs
rename to Duplicati/Scheduler/Utility/FolderTreeControl.cs
diff --git a/Utility/FolderTreeControl.resx b/Duplicati/Scheduler/Utility/FolderTreeControl.resx
similarity index 100%
rename from Utility/FolderTreeControl.resx
rename to Duplicati/Scheduler/Utility/FolderTreeControl.resx
diff --git a/Utility/GetCheck.Designer.cs b/Duplicati/Scheduler/Utility/GetCheck.Designer.cs
similarity index 100%
rename from Utility/GetCheck.Designer.cs
rename to Duplicati/Scheduler/Utility/GetCheck.Designer.cs
diff --git a/Utility/GetCheck.cs b/Duplicati/Scheduler/Utility/GetCheck.cs
similarity index 100%
rename from Utility/GetCheck.cs
rename to Duplicati/Scheduler/Utility/GetCheck.cs
diff --git a/Utility/GetCheck.resx b/Duplicati/Scheduler/Utility/GetCheck.resx
similarity index 100%
rename from Utility/GetCheck.resx
rename to Duplicati/Scheduler/Utility/GetCheck.resx
diff --git a/Utility/Images/FolderChecked.png b/Duplicati/Scheduler/Utility/Images/FolderChecked.png
similarity index 100%
rename from Utility/Images/FolderChecked.png
rename to Duplicati/Scheduler/Utility/Images/FolderChecked.png
diff --git a/Utility/Images/FolderPartial.png b/Duplicati/Scheduler/Utility/Images/FolderPartial.png
similarity index 100%
rename from Utility/Images/FolderPartial.png
rename to Duplicati/Scheduler/Utility/Images/FolderPartial.png
diff --git a/Utility/Images/FolderUnchecked.png b/Duplicati/Scheduler/Utility/Images/FolderUnchecked.png
similarity index 100%
rename from Utility/Images/FolderUnchecked.png
rename to Duplicati/Scheduler/Utility/Images/FolderUnchecked.png
diff --git a/Utility/MonthPicker.Designer.cs b/Duplicati/Scheduler/Utility/MonthPicker.Designer.cs
similarity index 100%
rename from Utility/MonthPicker.Designer.cs
rename to Duplicati/Scheduler/Utility/MonthPicker.Designer.cs
diff --git a/Utility/MonthPicker.cs b/Duplicati/Scheduler/Utility/MonthPicker.cs
similarity index 100%
rename from Utility/MonthPicker.cs
rename to Duplicati/Scheduler/Utility/MonthPicker.cs
diff --git a/Utility/MonthPicker.resx b/Duplicati/Scheduler/Utility/MonthPicker.resx
similarity index 100%
rename from Utility/MonthPicker.resx
rename to Duplicati/Scheduler/Utility/MonthPicker.resx
diff --git a/Utility/NamedPipeServerStream.cs b/Duplicati/Scheduler/Utility/NamedPipeServerStream.cs
similarity index 100%
rename from Utility/NamedPipeServerStream.cs
rename to Duplicati/Scheduler/Utility/NamedPipeServerStream.cs
diff --git a/Utility/PipeClient.cs b/Duplicati/Scheduler/Utility/PipeClient.cs
similarity index 100%
rename from Utility/PipeClient.cs
rename to Duplicati/Scheduler/Utility/PipeClient.cs
diff --git a/Utility/PipeServer.cs b/Duplicati/Scheduler/Utility/PipeServer.cs
similarity index 100%
rename from Utility/PipeServer.cs
rename to Duplicati/Scheduler/Utility/PipeServer.cs
diff --git a/Utility/Properties/AssemblyInfo.cs b/Duplicati/Scheduler/Utility/Properties/AssemblyInfo.cs
similarity index 100%
rename from Utility/Properties/AssemblyInfo.cs
rename to Duplicati/Scheduler/Utility/Properties/AssemblyInfo.cs
diff --git a/Utility/Properties/Resources.Designer.cs b/Duplicati/Scheduler/Utility/Properties/Resources.Designer.cs
similarity index 100%
rename from Utility/Properties/Resources.Designer.cs
rename to Duplicati/Scheduler/Utility/Properties/Resources.Designer.cs
diff --git a/Utility/Properties/Resources.resx b/Duplicati/Scheduler/Utility/Properties/Resources.resx
similarity index 100%
rename from Utility/Properties/Resources.resx
rename to Duplicati/Scheduler/Utility/Properties/Resources.resx
diff --git a/Utility/SecureTextBox.Designer.cs b/Duplicati/Scheduler/Utility/SecureTextBox.Designer.cs
similarity index 100%
rename from Utility/SecureTextBox.Designer.cs
rename to Duplicati/Scheduler/Utility/SecureTextBox.Designer.cs
diff --git a/Utility/SecureTextBox.cs b/Duplicati/Scheduler/Utility/SecureTextBox.cs
similarity index 100%
rename from Utility/SecureTextBox.cs
rename to Duplicati/Scheduler/Utility/SecureTextBox.cs
diff --git a/Utility/SecureTextBox.resx b/Duplicati/Scheduler/Utility/SecureTextBox.resx
similarity index 100%
rename from Utility/SecureTextBox.resx
rename to Duplicati/Scheduler/Utility/SecureTextBox.resx
diff --git a/Utility/Su.cs b/Duplicati/Scheduler/Utility/Su.cs
similarity index 100%
rename from Utility/Su.cs
rename to Duplicati/Scheduler/Utility/Su.cs
diff --git a/Utility/Tools.cs b/Duplicati/Scheduler/Utility/Tools.cs
similarity index 100%
rename from Utility/Tools.cs
rename to Duplicati/Scheduler/Utility/Tools.cs
diff --git a/Utility/User.cs b/Duplicati/Scheduler/Utility/User.cs
similarity index 100%
rename from Utility/User.cs
rename to Duplicati/Scheduler/Utility/User.cs