         }
     }
     
+    public var compositeName: String? {
+        return ABRecordCopyCompositeName(self.record).takeRetainedValue() as String
+    }
+    
     public var emails: Array<MultiValue<String>>? {
         get {
             return self.getMultiValueProperty(kABPersonEmailProperty)

        }
        
        set {
            let imageData: NSData = UIImagePNGRepresentation(newValue)
            ABPersonSetImageData(self.record, imageData, nil)
        }
    }

        property: ABPropertyID,
        convertor: (T) -> U) -> Array<MultiValue<Dictionary<U, V>>>?
    {
        return AddressBookPropertyManager.getMultiValueDictionaryProperty(record: self.record, property: property, convertor: convertor)
    }
    
    /**
