diff --git a/media_archive.info b/media_archive.info
index 366943c..8149ee6 100755
--- a/media_archive.info
+++ b/media_archive.info
@@ -5,6 +5,7 @@ package = "Media"
 core = 7.x
 files[] = media_archive.module
 files[] = MediaArchiveStreamWrapper.inc
+files[] = MediaInternetArchiveHandler.inc
 files[] = media_archive.admin.inc
 files[] = includes/media_archive.styles.inc
 dependencies[] = media_internet
diff --git a/media_archive.module b/media_archive.module
index fac56cc..7086d86 100755
--- a/media_archive.module
+++ b/media_archive.module
@@ -252,83 +252,6 @@ function media_archive_media_internet_providers() {
   );
 }
 
-class MediaInternetArchiveHandler extends MediaInternetBaseHandler {
-  public function claim($embedCode) {
-    if (media_archive_media_parse($embedCode)) {
-      return TRUE;
-    }
-  }
-
-  public function validate() {
-    // @todo Media module currently fails when two files try to have the same
-    //   URI, so catch that in the validation step. Some day, it would be nice
-    //   to allow it, however. See http://drupal.org/node/952422.
-    $uri = media_archive_media_parse($this->embedCode);
-    $existing_files = file_load_multiple(array(), array('uri' => $uri));
-    if (count($existing_files)) {
-      throw new MediaInternetValidationException(t('You have entered a URL for a video that is already in your library.'));
-    }
-  }
-
-  public function save() {
-    $file = $this->getFileObject();
-    file_save($file);
-    return $file;
-  }
-
-  public function getFileObject() {
-    $uri = media_archive_media_parse($this->embedCode);
-    //@todo: this is terribly broken in some ways because the function is really
-    // made for local files which are 'real'
-    return file_uri_to_object($uri);
-  }
-
-  /**
-   * Returns information about the media. See http://video.search.yahoo.com/mrss.
-   *
-   * @return
-   *   If ATOM+MRSS information is available, a SimpleXML element containing
-   *   ATOM and MRSS elements, as per those respective specifications.
-   *
-   * @todo Would be better for the return value to be an array rather than a
-   *   SimpleXML element, but media_retrieve_xml() needs to be upgraded to
-   *   handle namespaces first.
-   */
-   
-  //http://archive.org/file/4035623?skin=rss
-
-  public function getMRSS() {
-    $uri = media_archive_media_parse($this->embedCode);
-    $video_id = arg(1, file_uri_target($uri));
-    $rss_url = url('http://gdata.archive.org/feeds/api/videos/' . $video_id, array('query' => array('v' => '2')));
-    // @todo Use media_retrieve_xml() once it's upgraded to include elements
-    //   from all namespaces, not just the document default namespace.
-    $entry = simplexml_load_file($rss_url);
-    return $entry;
-  }
-
-  /**
-   * Returns information about the media. See http://www.oembed.com/.
-   *
-   * @return
-   *   If oEmbed information is available, an array containing 'title', 'type',
-   *   'url', and other information as specified by the oEmbed standard.
-   *   Otherwise, NULL.
-   */
-  
-  //http://archive.org/oembed/?url=http://archive.org/file/12345
-
-  public function getOEmbed() {
-    $uri = media_archive_media_parse($this->embedCode);
-    $external_url = drupal_realpath($uri);
-    $oembed_url = url('http://archive.org/oembed', array('query' => array('url' => $external_url, 'format' => 'json')));
-    $response = drupal_http_request($oembed_url);
-    if (!isset($response->error)) {
-      return drupal_json_decode($response->data);
-    }
-  }
-}
-
 function media_archive_embedcode_lookup($video_id) {
   
   //http://www.archive.org/download/bavc-77620-dominotheory/bavc-77620-dominotheory_files.xml
