remove url (only hyper)
diff --git a/src/http.rs b/src/http.rs
index 7a02af7..8e9a92c 100644
--- a/src/http.rs
+++ b/src/http.rs
@@ -1,7 +1,7 @@
+use hyper::Url;
 use hyper::client::Client as HttpClient;
 use hyper::client::response::Response;
 use hyper::header::{Headers, UserAgent};
-use url::Url;
 
 use error::Error;
 use util;
@@ -9,7 +9,7 @@
 pub fn get(http_client: &HttpClient, url: &Url) -> Result<Response, Error> {
     let mut headers = Headers::new();
     headers.set(UserAgent(format!("rust-tuf/{}", env!("CARGO_PKG_VERSION"))));
-    let req = http_client.get(util::url_to_hyper_url(url)?)
+    let req = http_client.get(url.clone())
         .headers(headers);
     Ok(req.send()?)
 }
diff --git a/src/lib.rs b/src/lib.rs
index 42311dc..f8132fe 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -14,10 +14,10 @@
 //!
 //! ```no_run
 //! extern crate tuf;
-//! extern crate url;
+//! extern crate hyper;
+//! use hyper::Url;
 //! use tuf::{Tuf, Config, RemoteRepo};
 //! use std::path::PathBuf;
-//! use url::Url;
 //!
 //! fn main() {
 //!     let config = Config::build()
@@ -34,105 +34,6 @@
 //!
 //! The `Tuf` struct is the central piece to using this crate. It handles downloading and verifying
 //! of metadata as well as the storage of metadata and targets.
-//!
-//! ### An Integrated Example
-//!
-//! TUF is designed to be a drop in solution to verifying metadata and targets within an existing
-//! update library.
-//!
-//! Consider the following sample application that
-//!
-//! ```no_run
-//! extern crate url;
-//! use std::path::PathBuf;
-//! use url::Url;
-//!
-//! struct MyUpdater<'a> {
-//!     remote_url: Url,
-//!     local_cache: PathBuf,
-//!     package_list: Vec<&'a str>,
-//! }
-//!
-//! impl<'a> MyUpdater<'a> {
-//!     fn new(remote_url: Url, local_cache: PathBuf) -> Self {
-//!         MyUpdater {
-//!             remote_url: remote_url,
-//!             local_cache: local_cache,
-//!             package_list: Vec::new(),
-//!         }
-//!     }
-//!
-//!     fn update_lists(&mut self) -> Result<(), String> {
-//!         unimplemented!() // idk like some http + fs io probably
-//!     }
-//!
-//!     fn fetch_package(&self, package: &str) -> Result<PathBuf, String> {
-//!         if self.package_list.contains(&package) {
-//!             unimplemented!() // moar http + fs io
-//!         } else {
-//!             return Err("Unknown package".to_string())
-//!         }
-//!     }
-//! }
-//!
-//! fn main() {
-//!     let url = Url::parse("http://crates.io/").unwrap();
-//!     let cache = PathBuf::from("/var/lib/my-updater/");
-//!     let mut updater = MyUpdater::new(url, cache);
-//!     updater.update_lists().unwrap();
-//!     let path_to_crate = updater.fetch_package("some_crate/0.1.0").unwrap();
-//!     println!("Crate available at {}", path_to_crate.to_string_lossy());
-//! }
-//!
-//! ```
-//!
-//! This simple updater (baring some migration shims), could be altered to use TUF as follows.
-//!
-//! ```no_run
-//! extern crate tuf;
-//! extern crate url;
-//! use std::path::PathBuf;
-//! use tuf::{Tuf, Config, RemoteRepo};
-//! use url::Url;
-//!
-//! struct MyUpdater {
-//!     tuf: Tuf,
-//! }
-//!
-//! impl MyUpdater {
-//!     fn new(remote_url: Url, local_cache: PathBuf) -> Result<Self, String> {
-//!         let config = Config::build()
-//!             .remote(RemoteRepo::Http(remote_url))
-//!             .local_path(local_cache)
-//!             .finish()
-//!             .map_err(|e| format!("{:?}", e))?;
-//!         let tuf = Tuf::new(config)
-//!             .map_err(|e| format!("{:?}", e))?;
-//!         Ok(MyUpdater {
-//!             tuf: tuf,
-//!         })
-//!     }
-//!
-//!     fn update_lists(&mut self) -> Result<(), String> {
-//!         self.tuf.update().map_err(|e| format!("{:?}", e))
-//!     }
-//!
-//!     fn fetch_package(&self, package: &str) -> Result<PathBuf, String> {
-//!         self.tuf.fetch_target(&format!("targets/{:?}/pkg.crate", package))
-//!             .map_err(|e| format!("{:?}", e))
-//!     }
-//! }
-//!
-//! fn main() {
-//!     let url = Url::parse("http://crates.io/").unwrap();
-//!     let cache = PathBuf::from("/var/lib/my-updater/");
-//!     let mut updater = MyUpdater::new(url, cache).unwrap();
-//!     updater.update_lists().unwrap();
-//!     let path_to_crate = updater.fetch_package("some_crate/0.1.0").unwrap();
-//!     println!("Crate available at {}", path_to_crate.to_string_lossy());
-//! }
-//!
-//! ```
 
 #![deny(missing_docs)]
 
