diff --git a/FeedsCommentProcessor.inc b/FeedsCommentProcessor.inc
index 57efde2..0bbfa73 100644
--- a/FeedsCommentProcessor.inc
+++ b/FeedsCommentProcessor.inc
@@ -17,7 +17,7 @@ define('FEEDS_COMMENT_UPDATE_EXISTING', 2);
 /**
  * Creates comments from feed items.
  */
-class FeedsCommentProcessor extends FeedsProcessor {
+class FeedsCommentProcessor extends FeedsNodeProcessor {
   /**
    * Define entity type.
    */
@@ -123,7 +123,11 @@ class FeedsCommentProcessor extends FeedsProcessor {
    * Override parent::configDefaults().
    */
   public function configDefaults() {
+    $types = node_type_get_names();
+    $type = key($types);
+
     return array(
+      'content_type' => $type,
       'input_format' => filter_default_format(),
       'update_existing' => FEEDS_SKIP_EXISTING,
       'expire' => FEEDS_EXPIRE_NEVER,
@@ -137,11 +141,19 @@ class FeedsCommentProcessor extends FeedsProcessor {
    */
   public function configForm(&$form_state) {
     $form = array();
+    $types = node_type_get_names();
     $format_options = array(filter_default_format() => t('Default format'));
     $formats = filter_formats();
     foreach ($formats as $format) {
       $format_options[$format->format] = $format->name;
     }
+    $form['content_type'] = array(
+      '#type' => 'select',
+      '#title' => t('Content type'),
+      '#description' => t('Select the content type for the nodes the comments are attached to.'),
+      '#options' => $types,
+      '#default_value' => $this->config['content_type'],
+    );
     $form['input_format'] = array(
       '#type' => 'select',
       '#title' => t('Input format'),
@@ -196,11 +208,9 @@ class FeedsCommentProcessor extends FeedsProcessor {
    */
   public function setTargetElement(FeedsSource $source, $target_comment, $target_element, $value) {
     switch ($target_element) {
-      case 'comment':
-        $target_comment->comment_body[$target_comment->language][0]['value'] = $value;
-        break;
-      case 'guid':
-        $target_comment->feeds_comment_item->guid = $value;
+      case 'nid:guid':
+        $target_comment->nid = db_query("SELECT entity_id FROM {feeds_item} WHERE entity_type='node' AND guid = :guid",
+          array(':guid' => $value))->fetchField();
         break;
       default:
         parent::setTargetElement($source, $target_comment, $target_element, $value);
@@ -221,6 +231,10 @@ class FeedsCommentProcessor extends FeedsProcessor {
         'name' => t('Node ID'),
         'description' => t('The nid to which this comment is a reply.'),
       ),
+      'nid:guid' => array(
+        'name' => t('Node ID (from Feeds GUID)'),
+        'description' => t('Lookup nid from feeds GUID to which this comment is a reply.'),
+      ),
       'uid' => array(
         'name' => t('User ID'),
         'description' => t('The Drupal user ID of the comment author.'),
@@ -229,10 +243,6 @@ class FeedsCommentProcessor extends FeedsProcessor {
         'name' => t('Title'),
         'description' => t('The title of the comment.'),
       ),
-      'comment' => array(
-        'name' => t('Comment'),
-        'description' => t('The comment body.'),
-      ),
       'hostname' => array(
         'name' => t('Hostname'),
         'description' => t('The author\'s host name.'),
@@ -266,7 +276,9 @@ class FeedsCommentProcessor extends FeedsProcessor {
 
     // Let other modules expose mapping targets.
     self::loadMappers();
-    feeds_alter('feeds_comment_processor_targets', $targets);
+    $entity_type = $this->entityType();
+    $bundle = 'comment_node_' . $this->config['content_type'];
+    feeds_alter('feeds_processor_targets', $targets, $entity_type, $bundle);
 
     return $targets;
   }
@@ -284,9 +296,10 @@ class FeedsCommentProcessor extends FeedsProcessor {
     foreach ($this->uniqueTargets($source, $result) as $target => $value) {
       switch ($target) {
         case 'guid':
-          $cid = db_query("SELECT cid FROM {feeds_comment_item} WHERE feed_nid = :feed_nid AND id = :id AND guid = :guid", array(':feed_nid' => $source->feed_nid, ':id' => $source->id, ':guid' => $value))->fetchField();
+          $cid = db_query("SELECT entity_id FROM {feeds_item} WHERE feed_nid = :feed_nid AND id = :id AND guid = :guid", array(':feed_nid' => $source->feed_nid, ':id' => $source->id, ':guid' => $value))->fetchField();
           break;
       }
+
       if ($cid) {
         // Return with the first cid found.
         return $cid;
diff --git a/feeds_comment_processor.info b/feeds_comment_processor.info
index b035c77..7bc5e06 100644
--- a/feeds_comment_processor.info
+++ b/feeds_comment_processor.info
@@ -1,4 +1,5 @@
 name = Feeds Comment Processor
+project = "feeds_comment_processor"
 description = Create and update comments from parsed content.
 package = Feeds
 dependencies[] = feeds
diff --git a/feeds_comment_processor.install b/feeds_comment_processor.install
index 2f655aa..8b9c67e 100644
--- a/feeds_comment_processor.install
+++ b/feeds_comment_processor.install
@@ -4,55 +4,3 @@
  * Install, update and uninstall functions for the feeds_comment_processor module.
  *
  */
-
-
-/**
- * Implements hook_schema().
- */
-function feeds_comment_processor_schema() {
-  $schema = array();
-  $schema['feeds_comment_item'] = array(
-    'description' => 'Stores additional information about feed item comments. Used by FeedsCommentProcessor.',
-    'fields' => array(
-      'cid' => array(
-        'type' => 'int',
-        'unsigned' => TRUE,
-        'not null' => TRUE,
-        'description' => "Primary Key: The feed item comment's cid.",
-      ),
-      'id' => array(
-        'type' => 'varchar',
-        'length' => 128,
-        'not null' => TRUE,
-        'default' => '',
-        'description' => 'The id of the fields object that is the producer of this item.',
-      ),
-      'feed_nid' => array(
-        'type' => 'int',
-        'unsigned' => TRUE,
-        'not null' => TRUE,
-        'description' => "Node id of the owner feed, if available.",
-      ),
-      'imported' => array(
-        'type' => 'int',
-        'not null' => TRUE,
-        'default' => 0,
-        'description' => 'Import date of the feed item, as a Unix timestamp.',
-      ),
-      'guid' => array(
-        'type' => 'text',
-        'not null' => TRUE,
-        'description' => 'Unique identifier for the feed item.',
-      ),
-    ),
-    'primary key' => array('cid'),
-    'indexes' => array(
-      'id' => array('id'),
-      'feed_nid' => array('feed_nid'),
-      'imported' => array('imported'),
-      'guid' => array(array('guid', 255)),
-    ),
-  );
-  return $schema;
-}
-
diff --git a/feeds_comment_processor.module b/feeds_comment_processor.module
index f1c9d44..0655738 100644
--- a/feeds_comment_processor.module
+++ b/feeds_comment_processor.module
@@ -20,32 +20,3 @@ function feeds_comment_processor_feeds_plugins() {
   );
   return $info;
 }
-
-/**
- * Implements hook_comment_insert().
- */
-function feeds_comment_processor_comment_insert($comment) {
-  if (isset($comment->feeds_comment_item)) {
-    $comment->feeds_comment_item->cid = $comment->cid;
-    drupal_write_record('feeds_comment_item', $comment->feeds_comment_item);
-  }
-}
-
-/**
- * Implements hook_comment_update().
- */
-function feeds_comment_processor_comment_update($comment) {
-  if (isset($comment->feeds_comment_item)) {
-    $comment->feeds_comment_item->cid = $comment->cid;
-    drupal_write_record('feeds_comment_item', $comment->feeds_comment_item, 'cid');
-  }
-}
-
-/**
- * Implements hook_comment_delete().
- */
-function feeds_comment_processor_comment_delete($comment) {
-  db_delete('feeds_comment_item')
-  ->condition('cid', $comment->cid)
-  ->execute();
-}
