removed old EmptyValue logic
moved key generation to helper, check for ErrFieldMismatch type