diff --git a/12-UbgTransformingServer-Di/12-UbgTransformingServer-Di.csproj b/12-UbgTransformingServer-Di/12-UbgTransformingServer-Di.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..0c3d8a5d2d9e3105d493c20e21cafd1cd8ec4918
--- /dev/null
+++ b/12-UbgTransformingServer-Di/12-UbgTransformingServer-Di.csproj
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_12_UbgTransformingServer</RootNamespace>
+  </PropertyGroup>
+
+</Project>
diff --git a/12-UbgTransformingServer-Di/Program.cs b/12-UbgTransformingServer-Di/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1b38873069dd5c396a70906706db9dd8b9da2359
--- /dev/null
+++ b/12-UbgTransformingServer-Di/Program.cs
@@ -0,0 +1,40 @@
+using System;
+
+namespace _12_UbgTransformingServer
+{
+    class Client
+    {
+        public string Name { get; }
+        public Client(string Name) { this.Name = Name; }
+
+        // ToDo: statische "Listener" Methode
+        // ToDo: nicht-statische "Listener" Methode
+    }
+    class Program
+    {
+        // ToDo: Realisieren Sie die folgenden Transformationen:
+        //    x  Signature ( ... ) fügt der Nachricht eine Signatur an
+        //    x  OldNewCorp ( ... ) ersetzt ZZZ durch AAA
+        //    x  Beautify ( ... ) ersetzt "liebe Kunden" durch "verehrte Kunden"
+        static void Main(string[] args)
+        {
+            MsgServer server = new MsgServer();
+            // ToDo: Fügen Sie einige Transformationen hinzu
+            // msg --> OldNewCorp  --> Signature
+            
+            Client mueller = new Client("Müller");
+            Client meier = new Client("Meier");
+            Client huber = new Client("Huber");
+
+            // ToDo: Registrieren Sie einige Listener 
+
+            server.SendMsg("Herzlich Willkommen, liebe Kunden! ZZZ Corporation");
+
+            // ToDo: Registrieren Sie weitere Listener an und entfernen
+            //       Sie einen Listener
+            
+            // ToDo: Entfernen Sie die Signature Transformation
+            server.SendMsg("Wir wünschen einen erfolgreichen Tag, liebe Kunden, ZZZ Corporation");
+        }
+    }
+}
diff --git a/12-UbgTransformingServer-Di/Server.cs b/12-UbgTransformingServer-Di/Server.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1f864c85cf1e6313bea287688a0f1b09d67a5581
--- /dev/null
+++ b/12-UbgTransformingServer-Di/Server.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace _12_UbgTransformingServer
+{
+    delegate void Callback(string notifier);
+    delegate void Transform(ref string msg);
+    class MsgServer
+    {
+        // ToDo: Notify-Event anlegen
+        // ToDo: Transformations-Event anlegen
+
+        public void SendMsg(string msg)
+        {
+            Console.WriteLine($"\n\n\nOriginal-Nachricht: {msg}");
+            // ToDo: Alle in Transformations gespeicherten Transformationen anwenden
+            
+            // ToDo: Den "transformierten" String an alle in Notify gespeicherten Listener versenden
+        }
+    }
+}
diff --git a/12-UbgTransformingServer-Mo/12-UbgTransformingServer-Mo.csproj b/12-UbgTransformingServer-Mo/12-UbgTransformingServer-Mo.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..0c3d8a5d2d9e3105d493c20e21cafd1cd8ec4918
--- /dev/null
+++ b/12-UbgTransformingServer-Mo/12-UbgTransformingServer-Mo.csproj
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_12_UbgTransformingServer</RootNamespace>
+  </PropertyGroup>
+
+</Project>
diff --git a/12-UbgTransformingServer-Mo/Program.cs b/12-UbgTransformingServer-Mo/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..62cc11d68072c8bbe311dc29d6283f4873d78892
--- /dev/null
+++ b/12-UbgTransformingServer-Mo/Program.cs
@@ -0,0 +1,40 @@
+using System;
+
+namespace _12_UbgTransformingServer
+{
+    class Client
+    {
+        public string Name { get; }
+        public Client(string Name) { this.Name = Name; }
+
+        // ToDo: statische "Listener" Methode
+        // ToDo: nicht-statische "Listener" Methode
+    }
+    class Program
+    {
+        // ToDo: Realisieren Sie die folgenden Transformationen:
+        //    *  Signature ( ... ) fügt der Nachricht eine Signatur an
+        //    *  OldNewCorp ( ... ) ersetzt ZZZ durch AAA
+        //    *  Beautify ( ... ) ersetzt "liebe Kunden" durch "verehrte Kunden"
+        static void Main(string[] args)
+        {
+            MsgServer server = new MsgServer();
+            // ToDo: Fügen Sie einige Transformationen hinzu
+            // msg --> OldNewCorp  --> Signature
+            
+            Client mueller = new Client("Müller");
+            Client meier = new Client("Meier");
+            Client huber = new Client("Huber");
+
+            // ToDo: Registrieren Sie einige Listener 
+
+            server.SendMsg("Herzlich Willkommen, liebe Kunden! ZZZ Corporation");
+
+            // ToDo: Registrieren Sie weitere Listener an und entfernen
+            //       Sie einen Listener
+            
+            // ToDo: Entfernen Sie die Signature Transformation
+            server.SendMsg("Wir wünschen einen erfolgreichen Tag, liebe Kunden, ZZZ Corporation");
+        }
+    }
+}
diff --git a/12-UbgTransformingServer-Mo/Server.cs b/12-UbgTransformingServer-Mo/Server.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1f864c85cf1e6313bea287688a0f1b09d67a5581
--- /dev/null
+++ b/12-UbgTransformingServer-Mo/Server.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace _12_UbgTransformingServer
+{
+    delegate void Callback(string notifier);
+    delegate void Transform(ref string msg);
+    class MsgServer
+    {
+        // ToDo: Notify-Event anlegen
+        // ToDo: Transformations-Event anlegen
+
+        public void SendMsg(string msg)
+        {
+            Console.WriteLine($"\n\n\nOriginal-Nachricht: {msg}");
+            // ToDo: Alle in Transformations gespeicherten Transformationen anwenden
+            
+            // ToDo: Den "transformierten" String an alle in Notify gespeicherten Listener versenden
+        }
+    }
+}
diff --git a/12Delegateaufrufausbreitung/Program.cs b/12Delegateaufrufausbreitung/Program.cs
index acd45d215a8afe0eff9eba63fb760415a52e59f0..514acbc04b642c27a0152cc13f908bab5c560f9e 100644
--- a/12Delegateaufrufausbreitung/Program.cs
+++ b/12Delegateaufrufausbreitung/Program.cs
@@ -15,7 +15,7 @@ namespace SS2020Test
             this.me = me;
             Update();
         }
