         }
     }
     
-    func testUUIDStringParse() {
-        
-        let uuids = randomUUIDs
+    func testUUIDStringParsePerformance() {
+        
+        let uuids = randomUUIDs.map { $0.uuidString }
         
         measure { uuids.forEach { _ = BluetoothUUID(rawValue: $0) } }
     }
     
-    func testUUIDString() {
-        
-        let uuids = randomUUIDs.map { BluetoothUUID(rawValue: $0)! }
+    func testUUIDStringPerformance() {
+        
+        let uuids = randomUUIDs.map { BluetoothUUID(uuid: $0) }
         
         measure { uuids.forEach { let _ = $0.rawValue } }
+    }
+    
+    func testUUIDDataParsePerformance() {
+        
+        let uuids = randomUUIDs.map { $0.data }
+        
+        measure { uuids.forEach { _ = BluetoothUUID(data: $0) } }
+    }
+    
+    func testUUIDDataPerformance() {
+        
+        let uuids = randomUUIDs.map { BluetoothUUID(uuid: $0) }
+        
+        measure { uuids.forEach { let _ = $0.data } }
     }
     
     func testBitMaskOption() {

    
    func testCoreBluetoothUUIDStringParse() {
        
        let uuids = randomUUIDs
        
        measure { uuids.forEach { _ = CBUUID(string: $0) } }
    }
    
    func testCoreBluetoothUUIDString() {
        
        let uuids = randomUUIDs.map { CBUUID(string: $0) }
        
        measure { uuids.forEach { let _ = $0.uuidString } }
    }
    
    #endif
}

let randomUUIDs = (1 ... 100000).map { _ in UUID().uuidString }

        ("testAddress", testAddress),
        ("testUUID", testUUID),
        ("testBitMaskOption", testBitMaskOption),
        ("testUUIDStringParsePerformance", testUUIDStringParsePerformance),
        ("testUUIDStringPerformance", testUUIDStringPerformance),
        ("testUUIDDataParsePerformance", testUUIDDataParsePerformance),
        ("testUUIDDataPerformance", testUUIDDataPerformance)
        ]
    
    func testAddress() {
