     }
     
     private func connectKnownPeers() {
-        self.ensure(centralManagerHasState: .poweredOn) { result in
+        self.once(manager: centralManager, hasState: .poweredOn, invoke: { result in
             switch result {
             case .error(let err):
                 self.publish(notification: .error(err))

                    self.connect(peerWithId: peripheralId)
                }
            }
        }
    }
    
    fileprivate func publish(notification: Clink.Notification) {

import CoreBluetooth


public class Clink: NSObject, BluetoothStateManager {
    static public let shared = Clink()
    
    weak public var peerManager: ClinkPeerManager? = nil
