diff --git a/draggableviews_handler_flag_weights.inc b/draggableviews_handler_flag_weights.inc
deleted file mode 100644
index 7038c3c..0000000
--- a/draggableviews_handler_flag_weights.inc
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/**
- * @file
- *   Flag weights implementation for draggableviews.
- */
-
-/*
-* Implementation using the Flag Weight module.
-*/
-class draggableviews_handler_flag_weights extends draggableviews_handler {
-  function init($field_name, &$view) {
-    parent::init($field_name, $view);
-
-    // Check that the handler is being used on the right type of field.
-    if ($view->field[$field_name]->table != 'flag_content') {
-      drupal_set_message(t("This handler cannot be applied to this field - use Weight!"));
-    }
-
-    // TODO: much more checking - relationship, types, fields etc, ***CURRENT_USER***
-
-    $this->field = $view->field[$field_name];
-    $relationship = $view->relationship['flag_content_rel'];
-    $this->flag_id = $relationship->definition['extra'][0]['value'];
-    $this->flag = flag_get_flag($relationship->options['flag']);
-  }
-
-  function save($nid, $value) {
-    global $user; // assume $extra['uid] = '***CURRENT_USER***'
-    // For global flags, use uid 0
-    $uid = $this->flag->global ? 0 : $user->uid;
-
-    flag_weights_set_weight($this->flag_id, $this->flag->content_type, $nid, $uid, $value);
-  }
-}
diff --git a/flag_weights.info b/flag_weights.info
index 7c87af8..a04bd7c 100644
--- a/flag_weights.info
+++ b/flag_weights.info
@@ -4,3 +4,4 @@ package = Flags
 core = 7.x
 dependencies[] = flag
 files[] = views_handler_sort_flag_weights.inc
+files[] = handlers/draggableviews_handler_flag_weights.inc
\ No newline at end of file
diff --git a/flag_weights.module b/flag_weights.module
index c3039ba..11563d7 100644
--- a/flag_weights.module
+++ b/flag_weights.module
@@ -124,21 +124,13 @@ function flag_weights_set_weight($fid, $content_type, $content_id, $uid, $weight
 }
 
 /**
- * Implements hook_draggableviews_handlers().
- *
- * Integrate with Draggable Views module.
+ * Implements hook_ctools_plugin_directory().
  */
-function flag_weights_draggableviews_handlers() {
-  return array(
-    'flag_weights' => array(
-      'file' => 'draggableviews_handler_flag_weights.inc',
-      'title' => t('Flag Weights'),
-      'description' => t('Default implementation with Flag Weights'),
-      'handler' => 'draggableviews_handler_flag_weights',
-    ),
-  );
+function flag_weights_ctools_plugin_directory($module, $plugin) {
+	if (($module == 'draggableviews') && ($plugin == 'handler')) {
+		return 'handlers';
+	}
 }
-
 /**
  * Implements hook_form_FORMID_alter().
  *
diff --git a/handlers/draggableviews_handler_flag_weights.inc b/handlers/draggableviews_handler_flag_weights.inc
new file mode 100644
index 0000000..558232f
--- /dev/null
+++ b/handlers/draggableviews_handler_flag_weights.inc
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * @file
+ *   Flag weights implementation for draggableviews.
+ */
+
+$plugin = array(
+	'label' => 'Flag Weights',
+	'handler' => array(
+		'class' => 'draggableviews_handler_flag_weights',
+	),
+);
+
+/*
+* Implementation using the Flag Weight module.
+*/
+class draggableviews_handler_flag_weights extends draggableviews_handler {
+	//iStryker: set the weight to node weight.  I don't know why its 'node' weight, it should be entity weight I think
+	//This will probably change when flag weight changes its naming convention 
+	function get($field, $index) {
+		$row = $field->view->result[$index];
+		return (isset($row->flag_content_node_weight)) ? $row->flag_content_node_weight : 0;
+	}
+	
+  function set($form_state) {
+    global $user; // assume $extra['uid] = '***CURRENT_USER***'
+    
+    $fv = $form_state['values'];
+    $view = $form_state['build_info']['args'][0];
+    $relationship = $view->relationship['flag_content_rel'];
+    $fid = $relationship->definition['extra'][0]['value'];
+    $flag = flag_get_flag($relationship->options['flag']);
+    
+    // For global flags, use uid 0
+    $uid = $flag->global ? 0 : $user->uid;
+    
+    // Save records to our flags table.
+    foreach ($fv['draggableviews'] as $item) {
+    	// Make sure id is available.
+    	if (!isset($item['id'])) {
+    		continue;
+    	}
+    	flag_weights_set_weight($fid, $flag->content_type, $item['id'], $uid, $item['weight']);
+    }
+  }
+}
