public typealias Revision = String

extension Service {
    public class Info: InfoBase {

        public init(name: String,
                    serialNumber: String,
                    manufacturer: String = "unknown",
                    model: String = "unknown",
                    firmwareRevision: Revision = "1") {
            super.init(characteristics: [
                .name(name),
                .serialNumber(serialNumber),
                .manufacturer(manufacturer),
                .model(model),
                .firmwareRevision(firmwareRevision)
            ])
        }

        open override func characteristic<T>(_ characteristic: GenericCharacteristic<T>,
                                             didChangeValue newValue: T?) {
            if characteristic === identify {
                if let accessory = accessory {
                    accessory.device?.delegate?.didRequestIdentificationOf(accessory)
                }
            }
            super.characteristic(characteristic, didChangeValue: newValue)
        }
    }
}

public typealias Revision = String

extension Service {
    public class Info: InfoBase {

        public init(name: String,
                    serialNumber: String,
                    manufacturer: String = "undefined",
                    model: String = "undefined",
                    firmwareRevision: Revision = "1.0.0") {
            super.init(characteristics: [.firmwareRevision()])
            self.name.value = name
            self.manufacturer.value = manufacturer
            self.model.value = model
            self.serialNumber.value = serialNumber
            self.firmwareRevision?.value = firmwareRevision
        }

        open override func characteristic<T>(_ characteristic: GenericCharacteristic<T>,
                                             didChangeValue newValue: T?) {
            if characteristic === identify {
                if let accessory = accessory {
                    accessory.device?.delegate?.didRequestIdentificationOf(accessory)
                }
            }
            super.characteristic(characteristic, didChangeValue: newValue)
        }
    }
}

--- 
+++ 
@@ -5,15 +5,16 @@
 
         public init(name: String,
                     serialNumber: String,
-                    manufacturer: String = "undefined",
-                    model: String = "undefined",
-                    firmwareRevision: Revision = "1.0.0") {
-            super.init(characteristics: [.firmwareRevision()])
-            self.name.value = name
-            self.manufacturer.value = manufacturer
-            self.model.value = model
-            self.serialNumber.value = serialNumber
-            self.firmwareRevision?.value = firmwareRevision
+                    manufacturer: String = "unknown",
+                    model: String = "unknown",
+                    firmwareRevision: Revision = "1") {
+            super.init(characteristics: [
+                .name(name),
+                .serialNumber(serialNumber),
+                .manufacturer(manufacturer),
+                .model(model),
+                .firmwareRevision(firmwareRevision)
+            ])
         }
 
         open override func characteristic<T>(_ characteristic: GenericCharacteristic<T>,
Make use of new shorthand initialisation
