             } else {
                 self.afterPeripheralDiscoveredPromise = StreamPromise<Wrapper.WrappedPeripheral>()
             }
-            central.scanForPeripheralsWithServices(uuids)
+            self.central.scanForPeripheralsWithServices(uuids)
         }
         return self.afterPeripheralDiscoveredPromise.future
     }
     
-    public func stopScanning(central:Wrapper) {
+    public func stopScanning() {
         if self._isScanning {
             Logger.debug("CentralManagerImpl#stopScanning")
             self._isScanning = false
-            central.stopScan()
+            self.central.stopScan()
         }
     }
     
     // connection
-    public func disconnectAllPeripherals(central:Wrapper) {
+    public func disconnectAllPeripherals() {
         Logger.debug("CentralManagerImpl#disconnectAllPeripherals")
-        for peripheral in central.peripherals {
+        for peripheral in self.central.peripherals {
             peripheral.disconnect()
         }
     }
     
     
     // power up
-    public func powerOn(central:Wrapper) -> Future<Void> {
+    public func powerOn() -> Future<Void> {
         Logger.debug("CentralManagerImpl#powerOn")
         let future = self.afterPowerOnPromise.future
         self.afterPowerOnPromise = Promise<Void>()
-        if central.poweredOn {
+        if self.central.poweredOn {
             self.afterPowerOnPromise.success()
         }
         return future
     }
     
-    public func powerOff(central:Wrapper) -> Future<Void> {
+    public func powerOff() -> Future<Void> {
         Logger.debug("CentralManagerImpl#powerOff")
         let future = self.afterPowerOffPromise.future
         self.afterPowerOffPromise = Promise<Void>()
-        if central.poweredOff {
+        if self.central.poweredOff {
             self.afterPowerOnPromise.success()
         }
         return future


    // ServiceImpl
    
    
    private var cbCentralManager : CBCentralManager! = nil
    private let centralQueue     = dispatch_queue_create("com.gnos.us.central.main", DISPATCH_QUEUE_SERIAL)
    


    // scanning
    public func startScanning(capacity:Int? = nil) -> FutureStream<Peripheral> {
        return self.impl.startScanning(capacity:capacity)
    }
    
    public func startScanningForServiceUUIDs(uuids:[CBUUID]!, capacity:Int? = nil) -> FutureStream<Peripheral> {
        return self.impl.startScanningForServiceUUIDs(uuids, capacity:capacity)
    }
    
    public func stopScanning() {
        self.impl.stopScanning()
    }
    
    public func removeAllPeripherals() {
