diff --git a/.vs/prog2-ss2020-wienkop/DesignTimeBuild/.dtbcache.v2 b/.vs/prog2-ss2020-wienkop/DesignTimeBuild/.dtbcache.v2
index 23aeca6f87a72b62c30231e6aa07ce7a924a9f68..b920141139ae56d16885ade62036fc38d43a2368 100644
Binary files a/.vs/prog2-ss2020-wienkop/DesignTimeBuild/.dtbcache.v2 and b/.vs/prog2-ss2020-wienkop/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/.vs/prog2-ss2020-wienkop/v16/.suo b/.vs/prog2-ss2020-wienkop/v16/.suo
index ca9913eeabfdc533f06299288c678123de9264b3..1805ae448267046c4cc3b4bdb80ccd096e405e7c 100644
Binary files a/.vs/prog2-ss2020-wienkop/v16/.suo and b/.vs/prog2-ss2020-wienkop/v16/.suo differ
diff --git a/01Indexer/obj/Debug/netcoreapp3.1/01Indexer.csprojAssemblyReference.cache b/01Indexer/obj/Debug/netcoreapp3.1/01Indexer.csprojAssemblyReference.cache
index 7f0f297190e841544bdf8650ade14a114ad67ff8..d23e9aa07c8d8429276b43b4c93680bc8dead9dc 100644
Binary files a/01Indexer/obj/Debug/netcoreapp3.1/01Indexer.csprojAssemblyReference.cache and b/01Indexer/obj/Debug/netcoreapp3.1/01Indexer.csprojAssemblyReference.cache differ
diff --git a/01KlassenWiederholung/obj/Debug/netcoreapp3.1/01KlassenWiederholung.csprojAssemblyReference.cache b/01KlassenWiederholung/obj/Debug/netcoreapp3.1/01KlassenWiederholung.csprojAssemblyReference.cache
index 5ca8689e7a51189b128e7f4df3d3c0f1564d1c96..50de7c911265d3d419ff88923e9e05186604d27f 100644
Binary files a/01KlassenWiederholung/obj/Debug/netcoreapp3.1/01KlassenWiederholung.csprojAssemblyReference.cache and b/01KlassenWiederholung/obj/Debug/netcoreapp3.1/01KlassenWiederholung.csprojAssemblyReference.cache differ
diff --git a/01OperatorOverloading/obj/Debug/netcoreapp3.1/01OperatorOverloading.csprojAssemblyReference.cache b/01OperatorOverloading/obj/Debug/netcoreapp3.1/01OperatorOverloading.csprojAssemblyReference.cache
index 84c2dbfa995747842ad98922685bd675df44120f..261fb667b68660f7adefe3e8be7ab1ee784b53ca 100644
Binary files a/01OperatorOverloading/obj/Debug/netcoreapp3.1/01OperatorOverloading.csprojAssemblyReference.cache and b/01OperatorOverloading/obj/Debug/netcoreapp3.1/01OperatorOverloading.csprojAssemblyReference.cache differ
diff --git a/01WPF_Demo/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/01WPF_Demo/obj/Debug/DesignTimeResolveAssemblyReferences.cache
index 7ecb8823c7e74842c591027997227ef820353089..a15382e248aa94af941b144fc09b983cb2850f38 100644
Binary files a/01WPF_Demo/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/01WPF_Demo/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache b/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache
index 28d58aefeb25d096925a91f2b9e911eda0e4c6ed..9bb701fecadc48763763df796398b7861ff2f7ec 100644
Binary files a/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache and b/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache differ
diff --git a/10 UebgMsgServer/10 UebgMsgServer.csproj b/10 UebgMsgServer/10 UebgMsgServer.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..6fea2c942ffc6070d366ae3817d5aea3dcea8678
--- /dev/null
+++ b/10 UebgMsgServer/10 UebgMsgServer.csproj	
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_10_UebgMsgServer</RootNamespace>
+  </PropertyGroup>
+
+</Project>
diff --git a/10 UebgMsgServer/Program.cs b/10 UebgMsgServer/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0b4bdce1a7a6ebfaa81ffcb741c6444ce21c48af
--- /dev/null
+++ b/10 UebgMsgServer/Program.cs	
@@ -0,0 +1,67 @@
+using System;
+
+/*
+ * Gegeben ist das folgende Programm als Grundgerüst eines Nachrichtendienstes. 
+ * Dabei soll gelten: Ein Nachrichtenserver bietet eine Schnittstelle (Delegate), an der beliebig viele 
+ * Nachrichtenempfangsmethoden anderer Klassen andocken können. Bevor Nachrichten jedoch versendet werden, 
+ * können diese mit Hilfe einer oder mehrerer kundenspezifischer Modifikationsfunktionen bearbeitet werden 
+ * (hier wir als Beispiel ein alter Firmenname durch den neuen Firmennamen ersetzt sowie an die Nachrichten 
+ * wird noch ein Anhängsel (Signatur) angehängt. 
+ */
+namespace _10_UebgMsgServer
+{
+    delegate void Callback(_____________________________________________);
+    delegate void Transform(_____________________________________________);
+    class MsgServer
+    {
+        public event Callback notify;
+        public event Transform transformations;
+
+        public void SendMsg(string msg)
+        {
+            Console.WriteLine($"\n\n\nNeue Nachricht (Original): {msg}");
+            if (transformations != null)
+                transformations(ref msg);
+            if (notify != null)
+                notify(msg);
+        }
+    }
+    class Client
+    {
+        public string Name { get; }
+        public Client(string Name) { this.Name = Name; }
+        public void Listener(string text)
+        {
+            Console.WriteLine($"  {Name}: {text}");
+        }
+    }
+    class Program
+    {
+        static void Signature(ref string text)
+        {
+            text += "\nMessage via Magic MsgServer, AAA Corporation";
+        }
+        static void OldNewCorp(ref string text)
+        {
+            text = text.Replace("ZZZ Corporation", "AAA Corporation");
+        }
+        static void Main(string[] args)
+        {
+            MsgServer server1 = new MsgServer();
+            server1.transformations += OldNewCorp;
+            server1.transformations += Signature;
+
+            Client mueller = new Client("Müller");
+            Client meier = new Client("Meier");
+            Client huber = new Client("Huber");
+            server1.notify += mueller.Listener;
+            server1.notify += meier.Listener;
+
+            server1.SendMsg("Herzlich Willkommen, liebe Kunden! ZZZ Corporation");
+
+            server1.notify += huber.Listener;
+            server1.notify -= mueller.Listener;
+            server1.SendMsg("Wir wünschen einen erfolgreichen Tag, ZZZ Corporation");
+        }
+    }
+}
diff --git a/10 UebgMsgServer/obj/10 UebgMsgServer.csproj.nuget.dgspec.json b/10 UebgMsgServer/obj/10 UebgMsgServer.csproj.nuget.dgspec.json
new file mode 100644
index 0000000000000000000000000000000000000000..f80a85ba9d94037d9c16ee76ce8135ddfeba43eb
--- /dev/null
+++ b/10 UebgMsgServer/obj/10 UebgMsgServer.csproj.nuget.dgspec.json	
@@ -0,0 +1,60 @@
+{
+  "format": 1,
+  "restore": {
+    "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\10 UebgMsgServer\\10 UebgMsgServer.csproj": {}
+  },
+  "projects": {
+    "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\10 UebgMsgServer\\10 UebgMsgServer.csproj": {
+      "version": "1.0.0",
+      "restore": {
+        "projectUniqueName": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\10 UebgMsgServer\\10 UebgMsgServer.csproj",
+        "projectName": "10 UebgMsgServer",
+        "projectPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\10 UebgMsgServer\\10 UebgMsgServer.csproj",
+        "packagesPath": "C:\\Users\\wienkop\\.nuget\\packages\\",
+        "outputPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\10 UebgMsgServer\\obj\\",
+        "projectStyle": "PackageReference",
+        "configFilePaths": [
+          "C:\\Users\\wienkop\\AppData\\Roaming\\NuGet\\NuGet.Config",
+          "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+        ],
+        "originalTargetFrameworks": [
+          "netcoreapp3.1"
+        ],
+        "sources": {
+          "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+          "https://api.nuget.org/v3/index.json": {}
+        },
+        "frameworks": {
+          "netcoreapp3.1": {
+            "projectReferences": {}
+          }
+        },
+        "warningProperties": {
+          "warnAsError": [
+            "NU1605"
+          ]
+        }
+      },
+      "frameworks": {
+        "netcoreapp3.1": {
+          "imports": [
+            "net461",
+            "net462",
+            "net47",
+            "net471",
+            "net472",
+            "net48"
+          ],
+          "assetTargetFallback": true,
+          "warn": true,
+          "frameworkReferences": {
+            "Microsoft.NETCore.App": {
+              "privateAssets": "all"
+            }
+          },
+          "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.301\\RuntimeIdentifierGraph.json"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/10 UebgMsgServer/obj/10 UebgMsgServer.csproj.nuget.g.props b/10 UebgMsgServer/obj/10 UebgMsgServer.csproj.nuget.g.props
new file mode 100644
index 0000000000000000000000000000000000000000..71e2560680d6cba0b1c8f0e4f5c188f730659b86
--- /dev/null
+++ b/10 UebgMsgServer/obj/10 UebgMsgServer.csproj.nuget.g.props	
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
+    <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
+    <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
+    <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
+    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\wienkop\.nuget\packages\</NuGetPackageFolders>
+    <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
+    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.6.0</NuGetToolVersion>
+  </PropertyGroup>
+  <PropertyGroup>
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/10 UebgMsgServer/obj/10 UebgMsgServer.csproj.nuget.g.targets b/10 UebgMsgServer/obj/10 UebgMsgServer.csproj.nuget.g.targets
new file mode 100644
index 0000000000000000000000000000000000000000..53cfaa19b16f3769b2bfc33db3b5c0053c16fdba
--- /dev/null
+++ b/10 UebgMsgServer/obj/10 UebgMsgServer.csproj.nuget.g.targets	
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/10 UebgMsgServer/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs b/10 UebgMsgServer/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ad8dfe1a6310302587a2d0c0111d81b250eb4105
--- /dev/null
+++ b/10 UebgMsgServer/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs	
@@ -0,0 +1,4 @@
+// <autogenerated />
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]
diff --git a/10 UebgMsgServer/obj/Debug/netcoreapp3.1/10 UebgMsgServer.AssemblyInfo.cs b/10 UebgMsgServer/obj/Debug/netcoreapp3.1/10 UebgMsgServer.AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..9c0fefff6284fe0e68465b275162368bf918bd17
--- /dev/null
+++ b/10 UebgMsgServer/obj/Debug/netcoreapp3.1/10 UebgMsgServer.AssemblyInfo.cs	
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Dieser Code wurde von einem Tool generiert.
+//     Laufzeitversion:4.0.30319.42000
+//
+//     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+//     der Code erneut generiert wird.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("10 UebgMsgServer")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
+[assembly: System.Reflection.AssemblyProductAttribute("10 UebgMsgServer")]
+[assembly: System.Reflection.AssemblyTitleAttribute("10 UebgMsgServer")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// Von der MSBuild WriteCodeFragment-Klasse generiert.
+
diff --git a/10 UebgMsgServer/obj/Debug/netcoreapp3.1/10 UebgMsgServer.AssemblyInfoInputs.cache b/10 UebgMsgServer/obj/Debug/netcoreapp3.1/10 UebgMsgServer.AssemblyInfoInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..2e21c9e1d639c01c40bd838143e08d69489f6a3d
--- /dev/null
+++ b/10 UebgMsgServer/obj/Debug/netcoreapp3.1/10 UebgMsgServer.AssemblyInfoInputs.cache	
@@ -0,0 +1 @@
+8c6819977effed5376d74351be4414db2bcc0ba8
diff --git a/10 UebgMsgServer/obj/Debug/netcoreapp3.1/10 UebgMsgServer.assets.cache b/10 UebgMsgServer/obj/Debug/netcoreapp3.1/10 UebgMsgServer.assets.cache
new file mode 100644
index 0000000000000000000000000000000000000000..da1be941292c061513864cd70dc09ca9b29bdc8d
Binary files /dev/null and b/10 UebgMsgServer/obj/Debug/netcoreapp3.1/10 UebgMsgServer.assets.cache differ
diff --git a/10 UebgMsgServer/obj/project.assets.json b/10 UebgMsgServer/obj/project.assets.json
new file mode 100644
index 0000000000000000000000000000000000000000..5aa017ae4f543058ebbdc5e039539d634c026494
--- /dev/null
+++ b/10 UebgMsgServer/obj/project.assets.json	
@@ -0,0 +1,65 @@
+{
+  "version": 3,
+  "targets": {
+    ".NETCoreApp,Version=v3.1": {}
+  },
+  "libraries": {},
+  "projectFileDependencyGroups": {
+    ".NETCoreApp,Version=v3.1": []
+  },
+  "packageFolders": {
+    "C:\\Users\\wienkop\\.nuget\\packages\\": {}
+  },
+  "project": {
+    "version": "1.0.0",
+    "restore": {
+      "projectUniqueName": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\10 UebgMsgServer\\10 UebgMsgServer.csproj",
+      "projectName": "10 UebgMsgServer",
+      "projectPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\10 UebgMsgServer\\10 UebgMsgServer.csproj",
+      "packagesPath": "C:\\Users\\wienkop\\.nuget\\packages\\",
+      "outputPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\10 UebgMsgServer\\obj\\",
+      "projectStyle": "PackageReference",
+      "configFilePaths": [
+        "C:\\Users\\wienkop\\AppData\\Roaming\\NuGet\\NuGet.Config",
+        "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+      ],
+      "originalTargetFrameworks": [
+        "netcoreapp3.1"
+      ],
+      "sources": {
+        "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+        "https://api.nuget.org/v3/index.json": {}
+      },
+      "frameworks": {
+        "netcoreapp3.1": {
+          "projectReferences": {}
+        }
+      },
+      "warningProperties": {
+        "warnAsError": [
+          "NU1605"
+        ]
+      }
+    },
+    "frameworks": {
+      "netcoreapp3.1": {
+        "imports": [
+          "net461",
+          "net462",
+          "net47",
+          "net471",
+          "net472",
+          "net48"
+        ],
+        "assetTargetFallback": true,
+        "warn": true,
+        "frameworkReferences": {
+          "Microsoft.NETCore.App": {
+            "privateAssets": "all"
+          }
+        },
+        "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.301\\RuntimeIdentifierGraph.json"
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/10 UebgMsgServer/obj/project.nuget.cache b/10 UebgMsgServer/obj/project.nuget.cache
new file mode 100644
index 0000000000000000000000000000000000000000..18f247bdf8b14566d108f9229b4a6812aec865a1
--- /dev/null
+++ b/10 UebgMsgServer/obj/project.nuget.cache	
@@ -0,0 +1,8 @@
+{
+  "version": 2,
+  "dgSpecHash": "/Sp7c7J/8RkCY6K1VtUtsnY1ht4Ap8MWZNJoZn6+kcygYXnDfW+kU/Z2I9zIg1wEpKNXuFMoskaCXF4lvT9M+A==",
+  "success": true,
+  "projectFilePath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\10 UebgMsgServer\\10 UebgMsgServer.csproj",
+  "expectedPackageFiles": [],
+  "logs": []
+}
\ No newline at end of file
diff --git a/prog2-ss2020-wienkop.sln b/prog2-ss2020-wienkop.sln
index f8cc40df7db9512f13c6e4fdcfbf806243c38844..96406c0846d1bcb015777cad753bd1315b1b680b 100644
--- a/prog2-ss2020-wienkop.sln
+++ b/prog2-ss2020-wienkop.sln
@@ -110,7 +110,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09 UebgDiMailVerteilung", "
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09 DelegateVerkettung", "09 DelegateVerkettung\09 DelegateVerkettung.csproj", "{17A26633-0F72-4889-B31E-9A29A80CE4A5}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09DataDriven", "09DataDriven\09DataDriven.csproj", "{4E2ED939-4FFF-4A44-8ACD-13E0CF23E1FB}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09DataDriven", "09DataDriven\09DataDriven.csproj", "{4E2ED939-4FFF-4A44-8ACD-13E0CF23E1FB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 UebgMsgServer", "10 UebgMsgServer\10 UebgMsgServer.csproj", "{6B7A3A19-6CE7-4F20-9F03-7B091C00B9BE}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -326,6 +328,10 @@ Global
 		{4E2ED939-4FFF-4A44-8ACD-13E0CF23E1FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4E2ED939-4FFF-4A44-8ACD-13E0CF23E1FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4E2ED939-4FFF-4A44-8ACD-13E0CF23E1FB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6B7A3A19-6CE7-4F20-9F03-7B091C00B9BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6B7A3A19-6CE7-4F20-9F03-7B091C00B9BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6B7A3A19-6CE7-4F20-9F03-7B091C00B9BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6B7A3A19-6CE7-4F20-9F03-7B091C00B9BE}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE