authorize: function() {
            if (this.isAuthorized()) {
                return utils.resolve(true);
            } else {


                return utils
                    .makeCall('oauth/request', {
                        redirect_uri: redirect_uri
                    })
                    .then(function(obj) {
                        var result = $.Deferred();

                        var url = 'https://getpocket.com/auth/authorize?request_token=' + obj.code +
                            '&redirect_uri=' + redirect_uri;

                        chrome.identity.launchWebAuthFlow({
                            'url': url,
                            'interactive': true
                        }, function(redirect_url) {

                            result.resolve(obj.code);

                        });

                        return result.promise();
                    })
                    .then(function(code) {
                        return utils.makeCall('oauth/authorize', {
                            code: code
                        });
                    })
                    .then(function(obj) {
                        this.saveAccessToken(obj);
                    }.bind(this));

            }
        }
 .then(function(code) {
     return utils.makeCall('oauth/authorize', {
         code: code
     });
 })