     let version = "1"
     let useModifiedBase64ForURL: Bool
     
+    /**
+     @param apiKey The API key to be used.
+     @param secretKey The secret key to be used.
+     @param useModifiedBase64ForURL A boolean indicating whether to use modified Base64
+                                    for URL encoding in the generated signature. Setting
+                                    this to true will replace '+' and '/' characters 
+                                    with '-' and '_' respectively in the signature.
+     
+     */
     init(apiKey: String, secretKey: String, useModifiedBase64ForURL: Bool) {
         self.apiKey = apiKey
         self.secretKey = secretKey
         self.useModifiedBase64ForURL = useModifiedBase64ForURL
     }
     
-    // MARK: - Public Method
+    // MARK: - Main Method
     
+    /**
+     Encodes an outbound NSMutableURLRequest. 
+     Any query parameter string should be added to the URL before calling this method,
+     and it should NOT contain the API key as it is added here.
+     
+     @param request The outbound NSMutableURLRequest.
+     */
     func encodeRequest(request: NSMutableURLRequest) {
         let timestamp = getCurrentTimeStamp()
         self.addAPIKey(request)

        self.addVersion(request)
    }
    
    // MARK: - Private Methods
    
    func getCurrentTimeStamp() -> String {
        let dateFormatter = NSDateFormatter()

        return dateFormatter.stringFromDate(NSDate())
    }
    
    /**
     Adds the API Key as a query parameter to the outbound HTTP request.
     
     @param request The outbound NSMutableURLRequest.
     */
    func addAPIKey(request: NSMutableURLRequest) {
        if let urlString = request.URL?.absoluteString, urlComponents = NSURLComponents(string: urlString) {
            if urlComponents.queryItems == nil {
