We call if (!string.IsNullOrEmpty(state.Name) && !string.IsNullOrEmpty(state.Version)) How can we avoid this? Can IsValid extension method validate this as well?