diff --git a/src/tuf.rs b/src/tuf.rs
index cac1287..b4fca45 100644
--- a/src/tuf.rs
+++ b/src/tuf.rs
@@ -2,7 +2,7 @@
 
 use chrono::UTC;
 use json;
-use hyper::Url as HyperUrl;
+use hyper::Url;
 use hyper::client::Client;
 use ring::digest;
 use ring::digest::{SHA256, SHA512};
@@ -11,7 +11,6 @@
 use std::fs::{self, File, DirBuilder};
 use std::io::{Read, Write, Seek, SeekFrom};
 use std::path::{PathBuf, Path};
-use url::Url;
 use uuid::Uuid;
 use walkdir::WalkDir;
 
@@ -1023,7 +1022,6 @@
                                 .map_err(|_| Error::Generic("URL path could not be mutated".to_string()))?
                                 .extend(util::url_path_to_path_components(&target)?);
                         }
-                        let url = util::url_to_hyper_url(&url)?;
                         let mut resp = http::get(&self.http_client, &url)?;
 
                         match Self::read_and_verify(&mut resp,
@@ -1269,7 +1267,7 @@
 enum FetchType {
     Cache(PathBuf),
     File(PathBuf),
-    Http(HyperUrl),
+    Http(Url),
 }
 
 impl FetchType {
diff --git a/src/util.rs b/src/util.rs
index 85991a5..1427af0 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -1,8 +1,6 @@
-use hyper;
 use std::fs::{self, File};
 use std::io::{self, Read, Write, Seek, SeekFrom};
 use std::path::{Path, PathBuf};
-use url::Url;
 use url::percent_encoding::percent_decode;
 use uuid::Uuid;
 
@@ -36,11 +34,6 @@
     Ok(out)
 }
 
-/// Converts a `url::Url` into a `hyper::Url`.
-pub fn url_to_hyper_url(url: &Url) -> Result<hyper::Url, Error> {
-    Ok(hyper::Url::parse(url.as_str())?)
-}
-
 
 #[derive(Debug)]
 struct TempFileInner {
diff --git a/tests/vectors.rs b/tests/vectors.rs
index 0226d40..eebff2a 100644
--- a/tests/vectors.rs
+++ b/tests/vectors.rs
@@ -1,4 +1,5 @@
 extern crate data_encoding;
+extern crate hyper;
 extern crate pem;
 extern crate serde;
 #[macro_use]
@@ -6,9 +7,9 @@
 extern crate serde_json as json;
 extern crate tempdir;
 extern crate tuf;
-extern crate url;
 
 use data_encoding::HEXLOWER;
+use hyper::Url;
 use std::fs::{self, File, DirEntry};
 use std::io::{self, Read};
 use std::path::{PathBuf, Path};
@@ -16,7 +17,6 @@
 use tempdir::TempDir;
 use tuf::{Tuf, Config, Error, RemoteRepo};
 use tuf::meta::{Key, KeyValue, KeyType};
-use url::Url;
 
 
 fn load_vector_meta() -> String {