             throw error
         }
         
-        // TODO: can we do this better? [RH] (3/28/16)
-        // like maybe notifications? delegate? account update block?
         self.client.authenticate(account: account)
     }
     

    static let ErrorCodeGrant = 1005
    static let ErrorCodeGrantState = 1006
    
    typealias AuthenticationCompletion = ResultCompletion<VIMAccountNew>.T
    
    /// State is tracked for the code grant request/response cycle, to avoid 

    
    func codeGrantAuthorizationURL() -> NSURL
    {
        let parameters = [self.dynamicType.ResponseTypeKey: self.dynamicType.CodeKey,
                          self.dynamicType.ClientIDKey: self.configuration.clientKey,
                          self.dynamicType.RedirectURIKey: self.codeGrantRedirectURI,
                          self.dynamicType.ScopeKey: Scope.combine(self.configuration.scopes),
                          self.dynamicType.StateKey: self.dynamicType.state]
        
        var error: NSError?
        guard let urlString = VimeoBaseURLString?.URLByAppendingPathComponent(self.dynamicType.CodeGrantAuthorizationPath).absoluteString
        else
        {
            fatalError("Could not make code grant auth URL")
