https://zoheirsoftware.com/blog/extension-methods-csharp