ResponseNVP execute( RequestNVP requestNvp ) {
			StringBuilder spec = new StringBuilder( "https://" );
			spec.Append( _sandbox ? PAYPAL_SANDBOX : PAYPAL_HOST );
			spec.Append( "/nvp" );

			HttpWebRequest request = (HttpWebRequest) WebRequest.Create( spec.ToString() );

			request.Method = "POST";
			request.ContentType = "application/x-www-form-urlencoded";

			using ( Stream stream = request.GetRequestStream() ) {
				UTF8Encoding encoding = new UTF8Encoding();
				byte[] bytes = encoding.GetBytes( requestNvp.ToString() );

				stream.Write( bytes , 0 , bytes.Length );
			}

			HttpWebResponse response = (HttpWebResponse) request.GetResponse();
			ResponseNVP responseNvp;

			using ( Stream stream = response.GetResponseStream() ) {
				using ( StreamReader reader = new StreamReader( stream , Encoding.UTF8 ) ) {
					string result = reader.ReadToEnd();

					responseNvp = (ResponseNVP) result.ToString();
				}
			}

			return responseNvp;
		}
		RequestNVP createNVP() {
			RequestNVP nvp = new RequestNVP();
			
			nvp.Version = version;
			nvp.User = user;
			nvp.Password = pswd;
			nvp.Signature = signature;

			return nvp;
		}
			public Operation( ExpressCheckoutApi ec ) {
				this.ec = ec;

				requestNVP = ec.createNVP();
			}