   var tokenPeriperal :CBPeripheral
   var tokenPeriperalProtocolImpl :TokenPeripheralProtocolImpl
   var identifier :NSUUID
-  var tokenCommander :TokenCommander
-  var keyMaterial :KeyMaterial
+  var tokenCommander :TokenCommander!
+  private var keyMaterial :KeyMaterial?
   
   // MARK - member varibales
   var isConnected = false

          wCtx.isAck = false;
        } else {
          print("No ack for write");
          handler!(Response(), error: createError("Protocol", description: "Error during communication"))
          break;
        }
      }

      wCtx = WriteCtx();
      let responseCopy = currentResponse;
      currentResponse = Response();
      
      if responseCopy.isValid() {
        async { self.handler!(responseCopy, error: nil) }
      } else {
        let error = createError("Command Error", description: "Todo: Description here code \(responseCopy.status().rawValue)")
        async { self.handler!(Response(), error: error) }
      }
    }
  }
  
  
