                     content = "privatekey=\(privateKey)"
                 }
                 
-                connectionUrl = connectionUrl + path
+                connectionUrl = connectionUrl! + path
                 let postData: Data = (content as NSString).data(using: String.Encoding.utf8.rawValue, allowLossyConversion: true)!
                 let postLength: String = "\(CUnsignedLong((postData as Data).count))"
                 let request: NSMutableURLRequest = NSMutableURLRequest()
-                request.url = URL(string: connectionUrl)
+                request.url = URL(string: connectionUrl!)
                 request.httpMethod = "POST"
                 request.setValue(postLength, forHTTPHeaderField: "Content-Length")
                 request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")

     - return: TRUE if the authentication was successful or FALSE if it was not.
     */
    open func saveAuthentication(_ aUrl:String,
                                 isCluster:Bool,
                                 authenticationToken:String,
                                 authenticationTokenIsPrivate:Bool,
                                 applicationKey:String,
                                 timeToLive:Int,
                                 privateKey:String,
                                 permissions:NSMutableDictionary?)->Bool{
        /*
         * Sanity Checks.
         */

    func processConnect(_ sender: AnyObject) {
        if stopReconnecting == false {
            balancer = (Balancer(cluster: self.clusterUrl as? String, serverUrl: self.url as? String, isCluster: self.isCluster!, appKey: self.applicationKey!,
                callback:
                { (aBalancerResponse: String?) in
                    
                    if self.isCluster != nil {
