     }
 }
 
-public class MQTTWillOpts {
+public struct MQTTWillOpts {
     public let topic: String
     public let payload: NSData
     public let qos: Int32

    internal init(){}
}

public class MQTTMessage {
    public let messageId: Int
    public let topic: String
    public let payload: NSData

        self.retain = retain
    }

    public 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 struct MQTTAuthOpts {
    public let username: String
    public let password: String

