diff --git a/.vs/prog2-ss2020-wienkop/v16/.suo b/.vs/prog2-ss2020-wienkop/v16/.suo
index 30f293facaa1e2505d739813d9876a429cb1159f..b612d53acbbb1083334176e8a85028dd93d5a88c 100644
Binary files a/.vs/prog2-ss2020-wienkop/v16/.suo and b/.vs/prog2-ss2020-wienkop/v16/.suo differ
diff --git a/02VerketteteListe-2/Program.cs b/02VerketteteListe-2/Program.cs
index f8357e57dc0b8bfdf60480db6af31f394fcb1308..6dbaa4fe5c465c28f2dd61e58c8b8fa7eb2856d5 100644
--- a/02VerketteteListe-2/Program.cs
+++ b/02VerketteteListe-2/Program.cs
@@ -125,14 +125,25 @@ namespace _02VerketteteListe_2
                                             // an der gespeicherten Pos. weitergemacht.
             }
         }
+        public IEnumerable Iterate(int offset=0)
+        {
+            Element item = anf;
+            for (int i = 0; i < offset; i++)
+                item = item.next;
+            while( item != null)
+            {
+                yield return item.name;
+                item = item.next;
+            }
+        }
 
-            // foreach --> GetEnumerator() merkt sich die Pos nach yield return und liefert ("Anton")
-            // item = "Anton"
-            // foreach --> GetEnumerator(), überprüft, ob noch eine Ausführungspos. gespeichert ist
-            //                  JA: --> hier geht die Ausführung weiter
-            //                          item=item.next, merkt sich die Pos nach yield return und liefert ("Berta")
-            // item = "Berta"
-            // ... bis GetEnumerator() am Methodenende angelangt ist.
+        // foreach --> GetEnumerator() merkt sich die Pos nach yield return und liefert ("Anton")
+        // item = "Anton"
+        // foreach --> GetEnumerator(), überprüft, ob noch eine Ausführungspos. gespeichert ist
+        //                  JA: --> hier geht die Ausführung weiter
+        //                          item=item.next, merkt sich die Pos nach yield return und liefert ("Berta")
+        // item = "Berta"
+        // ... bis GetEnumerator() am Methodenende angelangt ist.
         public void DeleteFirst()
         {
             // 1.Fall: Liste ist leer
@@ -257,7 +268,7 @@ namespace _02VerketteteListe_2
             //l1.Print();
             l1.AddBeforeNth(2, "Bodo");
             l1.Print();
-            foreach (string item in l1.Filter("er"))
+            foreach (string item in l1.Iterate(2))
             {
                 Console.WriteLine($"foreach: {item}");
             }
diff --git a/03 UebgDi ZyklischeListe/Program.cs b/03 UebgDi ZyklischeListe/Program.cs
index 4ea9820799ad2d8ec653e66ad5d4d03eb31cb518..bcc41da3e1c32779014dc8d3965f3fc8c2789795 100644
--- a/03 UebgDi ZyklischeListe/Program.cs	
+++ b/03 UebgDi ZyklischeListe/Program.cs	
@@ -20,10 +20,11 @@ namespace _03_UebgDi_ZyklischeListe
                 anf = ende = neuesElement;
             else
                 ende = ende.next = neuesElement;        // 3. Neues Element am Ende anfügen
+            ende.next = anf;                            // Zyklus schließen: Ende auf Anf verweisen lassen
         }
         public void CloseCycle()
         {
-            ende.next = anf;
+            ende.next = anf;                            // Zyklus schließen: Ende auf Anf verweisen lassen
         }
         public void Print()
         {
diff --git a/03BinTree/bin/Debug/netcoreapp3.1/03BinTree.dll b/03BinTree/bin/Debug/netcoreapp3.1/03BinTree.dll
index 5c0598e53f327bb14720853d5d2fa446bd0ef75f..01a79bea3422c9967e9d2f013272768794a00004 100644
Binary files a/03BinTree/bin/Debug/netcoreapp3.1/03BinTree.dll and b/03BinTree/bin/Debug/netcoreapp3.1/03BinTree.dll differ
diff --git a/03BinTree/bin/Debug/netcoreapp3.1/03BinTree.pdb b/03BinTree/bin/Debug/netcoreapp3.1/03BinTree.pdb
index 9fe0144024127376b2ac67420d6ee0b07d839397..d223db810e295176512857777f7f63764b356d8a 100644
Binary files a/03BinTree/bin/Debug/netcoreapp3.1/03BinTree.pdb and b/03BinTree/bin/Debug/netcoreapp3.1/03BinTree.pdb differ
diff --git a/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.csprojAssemblyReference.cache b/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.csprojAssemblyReference.cache
index 74fe67b1ca671095970d4a7fbcae2417231e8f41..d7dd684443de8ada82f92a8e0cf14a64b9096fd6 100644
Binary files a/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.csprojAssemblyReference.cache and b/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.csprojAssemblyReference.cache differ
diff --git a/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.dll b/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.dll
index 5c0598e53f327bb14720853d5d2fa446bd0ef75f..01a79bea3422c9967e9d2f013272768794a00004 100644
Binary files a/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.dll and b/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.dll differ
diff --git a/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.pdb b/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.pdb
index 9fe0144024127376b2ac67420d6ee0b07d839397..d223db810e295176512857777f7f63764b356d8a 100644
Binary files a/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.pdb and b/03BinTree/obj/Debug/netcoreapp3.1/03BinTree.pdb differ
diff --git a/04 UebgMo ZyklischeListe/Program.cs b/04 UebgMo ZyklischeListe/Program.cs
index 719039d485214aeec4ab9f7244b67f27523ec098..7a759f0ceea06415f6e277a80a6b7e4b1d9e7582 100644
--- a/04 UebgMo ZyklischeListe/Program.cs	
+++ b/04 UebgMo ZyklischeListe/Program.cs	
@@ -15,25 +15,47 @@ namespace _04_UebgMo_ZyklischeListe
         Element iterator = null;
         public void AddEnd(string name)
         {
-            
+            Element neuesElement = new Element(name);   // 1. Neues Element anlegen
+
+            if (anf == null)                            // 2. Leere Liste?
+                anf = ende = neuesElement;
+            else
+            {
+                ende.next = neuesElement;               // 3. Neues Element am Ende anfügen
+                ende = ende.next;
+            }
+            ende.next = anf;
+            iterator = ende;
         }
         public void CloseCycle()
         {
-            
+            ende.next = anf;
         }
         public void Print()
         {
-            
+            if (anf == null)
+                return;
+            // Wir wissen: Es existiert mindestens EIN Element
+            Element tmp = anf;
+            do
+            {
+                Console.WriteLine(tmp);
+                tmp = tmp.next;
+            } while (tmp != null && tmp != anf);
         }
         public void SetIterator(int offset = 0)
         {
-            
+            iterator = anf;
+            for (int i = 0; i < offset; i++)
+                iterator = iterator.next;
         }
-        public string GetName() ;
-        public void MoveNext() {  }
-    }
+        public string GetName() => iterator.name;
+        public void MoveNext() { iterator = iterator.next; }
 
