 extension ViewController: DataCharacteristicDelegate {
     
     func found() {
-        _appendLog("Data characteristic found!")
+        dispatch_async(dispatch_get_main_queue(), {
+            self._appendLog("Data characteristic found!")
+        })
     }
     
     func dataRead(dataSize: Int) {

    }

    func centralDidUpdateState(manager: BLECManager) {
        _appendLog(_stateName(_manager.state))
    }

    func central(manager: BLECManager, didDiscoverPeripheral peripheral: CBPeripheral, RSSI: Int) {
        _appendLog("Discovered: \(peripheral.identifier.UUIDString)")
        _showRSSI(RSSI)
    }

    func central(central: BLECManager, didConnectPeripheral peripheral: CBPeripheral) {
        _appendLog("Connected \(peripheral.identifier.UUIDString)")
        _timer = NSTimer.scheduledTimerWithTimeInterval(1.0,
                                                        target: self,
                                                        selector: #selector(_update),
                                                        userInfo: nil,
                                                        repeats: true)
    }

    func central(central: BLECManager, didCheckCharacteristicsDevice device: BLECDevice) {


    func central(central: BLECManager, didDisconnectDevice device: BLECDevice, error: NSError?) {
        DLog("Disconnected");
        let uuid = device.UUID.UUIDString

        dispatch_async(dispatch_get_main_queue(), {
            self._appendLog("Disconnected: \(uuid)")
            self._showRSSI(0)
            if let timer = self._timer {
                timer.invalidate()
                self._timer = nil
            }
        })
    }

    func device(device: BLECDevice, didReadRSSI RSSI: Int, error: NSError?) {
