diff --git a/fblikebutton.module b/fblikebutton.module
index 837b1dd..2705735 100644
--- a/fblikebutton.module
+++ b/fblikebutton.module
@@ -111,9 +111,8 @@ function fblikebutton_permission() {
   );
 }
 
-
 /**
- * Implementation of hook_block_info()
+ * Implementation of hook_block_info().
  */
 function fblikebutton_block_info() {
   $fullnodedisplay = variable_get('fblikebutton_full_node_display', 0);
@@ -131,7 +130,7 @@ function fblikebutton_block_info() {
 }
 
 /**
- * Implementation of hook_block_configure()
+ * Implementation of hook_block_configure().
  */
 function fblikebutton_block_configure($delta = '') {
   global $base_url;
@@ -160,7 +159,7 @@ function fblikebutton_block_configure($delta = '') {
 }
 
 /**
- * Implementation of hook_block_view()
+ * Implementation of hook_block_view().
  */
 function fblikebutton_block_view($delta = '') {
   global $base_url;
@@ -212,6 +211,60 @@ function fblikebutton_block_view($delta = '') {
   return $block;
 }
 
+/**
+* Implements hook_ds_fields_info().
+*/
+function fblikebutton_ds_fields_info($entity_type) {
+  $fields = array();
+
+  if ($entity_type == 'node') {
+    $ui_limit = array();
+    $bundles = variable_get('fblikebutton_node_types', array());
+    foreach ($bundles as $bundle) {
+      $ui_limit[] = $bundle . '|*';
+    }
+    $fields['node'] = array();
+    $fields['node']['fblikebutton_ds_field'] = array(
+      'title' => t('Dynamic Facebook Like button'),
+      'field_type' => DS_FIELD_TYPE_FUNCTION,
+      'function' => '_fblikebutton_ds_field',
+      'ui_limit' => $ui_limit,
+    );
+  }
+
+  return $fields;
+}
+
+/**
+ * Callback for ds button.
+ */
+function _fblikebutton_ds_field($field) {
+  if (!user_access('access fblikebutton')) {
+    return '';
+  }
+
+  $uri = entity_uri($field['entity_type'], $field['entity']);
+  $url = url($uri['path'], array('absolute' => TRUE));
+
+  $conf = array(
+    'layout' => variable_get('fblikebutton_layout', 'standard'),
+    'action' => variable_get('fblikebutton_action', 'like'),
+    'color_scheme' => variable_get('fblikebutton_color_scheme', 'light'),
+    'show_faces' => variable_get('fblikebutton_show_faces', 'true'),
+    'font' => variable_get('fblikebutton_font', 'arial'),
+    'height' => variable_get('fblikebutton_iframe_height', '80'),
+    'width' => variable_get('fblikebutton_iframe_width', '450'),
+    'send' => variable_get('fblikebutton_send', 'true'),
+    'other_css' => variable_get('fblikebutton_iframe_css', ''),
+    'language' => variable_get('fblikebutton_language', 'en_US'),
+  );
+
+  return _fblikebutton_field($url, $conf);
+}
+
+/**
+ * Build the like button.
+ */
 function _fblikebutton_field($webpage_to_like, $conf) {
   $webpage_to_like = urlencode($webpage_to_like);
   $width = $conf['width'];
@@ -230,3 +283,4 @@ function _fblikebutton_field($webpage_to_like, $conf) {
   $output = '<iframe src="//www.facebook.com/plugins/like.php?' . $src . '" scrolling="no" frameborder="0" style="border: none; overflow: hidden; width: ' . $width . 'px; height: ' . $height . 'px;' . $other_css . '" allowTransparency="true"></iframe>';
   return $output;
 }
+