+    }
+    // Programmierer 1
     // ===========================================================
+    // Anwender
     class Program
     {
         static void Main(string[] args)
@@ -41,7 +63,7 @@ namespace _04_UebgMo_ZyklischeListe
             CycleList cl = new CycleList();
             cl.AddEnd("Anton");
             cl.AddEnd("Berta");
-            cl.CloseCycle();
+            //cl.CloseCycle();
             cl.Print();
             Console.WriteLine("-------------");
             cl.AddEnd("Claudia");
diff --git a/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.deps.json b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..e93a485f00bfce7740fcccad3568c733ef899f9b
--- /dev/null
+++ b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.deps.json	
@@ -0,0 +1,23 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v3.1",
+    "signature": ""
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v3.1": {
+      "04 UebgMo ZyklischeListe/1.0.0": {
+        "runtime": {
+          "04 UebgMo ZyklischeListe.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "04 UebgMo ZyklischeListe/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}
\ No newline at end of file
diff --git a/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.dll b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1be08615678305fc6e19fbb6e2afc2c5fdb7530a
Binary files /dev/null and b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.dll differ
diff --git a/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.exe b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.exe
new file mode 100644
index 0000000000000000000000000000000000000000..7bff3e8b45891c7386fbae69bfcb6c3c202077c4
Binary files /dev/null and b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.exe differ
diff --git a/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.pdb b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..3e444d3b343b8a819f52f2ca325ec071240d0f44
Binary files /dev/null and b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.pdb differ
diff --git a/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.runtimeconfig.dev.json b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.runtimeconfig.dev.json
new file mode 100644
index 0000000000000000000000000000000000000000..3becea41545888f98131d88ad51766e8ddde3bce
--- /dev/null
+++ b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.runtimeconfig.dev.json	
@@ -0,0 +1,8 @@
+{
+  "runtimeOptions": {
+    "additionalProbingPaths": [
+      "C:\\Users\\wienkop\\.dotnet\\store\\|arch|\\|tfm|",
+      "C:\\Users\\wienkop\\.nuget\\packages"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.runtimeconfig.json b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..bc456d7868bb54ec1809da30e339cd43f0a8a09c
--- /dev/null
+++ b/04 UebgMo ZyklischeListe/bin/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.runtimeconfig.json	
@@ -0,0 +1,9 @@
+{
+  "runtimeOptions": {
+    "tfm": "netcoreapp3.1",
+    "framework": {
+      "name": "Microsoft.NETCore.App",
+      "version": "3.1.0"
+    }
+  }
+}
\ No newline at end of file
diff --git a/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.csproj.CoreCompileInputs.cache b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..866b744e18d17bd43f4fc4b66cbb3dbc817b1992
--- /dev/null
+++ b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.csproj.CoreCompileInputs.cache	
@@ -0,0 +1 @@
+c0523642d3f3714f80c0cf31b3f8720f51a0bc09
diff --git a/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.csproj.FileListAbsolute.txt b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000000000000000000000000000000000000..290d03f484de52c46383531a88757d233b696477
--- /dev/null
+++ b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.csproj.FileListAbsolute.txt	
@@ -0,0 +1,13 @@
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.exe
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.deps.json
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.runtimeconfig.json
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.runtimeconfig.dev.json
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.dll
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\bin\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.pdb
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.csproj.CoreCompileInputs.cache
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.AssemblyInfoInputs.cache
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.AssemblyInfo.cs
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.dll
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.pdb
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.genruntimeconfig.cache
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04 UebgMo ZyklischeListe\obj\Debug\netcoreapp3.1\04 UebgMo ZyklischeListe.csprojAssemblyReference.cache
diff --git a/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.csprojAssemblyReference.cache b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.csprojAssemblyReference.cache
new file mode 100644
index 0000000000000000000000000000000000000000..8a5ef041ae8402be96bf3fc66b33aedfc9a2f5c5
Binary files /dev/null and b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.csprojAssemblyReference.cache differ
diff --git a/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.dll b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1be08615678305fc6e19fbb6e2afc2c5fdb7530a
Binary files /dev/null and b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.dll differ
diff --git a/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.exe b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.exe
new file mode 100644
index 0000000000000000000000000000000000000000..7bff3e8b45891c7386fbae69bfcb6c3c202077c4
Binary files /dev/null and b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.exe differ
diff --git a/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.genruntimeconfig.cache b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.genruntimeconfig.cache
new file mode 100644
index 0000000000000000000000000000000000000000..34bedab819ef1631d37d6e87ef9a716c545a105e
--- /dev/null
+++ b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.genruntimeconfig.cache	
@@ -0,0 +1 @@
+86c8e15dd33445635927cfaf398408205fd11473
diff --git a/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.pdb b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..3e444d3b343b8a819f52f2ca325ec071240d0f44
Binary files /dev/null and b/04 UebgMo ZyklischeListe/obj/Debug/netcoreapp3.1/04 UebgMo ZyklischeListe.pdb differ