https://zoheirsoftware.com/blog/init-in-csharp