Split IsValid out of ValidateAndConvert