I am trying to understand usecase for valueObject in C#, when to use and what\'s the need for ValueObject, I see documentation that it can be used when we want to initialize obj