             socialProfileProperty.parameters = extractParameters(JSONParameters: property[PropertyIndex.parameters.rawValue])
             
             let profileComponents = property[PropertyIndex.value.rawValue]  // an array of components
-            if profileComponents.count != 4 {
-                print("ERROR: social profile property has \(profileComponents.count) components, not 4 - NOT OK")
-            }
+            guard profileComponents.count == 4
             else {
-                socialProfileProperty.service = profileComponents[0].stringValue
-                socialProfileProperty.urlString = profileComponents[1].stringValue
-                socialProfileProperty.userIdentifier = profileComponents[2].stringValue
-                socialProfileProperty.username = profileComponents[3].stringValue
-            }
-            
+                print("ERROR: the x-social-profile property should have 4 components, not \(profileComponents.count)")
+                throw JCardError.InvalidFormat
+            }
+            socialProfileProperty.service = profileComponents[0].stringValue
+            socialProfileProperty.urlString = profileComponents[1].stringValue
+            socialProfileProperty.userIdentifier = profileComponents[2].stringValue
+            socialProfileProperty.username = profileComponents[3].stringValue
+
+            socialProfileProperty.value = [profileComponents[0].stringValue, profileComponents[1].stringValue, profileComponents[2].stringValue, profileComponents[3].stringValue]
+
             socialProfiles.append(socialProfileProperty)
+            print(socialProfileProperty)
             
         default:
             break

            // in the Birthday field, a typical client app generates jCards with the bday
            // property type set as "date" - with or without a year present.
            // So for the time being, let's only parse the "date" type for bday.
            // TODO: Check that the type is "date" and reject others for now
            let birthdayValue = property[PropertyIndex.value.rawValue].stringValue
            let birthdayValueType = property[PropertyIndex.valueType.rawValue].stringValue
            print("bday value = \(birthdayValue), value type = \(birthdayValueType)")

            var telProperty = TelProperty()
            telProperty.parameters = extractParameters(JSONParameters: property[PropertyIndex.parameters.rawValue])
            let value = property[PropertyIndex.value.rawValue].stringValue
            telProperty.value = value as AnyObject
            phoneNumbers.append(telProperty)
            
        case PropertyName.email.rawValue:
