I'm a bit confused with how asp.net core is implemented, particularly .NET 5. I just wanted to know what objects are created, because I was reading the documentation and I just want to get some things straight. I know an instance of IHostBuilder is created and also an IWebHostBuilder as well and at the end it returns an IHost object. What exactly is the difference between IWebHostBuilder and IHostBuilder, are they the same object? And also what is the difference between the IHost and IWebHostEnvironment as well as the IApplicationBuilder in the Configure method?