private void createSignature()
        {
            var method  = ContainedRequest.Method;
            var baseUrl = String.Format("{0}://{1}{2}", ContainedRequest.RequestUri.Scheme, ContainedRequest.RequestUri.Host, ContainedRequest.RequestUri.AbsolutePath);

            var parameters  = new SortedDictionary <string, string>(AuthorizationHeader);
            var queryParams = UrlHelper.ParseQueryString(ContainedRequest.RequestUri.Query);

            foreach (var pair in queryParams)
            {
                parameters.Add(pair.Key, pair.Value);
            }

            if (method.Equals("POST") && !String.IsNullOrEmpty(ContainedRequest.ContentType) && ContainedRequest.ContentType.Equals(FormUrlEncodedMimeType))
            {
                if (!String.IsNullOrEmpty(PostParameters))
                {
                    var postParams = UrlHelper.ParseQueryString(PostParameters);

                    foreach (var pair in postParams)
                    {
                        parameters.Add(pair.Key, pair.Value);
                    }
                }
            }

            var paramString = new StringBuilder();

            foreach (var pair in parameters)
            {
                if (paramString.Length > 0)
                {
                    paramString.Append("&");
                }
                paramString.AppendFormat("{0}={1}", UrlHelper.Encode(pair.Key), UrlHelper.Encode(pair.Value));
            }

            // percent encode everything
            var encodedParams = String.Format("{0}&{1}&{2}", ContainedRequest.Method.ToUpper(),
                                              UrlHelper.Encode(baseUrl), UrlHelper.Encode(paramString.ToString()));

            // key
            var key = String.Format("{0}&{1}", UrlHelper.Encode(RequestTokens.ConsumerSecret),
                                    UrlHelper.Encode(RequestTokens.AccessTokenSecret));

            // signature time!
            string signature = SignatureMethod.CreateSignature(this.SigningMethod, encodedParams.ToString(), key);

            AuthorizationHeader.Add("oauth_signature", signature);
        }