diff --git a/Report.md b/Report.md
new file mode 100644
index 0000000..d7497ac
--- /dev/null
+++ b/Report.md
@@ -0,0 +1,43 @@
+**Question 1**
+
+1- This is the output for the program:
+``` Text
+Calling run()
+Running in: main
+Calling start()
+Running in: Thread-2
+```
+2- `t1.run()` will run the method from the thread that it is called from, which is `main` here. It does not create any new thread.
+
+calling `t2.start()` will create a new thread (which is named `thread-2` here).
+
+
+**Question 2**
+
+1- This is the output for the program:
+``` Text
+Main thread ends.
+```
+This happens because when the `main` thread is done and there is no other `User` thread running, then all of the `Daemon` threads will terminate.
+
+2- If you remove that line, the thread becomes a `User` thread (the default).
+
+*Behavior*:
+The program will print "Main thread ends."
+However, the JVM will not exit.
+It will keep running for approximately 10 seconds until the DaemonRunnable finishes all 20 iterations of its loop.
+Only after the run() method of that thread completes will the JVM shut down.
+
+3- Some real-life use cases of daemon threads are background tasks that need to be automatically closed after the main application shuts down like `garbage collectors` and `spell checkers` or `auto saves`.
+
+
+**Question 3**
+
+1- This is the output for the program:
+``` Text
+Thread is running using a ...!
+```
+
+2- It is called a `lambda expression`.
+
+3- This is much more concise. But lacks the maintainability which class method provides.
\ No newline at end of file