public ITokenVerifier CreateTokenVerifier()
        {
            var dataHasher               = new Md5DataHasher();
            var signatureGenerator       = new ApiSignatureGenerator(dataHasher, _sharedSecret);
            var urlBuilderFactory        = new AuthUrlBuilderFactory(_apiKey, signatureGenerator);
            var permissionLevelConverter = new PermissionLevelConverter();
            var urlFactory               = new AuthUrlFactory(urlBuilderFactory, permissionLevelConverter);
            var httpClient               = new RtmHttpClient();
            var apiClient = new ApiClient(httpClient);

            return(new TokenVerifier(urlFactory, apiClient));
        }
        public IDesktopAuthenticator CreateDesktopAuthenticator()
        {
            var dataHasher               = new Md5DataHasher();
            var signatureGenerator       = new ApiSignatureGenerator(dataHasher, _sharedSecret);
            var urlBuilderFactory        = new AuthUrlBuilderFactory(_apiKey, signatureGenerator);
            var permissionLevelConverter = new PermissionLevelConverter();
            var urlFactory               = new AuthUrlFactory(urlBuilderFactory, permissionLevelConverter);
            var httpClient               = new RtmHttpClient();
            var apiClient   = new ApiClient(httpClient);
            var userFactory = new UserFactory();

            return(new DesktopAuthenticator(urlFactory, apiClient, userFactory));
        }