 // MARK: - Request Token
 
 private extension Provider {
-    func requestToken(_ grantType: GrantType, completion: Completion) {
+    func requestToken(_ grantType: GrantType, completion: @escaping Completion) {
         let params = tokenRequestParams(grantType)
         
         HTTP.POST(tokenURL!, parameters: params) { resultJSON in

     
     - parameter completion: The block to be executed when the authorization process ends.
     */
    open func authorize(_ completion: Completion) {
        self.completion = completion as Completion?
        
        switch responseType {

     
     - parameter completion: The block to be executed when the refresh token process ends.
     */
    open func refreshToken(_ completion: @escaping Completion) {
        guard let refreshToken = token?.refreshToken else {
            let error = Error.other("", "")
            completion(Result.failure(error))
