diff --git a/corresponding_node_references.admin.inc b/corresponding_node_references.admin.inc
index 6714826..faed3bc 100644
--- a/corresponding_node_references.admin.inc
+++ b/corresponding_node_references.admin.inc
@@ -1,4 +1,4 @@
-+<?php
+<?php
 /**
  * @file
  * Admin functionality, separated for performance purposes.
@@ -54,7 +54,7 @@ function corresponding_node_references_settings_form() {
         );
         $form['values'][$count]['enabled_' . $count] = array(
           '#type' => 'checkbox',
-          '#default_value' => db_query("SELECT enabled FROM {corresponding_node_references} WHERE node_types_content_fields = :key", array(':key' => $formated_key))->fetchField(),
+          '#default_value' => corresponding_node_references_preset_enabled($formated_key),
           '#title' => $formated_label,
         );
         $count++;
@@ -81,7 +81,7 @@ function corresponding_node_references_settings_form() {
  * Submit function for settings form.
  */
 function corresponding_node_references_settings_form_submit($form, $form_values) {
-  db_update('corresponding_node_references')->fields(array('enabled' => 0))->execute();
+  ctools_include('export');
   $query_values = array();
 
   $mapping = unserialize($form_values['values']['mapping']);
@@ -92,9 +92,22 @@ function corresponding_node_references_settings_form_submit($form, $form_values)
     }
   }
 
+  // load all existing presets
+  $presets = ctools_export_crud_load_all('corresponding_node_references');
+
   foreach ($query_values as $key => $value) {
-    db_delete('corresponding_node_references')->condition('node_types_content_fields', $key)->execute();
-    db_insert('corresponding_node_references')->fields(array('node_types_content_fields' => $key, 'enabled' => $value))->execute();
+    // get preset object (create new one if it doesn't exist already).
+    $preset = empty($presets[$key]) ? ctools_export_crud_new('corresponding_node_references') : $presets[$key];
+    // set and save value
+    $preset->enabled = $value;
+    ctools_export_crud_save('corresponding_node_references', $preset);
+    // remove from list of presets, so we know which ones are still used
+    if (isset($presets[$key])) unset($presets[$key]);
+  }
+
+  // delete old presets
+  foreach ($presets as $preset) {
+    //ctools_export_crud_delete($preset);
   }
 
   drupal_set_message(t('The configuration has been saved'));
diff --git a/corresponding_node_references.module b/corresponding_node_references.module
index d854e5c..2b96661 100644
--- a/corresponding_node_references.module
+++ b/corresponding_node_references.module
@@ -83,6 +83,30 @@ function corresponding_node_references_node_delete($node) {
 }
 
 /**
+ * Load enabled CNR presets.
+ */
+function corresponding_node_references_preset_load_enabled() {
+  ctools_include('export');
+  return ctools_export_load_object('corresponding_node_references', 'conditions', array('enabled' => 1));
+}
+
+/**
+ * Return CNR preset by key.
+ */
+function corresponding_node_references_preset_load($key) {
+  ctools_include('export');
+  return ctools_export_crud_load('corresponding_node_references', $key);
+}
+
+/**
+ * Return 1 if CNR preset specified by given key is enabled.
+ */
+function corresponding_node_references_preset_enabled($key) {
+  $preset = corresponding_node_references_preset_load($key);
+  return empty($preset) ? 0 : $preset->enabled;
+}
+
+/**
  * Process a node's corresponding node references.
  *
  * @param $op the operation being performed on the node.
@@ -93,8 +117,8 @@ function corresponding_node_references_node_delete($node) {
 function corresponding_node_references_processing_node($op, $node, $process_unchanged = FALSE) {
   module_load_include('inc', 'corresponding_node_references', 'corresponding_node_references.crud');
 
-  $result = db_query("SELECT node_types_content_fields FROM {corresponding_node_references} WHERE enabled = :enabled", array(':enabled' => 1));
-  while ($row = $result->fetchObject()) {
+  $result = corresponding_node_references_preset_load_enabled();
+  while ($row = array_shift($result)) {
     $key = explode('*', $row->node_types_content_fields);
 
     switch ($node->type) {
@@ -151,7 +175,7 @@ function corresponding_node_references_batch_update_existing_nodes($types, $limi
 
   $nids = array();
   $args = $types;
-  $args['current node'] = $context['sandbox']['current_node'];
+  $args['current_node'] = $context['sandbox']['current_node'];
   // Get node IDs to update.
   $result = db_query_range("SELECT nid FROM {node} WHERE type IN (:types) AND nid > :args ORDER BY nid", 0, $limit, array(':types' => $types, ':args' => $args['current_node']));
 