-        public event myDelegate Output;
+        public event Action<bool> Output;
 
         public abstract bool Logic(bool x, bool y);
         
diff --git a/Prog2WienkopSS2021.sln b/Prog2WienkopSS2021.sln
index 3dcfaefdbb56e59df703cb10c2e547418d1edb9a..bba39f80e4c7ad7ff9704941edecc1db21cea285 100644
--- a/Prog2WienkopSS2021.sln
+++ b/Prog2WienkopSS2021.sln
@@ -91,13 +91,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11-1 DataDriven", "11-1 Dat
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11-2 Delegate Verkettung", "11-2 Delegate Verkettung\11-2 Delegate Verkettung.csproj", "{0FC3EC66-BD2E-46C4-8512-FB1DFD6A62F8}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11-Ubg Mailverteiler-Di", "11-Ubg Mailverteiler-Di\11-Ubg Mailverteiler-Di.csproj", "{A602EA3B-7F14-4D94-B519-D3BD870CA1DA}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11-Ubg Mailverteiler-Di", "11-Ubg Mailverteiler-Di\11-Ubg Mailverteiler-Di.csproj", "{A602EA3B-7F14-4D94-B519-D3BD870CA1DA}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11-3 Erweiterungsmethoden", "11-3 Erweiterungsmethoden\11-3 Erweiterungsmethoden.csproj", "{64AE6304-67E0-4413-8D66-D12B3C133D09}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11-3 Erweiterungsmethoden", "11-3 Erweiterungsmethoden\11-3 Erweiterungsmethoden.csproj", "{64AE6304-67E0-4413-8D66-D12B3C133D09}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11-4 LINQ-Intro", "11-4 LINQ-Intro\11-4 LINQ-Intro.csproj", "{7B612E44-F4A4-4857-BCAE-6DA1045A4FDE}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11-4 LINQ-Intro", "11-4 LINQ-Intro\11-4 LINQ-Intro.csproj", "{7B612E44-F4A4-4857-BCAE-6DA1045A4FDE}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11-5 BinTreePersVerwaltung", "11-5 BinTreePersVerwaltung\11-5 BinTreePersVerwaltung.csproj", "{FEC9D71A-A142-4EB5-920F-170DAD90F352}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11-5 BinTreePersVerwaltung", "11-5 BinTreePersVerwaltung\11-5 BinTreePersVerwaltung.csproj", "{FEC9D71A-A142-4EB5-920F-170DAD90F352}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "12-UbgTransformingServer-Mo", "12-UbgTransformingServer-Mo\12-UbgTransformingServer-Mo.csproj", "{D8D0F6FA-A61D-400A-AA6A-AC20479D5260}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "12-UbgTransformingServer-Di", "12-UbgTransformingServer-Di\12-UbgTransformingServer-Di.csproj", "{1F7AE01D-084E-4204-89F0-9E6FAC37F151}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -297,6 +301,14 @@ Global
 		{FEC9D71A-A142-4EB5-920F-170DAD90F352}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{FEC9D71A-A142-4EB5-920F-170DAD90F352}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{FEC9D71A-A142-4EB5-920F-170DAD90F352}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D8D0F6FA-A61D-400A-AA6A-AC20479D5260}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D8D0F6FA-A61D-400A-AA6A-AC20479D5260}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D8D0F6FA-A61D-400A-AA6A-AC20479D5260}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D8D0F6FA-A61D-400A-AA6A-AC20479D5260}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1F7AE01D-084E-4204-89F0-9E6FAC37F151}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1F7AE01D-084E-4204-89F0-9E6FAC37F151}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1F7AE01D-084E-4204-89F0-9E6FAC37F151}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1F7AE01D-084E-4204-89F0-9E6FAC37F151}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE