diff --git a/Assignment/Task 3/main.cpp b/Assignment/Task 3/main.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..616bcd729324e43fa536e7d3cfb3600b922c1658
--- /dev/null
+++ b/Assignment/Task 3/main.cpp	
@@ -0,0 +1,34 @@
+#include <iostream>
+#include "scheduler.h"
+
+scheduler s;
+
+int main() {
+    auto lambda1 = [](void* arg) {
+        fiber* f = static_cast<fiber*>(arg);
+        std::cout << "fiber 1 before" << std::endl;
+        f->finish();
+        f->yield();
+        std::cout << "fiber 1 after" << std::endl;
+        s.fiber_exit();
+    };
+
+    auto lambda2 = [](void* arg) {
+        fiber* f = static_cast<fiber*>(arg);
+        std::cout << "fiber 2" << std::endl;
+        f->finish();
+        s.fiber_exit();
+    };
+
+    fiber f1(lambda1, &f1);
+    fiber f2(lambda2, &f2);
+
+    s.spawn(&f1);
+    s.spawn(&f2);
+
+    s.do_it();
+
+    return 0;
+}
+
+