http://www.fullstackprep.dev/articles/webd/netcore/finalize-vs-dispose-dotnet