     }
 }
 
-public class MQTTClient {
+public final class MQTTClient {
     private let mosquittoContext: __MosquittoContext
     internal let operationQueue: NSOperationQueue
     private var isFinished: Bool

        self.retain = retain
    }

    public convenience init(topic: String, payload: String, qos: Int32, retain: Bool) {
        let rawPayload = payload.dataUsingEncoding(NSUTF8StringEncoding)!
        self.init(topic: topic, payload: rawPayload, qos: qos, retain: retain)
    }
}

public class MQTTAuthOpts {
    public let username: String
    public let password: String


}

@objc(__MosquittoContext)
public final class __MosquittoContext {
    public var mosquittoHandler: COpaquePointer = COpaquePointer.null()
    public var isConnected: Bool = false
    public var onConnectCallback: ((returnCode: Int) -> Void)!
