https://medium.com/@berjcode/the-process-of-running-code-in-net-core-compiler-and-runtime-stages-038535917661