diff --git a/01-T WdhlgKlassen/01-1T WdhlgKlassen.csproj b/01-T WdhlgKlassen/01-1T WdhlgKlassen.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..4c185fccf694d11c340d41e39a9a51f3f883786a
--- /dev/null
+++ b/01-T WdhlgKlassen/01-1T WdhlgKlassen.csproj	
@@ -0,0 +1,21 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_01_T_WdhlgKlassen</RootNamespace>
+
+    <IsPackable>false</IsPackable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
+    <PackageReference Include="xunit" Version="2.4.0" />
+    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
+    <PackageReference Include="coverlet.collector" Version="1.2.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\01-V WdhlgKlassen\01-1 WdhlgKlassen.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/01-T WdhlgKlassen/UnitTest1.cs b/01-T WdhlgKlassen/UnitTest1.cs
new file mode 100644
index 0000000000000000000000000000000000000000..c4e43d31bf88acdff50710a6c4cebd3787a2b621
--- /dev/null
+++ b/01-T WdhlgKlassen/UnitTest1.cs	
@@ -0,0 +1,31 @@
+using System;
+using System.IO;
+using Xunit;
+
+namespace _01_T_WdhlgKlassen
+{
+    public class UnitTest1
+    {
+        private const string Expected = "Hello World!";
+        [Fact]
+        public void MainTest()
+        {
+            using (var sw = new StringWriter())
+            {
+                Console.SetOut(sw);
+                _01_V_WdhlgKlassen.Program.Main();
+
+                var result = sw.ToString().Trim();
+                Assert.Equal(Expected, result);
+            }
+        }
+        [Fact]
+        public  void AddTest()
+        {
+            Assert.Equal(7, _01_V_WdhlgKlassen.Program.Add(3, 4));
+            Assert.Equal(-6, _01_V_WdhlgKlassen.Program.Add(-3, -3));
+            //Assert.Equal(1, _01_V_WdhlgKlassen.Program.Add(-3, 4));
+        }
+
+    }
+}
diff --git a/01-V IntroIndexer/01-2 IntroIndexer.csproj b/01-V IntroIndexer/01-2 IntroIndexer.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..423052cac87a2a2c3369a6f35b44d1c2b8c20665
--- /dev/null
+++ b/01-V IntroIndexer/01-2 IntroIndexer.csproj	
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_01_V_IntroIndexer</RootNamespace>
+  </PropertyGroup>
+
+</Project>
diff --git a/01-V IntroIndexer/Person.cs b/01-V IntroIndexer/Person.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ea3b046f8f3a8ca4626c929d5f26a170867c22fd
--- /dev/null
+++ b/01-V IntroIndexer/Person.cs	
@@ -0,0 +1,75 @@
+using System;
+
+namespace _01_V_IntroIndexer
+{
+    class Person
+    {
+        #region Datenfelder
+        private string name, vorname;
+        private int alter;
+        #endregion
+
+        #region Konstruktoren
+        public Person(string Name)  // Aufruf z.B. bei "Claudia"
+        {
+            name = Name;
+            vorname = null;
+            alter = -1;
+        }
+        public Person(string name, string Vorname, int Alter = 0)
+        {
+            if (Alter < 0)
+                throw new ArgumentOutOfRangeException("Alter muss eine positive Zahl sein!");
+            this.name = name;       // this.name ~ Datenfeld name; "nur" name ~ Parameter!!!
+            vorname = Vorname;
+            alter = Alter;
+        }
+        #endregion
+
+        #region (Datenfeld-) Zugriffsfunktionen
+        public void ErhöheAlter()
+        {
+            alter++;
+        }
+        public int getAlter()
+        {
+            return alter;
+        }
+        public int getAlter2() => alter;
+        public void setAlter(int value)
+        {
+            if (value < 0 || value > 150)
+                throw new ArgumentException("Alter muss im Bereich 0..150 sein!");
+            alter = value;
+        }
+
+        // Property-Schreibweise
+        public int Alter
+        {
+            get => alter;
+            set
+            {
+                if (value < 0 || value > 150)
+                    throw new ArgumentException("Alter muss im Bereich 0..150 sein!");
+                alter = value;
+            }
+        }
+        #endregion
+
+        #region Sonstige Methoden
+        public void Ausgabe()               // Ausgabe hat den impliziten Parameter this
+        {
+            //Console.WriteLine($"Person: {this.vorname} {this.name}, Alter: {this.alter}");
+            Console.WriteLine($"Person: {vorname} {name}, Alter: {alter}");
+        }
+        public static void Ausgabe(Person p)    // Ausgabe hat ausschließlich den Parameter p
+        {
+            Console.WriteLine($"Person: {p.vorname} {p.name}, Alter: {p.alter}");
+        }
+        public override string ToString()
+        {
+            return $">>> Person: {vorname} {name}, Alter: {alter}";
+        }
+        #endregion
+    }
+}
diff --git a/01-V IntroIndexer/Personenliste.cs b/01-V IntroIndexer/Personenliste.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ac7fcd7147780454be0d5512246c89392dd5a2e1
--- /dev/null
+++ b/01-V IntroIndexer/Personenliste.cs	
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace _01_V_IntroIndexer
+{
+    class Personenliste
+    {
+
+    }
+}
diff --git a/01-V IntroIndexer/Program.cs b/01-V IntroIndexer/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..455a67ff2d90e8a97874969fce4eaf09f40c7350
--- /dev/null
+++ b/01-V IntroIndexer/Program.cs	
@@ -0,0 +1,20 @@
+using System;
+
+namespace _01_V_IntroIndexer
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            Person anton = new Person("Meier", "Anton", 21);
+            Person berta = new Person("Huber", "Berta");
+
+            Person claudia = new Person("Schuster");
+
+            anton.Ausgabe();
+            Person.Ausgabe(anton);
+            Console.WriteLine(anton);
+            Console.WriteLine(anton.ToString());
+        }
+    }
+}
diff --git a/01-V WdhlgKlassen/01-V WdhlgKlassen.csproj b/01-V WdhlgKlassen/01-1 WdhlgKlassen.csproj
similarity index 100%
rename from 01-V WdhlgKlassen/01-V WdhlgKlassen.csproj
rename to 01-V WdhlgKlassen/01-1 WdhlgKlassen.csproj
diff --git a/01-V WdhlgKlassen/Program.cs b/01-V WdhlgKlassen/Program.cs
index 5252ac932ae624c3d586acdbcce9a3f11978ea3e..2e718a15ca7dc15b278643aaae04294ff5e4f8c4 100644
--- a/01-V WdhlgKlassen/Program.cs	
+++ b/01-V WdhlgKlassen/Program.cs	
@@ -2,9 +2,15 @@
 
 namespace _01_V_WdhlgKlassen
 {
-    class Program
+    public class Program
     {
-        static void Main(string[] args)
+        public static int Add(int x, int y)
+        {
+            if (x>0)
+                return x + y;
+            return 0;
+        }
+        public static void Main()
         {
             Console.WriteLine("Hello World!");
         }
diff --git a/Prog2WienkopSS2021.sln b/Prog2WienkopSS2021.sln
index 86a88ac2e8efac12faa72e67a526288e0f5e3826..598df9ff6768284eec91738e9cf754b82f921ccb 100644
--- a/Prog2WienkopSS2021.sln
+++ b/Prog2WienkopSS2021.sln
@@ -3,7 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
 VisualStudioVersion = 16.0.31105.61
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "01-V WdhlgKlassen", "01-V WdhlgKlassen\01-V WdhlgKlassen.csproj", "{503B68BD-967D-4C38-AF1E-8DD44594F94E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-1 WdhlgKlassen", "01-V WdhlgKlassen\01-1 WdhlgKlassen.csproj", "{503B68BD-967D-4C38-AF1E-8DD44594F94E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-1T WdhlgKlassen", "01-T WdhlgKlassen\01-1T WdhlgKlassen.csproj", "{1FECE10D-561F-43F8-BD49-691FF959EF74}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-2 IntroIndexer", "01-V IntroIndexer\01-2 IntroIndexer.csproj", "{6781DE0D-C861-40AC-9C33-5EA5D917425D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestProject1", "TestProject1\TestProject1.csproj", "{24B954CA-BD5E-42BF-9396-E973BCC8A8B5}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +21,18 @@ Global
 		{503B68BD-967D-4C38-AF1E-8DD44594F94E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{503B68BD-967D-4C38-AF1E-8DD44594F94E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{503B68BD-967D-4C38-AF1E-8DD44594F94E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1FECE10D-561F-43F8-BD49-691FF959EF74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1FECE10D-561F-43F8-BD49-691FF959EF74}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1FECE10D-561F-43F8-BD49-691FF959EF74}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1FECE10D-561F-43F8-BD49-691FF959EF74}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6781DE0D-C861-40AC-9C33-5EA5D917425D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6781DE0D-C861-40AC-9C33-5EA5D917425D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6781DE0D-C861-40AC-9C33-5EA5D917425D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6781DE0D-C861-40AC-9C33-5EA5D917425D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{24B954CA-BD5E-42BF-9396-E973BCC8A8B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{24B954CA-BD5E-42BF-9396-E973BCC8A8B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{24B954CA-BD5E-42BF-9396-E973BCC8A8B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{24B954CA-BD5E-42BF-9396-E973BCC8A8B5}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/TestProject1/TestProject1.csproj b/TestProject1/TestProject1.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..63194a8e4e4a0de970f2f9e205c73d3c24542e2f
--- /dev/null
+++ b/TestProject1/TestProject1.csproj
@@ -0,0 +1,20 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+
+    <IsPackable>false</IsPackable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
+    <PackageReference Include="xunit" Version="2.4.0" />
+    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
+    <PackageReference Include="coverlet.collector" Version="1.2.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\01-V WdhlgKlassen\01-1 WdhlgKlassen.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/TestProject1/UnitTest1.cs b/TestProject1/UnitTest1.cs
new file mode 100644
index 0000000000000000000000000000000000000000..57577406fa03b83c396bb6ca0fe9621b91ca0ba5
--- /dev/null
+++ b/TestProject1/UnitTest1.cs
@@ -0,0 +1,14 @@
+using System;
+using Xunit;
+
+namespace TestProject1
+{
+    public class UnitTest1
+    {
+        [Fact]
+        public void Test1()
+        {
+            Assert.Equal(7, _01_V_WdhlgKlassen.Program.Add(3, 4));
+        }
+    }
+}