diff --git a/Program.cs b/Program.cs
new file mode 100644
index 0000000..cfdd121
--- /dev/null
+++ b/Program.cs
@@ -0,0 +1,77 @@
+class Program
+{
+    public static void Main()
+    {
+        Enekesno e1 = new Enekesno("Lady Gaga");
+        Enekesno e2 = new Enekesno("Nicki Minaj");
+        Rajongo r1 = new Rajongo("János");
+        Rajongo r2 = new Rajongo("Patrik");
+        Rajongo r3 = new Rajongo("Bogi");
+        e1.Subscribe(r1);
+        e1.Subscribe(r2);
+        e2.Subscribe(r2);
+        e2.Subscribe(r3);
+        e1.SetKovetkezoKoncertHelyszine("Budapest");
+        e2.SetKovetkezoKoncertHelyszine("Eger");
+    }
+    class Enekesno : IObservable<string>
+    {
+        List<IObserver<string>> observer = new List<IObserver<string>>();
+        string kovetkezoKoncertHelyszine;
+        string nev;
+        public Enekesno(string nev) { this.nev = nev; }
+        public string SetKovetkezoKoncertHelyszine(string varos)
+        {
+            kovetkezoKoncertHelyszine = varos;
+            this.notify();
+            return null;
+        }
+        public IDisposable Subscribe(IObserver<string> obs)
+        {
+            observer.Add(obs);
+            return null;
+        }
+        private void notify()
+        {
+            foreach(var item in observer)
+            {
+                try { 
+                item.OnNext("szia");
+                item.OnNext("A nevem:");
+                item.OnNext(this.nev);
+                item.OnNext("következő koncert helyszíne:");
+                item.OnNext(this.kovetkezoKoncertHelyszine);
+                item.OnCompleted();
+                }
+                catch (Exception e) { item.OnError(e); }
+            }
+        }
+    }
+    class Rajongo : IObserver<string>
+    {
+        string enekesnoNeve;
+        bool eneksnoNeveFlag = false;
+        string kovetkezoKoncertHelyszine;
+        bool kovetkezoKoncertHelyszineFlag = false;
+
+        string nev;
+        public Rajongo (string nev) { this.nev = nev; }
+        public void OnCompleted()
+        {
+            Console.WriteLine( nev +" Nagyon boldog mert " + enekesnoNeve + " koncertet ad " + kovetkezoKoncertHelyszine + " city-ben:)");
+        }
+
+        public void OnError(Exception error){}
+
+        public void OnNext(string value)
+        {
+            if(eneksnoNeveFlag) { enekesnoNeve=value; }
+            if(kovetkezoKoncertHelyszineFlag) { kovetkezoKoncertHelyszine=value; }
+
+            if (value.Equals("A nevem:")) { eneksnoNeveFlag = true; }
+            else { eneksnoNeveFlag = false; }
+            if (value is "következő koncert helyszíne:") { kovetkezoKoncertHelyszineFlag= true; }
+            else { kovetkezoKoncertHelyszineFlag = false; }
+        }
+    }
+}
\ No newline at end of file