diff --git a/amazon.info b/amazon.info
index f7f94b5..224fa36 100644
--- a/amazon.info
+++ b/amazon.info
@@ -5,3 +5,12 @@ package = Amazon
 core = 7.x
 php = 5.2
 configure = admin/config/amazon_settings/amazon
+
+; views handler
+files[] = includes/views_handler_field_amazon_date.inc
+files[] = includes/views_handler_field_amazon_image.inc
+files[] = includes/views_handler_field_amazon_title.inc
+files[] = includes/views_handler_field_amazon_xss.inc
+files[] = includes/views_handler_filter_amazon_node_module.inc
+files[] = includes/views_handler_filter_string_compare.inc
+files[] = includes/amazon_views_plugin_row_amazon_view.inc
\ No newline at end of file
diff --git a/includes/views_handler_field_amazon_date.inc b/includes/views_handler_field_amazon_date.inc
index c6550d7..a92e20b 100644
--- a/includes/views_handler_field_amazon_date.inc
+++ b/includes/views_handler_field_amazon_date.inc
@@ -18,7 +18,7 @@ class views_handler_field_amazon_date extends views_handler_field_date {
   }
 
   function render($values) {
-    $value = strtotime($values->{$this->field_alias});
+    $value = strtotime($this->get_value($values));
     $format = $this->options['date_format'];
     $default_format = 'Y-m-d';
     if (in_array($format, array('custom', 'raw time ago', 'time ago', 'raw time span', 'time span'))) {
diff --git a/includes/views_handler_field_amazon_image.inc b/includes/views_handler_field_amazon_image.inc
index 660a34b..06a0715 100644
--- a/includes/views_handler_field_amazon_image.inc
+++ b/includes/views_handler_field_amazon_image.inc
@@ -90,21 +90,25 @@ class views_handler_field_amazon_image extends views_handler_field {
   }
 
   function render($values) {
+    $url = $this->get_value($values, 'url');
+    $detailpageurl = $this->get_value($values, 'detailpageurl');
+    $asin = $this->get_value($values, 'asin');
+
     // We may not have a URL. It's not guaranteed that Amazon will give us one.
-    if (empty($values->{$this->aliases['url']})) {
+    if (empty($url)) {
       return;
     }
     $attributes = array(
-      'height' => $values->{$this->aliases['height']},
-      'width' => $values->{$this->aliases['width']},
+      'height' => $this->get_value($values, 'height'),
+      'width' => $this->get_value($values, 'width'),
     );
 
     // Choose presentation style
     if ($this->options['presentation_format'] == 'markup') {
-      $image = theme('image', array('path' => $values->{$this->aliases['url']}, 'alt' => NULL, 'title' => NULL, 'attributes' => $attributes, 'getsize' => FALSE));
+      $image = theme('image', array('path' => $url, 'alt' => NULL, 'title' => NULL, 'attributes' => $attributes, 'getsize' => FALSE));
     }
     else {
-      $image = $values->{$this->aliases['url']};
+      $image = $url;
     }
 
     switch ($this->options['link_format']) {
@@ -112,16 +116,14 @@ class views_handler_field_amazon_image extends views_handler_field {
         return $image;
         break;
       case 'amazon':
-        if (!empty($values->{$this->aliases['detailpageurl']})) {
-          $urlfield = $values->{$this->aliases['detailpageurl']};
-          return l($image, $urlfield, array('html' => TRUE));
+        if (!empty($detailpageurl)) {
+          return l($image, $detailpageurl, array('html' => TRUE));
         }
         else {
           return $image;
         }
         break;
       case 'amazon_store':
-        $asin = $values->{$this->aliases['asin']};
         return l($image, 'amazon_store/item/' . $asin, array('html' => TRUE));
         break;
     }
diff --git a/includes/views_handler_field_amazon_participant.inc b/includes/views_handler_field_amazon_participant.inc
index 5f841b2..c77da45 100644
--- a/includes/views_handler_field_amazon_participant.inc
+++ b/includes/views_handler_field_amazon_participant.inc
@@ -44,8 +44,9 @@ class views_handler_field_amazon_participant extends views_handler_field_prerend
 
     $asins = array();
     foreach ($values as $result) {
-      if (!empty($result->{$this->aliases['asin']})) {
-        $asins[] = $result->{$this->aliases['asin']};
+      $asin = $this->get_value($values, 'asin');
+      if (!empty($asin)) {
+        $asins[] = $asin;
       }
     }
 
diff --git a/includes/views_handler_field_amazon_title.inc b/includes/views_handler_field_amazon_title.inc
index f4feb4e..a525923 100644
--- a/includes/views_handler_field_amazon_title.inc
+++ b/includes/views_handler_field_amazon_title.inc
@@ -17,11 +17,10 @@ class views_handler_field_amazon_title extends views_handler_field {
       $this->additional_fields['detailpageurl'] = 'detailpageurl';
     }
     $this->additional_fields['asin'] = 'asin';
-    $this->additional_fields['nid'] = array('table' => 'node', 'field' => 'nid');
   }
 
   /**
-   * Provide link to node option
+   * Provide link options.
    */
   function options_form(&$form, &$form_state) {
     parent::options_form($form, $form_state);
@@ -34,9 +33,6 @@ class views_handler_field_amazon_title extends views_handler_field {
       ),
       '#default_value' => !empty($this->options['link_format']) ? $this->options['link_format'] : 'plain',
     );
-    if ($this->view->base_table == 'node') {
-      $form['link_format']['#options']['node'] = t('A link to the node the product is associated with');
-    }
     if (module_exists('amazon_store')) {
       $form['link_format']['#options']['amazon_store'] = t("A link to the product's Amazon Store page (Amazon Store Module)");
     }
@@ -44,33 +40,27 @@ class views_handler_field_amazon_title extends views_handler_field {
   }
 
   function render($values) {
-    return $this->render_link(check_plain($values->{$this->field_alias}), $values);
+		$value = $this->get_value($values);
+    return $this->render_link($this->sanitize_value($value, 'xss'), $values);
   }
 
-  function render_link($data, $values) {
-    $title = $data;
-
+  function render_link($title, $values) {
     switch ($this->options['link_format']) {
       case 'plain':
         break;
-      case 'node':
-        $this->options['alter']['make_link'] = TRUE;
-        $this->options['alter']['path'] = "node/$values->{$this->aliases['nid']}";
-        $this->options['alter']['html'] = TRUE;
-        break;
       case 'amazon':
         $this->options['alter']['make_link'] = TRUE;
-        $this->options['alter']['path'] = check_url($values->{$this->aliases['detailpageurl']});
+        $this->options['alter']['path'] = $this->sanitize_value($this->get_value($values, 'detailpageurl'), 'link');
         $this->options['alter']['html'] = TRUE;
         break;
       case 'amazon_store':
         $this->options['alter']['make_link'] = TRUE;
         $this->options['alter']['html'] = TRUE;
-        $asin = $values->{$this->aliases['asin']};
+        $asin = $this->get_value($values, 'asin');
         $this->options['alter']['path'] = 'amazon_store/item/' . $asin;
         break;
     }
 
-    return $data;
+    return $title;
   }
 }
diff --git a/includes/views_handler_field_amazon_xss.inc b/includes/views_handler_field_amazon_xss.inc
index 328ce80..094b04e 100644
--- a/includes/views_handler_field_amazon_xss.inc
+++ b/includes/views_handler_field_amazon_xss.inc
@@ -12,7 +12,7 @@
  */
 class views_handler_field_amazon_xss extends views_handler_field {
   function render($values) {
-    $value = $values->{$this->field_alias};
+    $value = $this->get_value($values);
     return filter_xss_admin($value);
   }
 }
