diff --git a/eck.info b/eck.info
index 62d3ce5..d06c8f6 100644
--- a/eck.info
+++ b/eck.info
@@ -4,11 +4,7 @@ package = ECK
 core = 7.x
 dependencies[] = entity
 dependencies[] = ctools
-
-
-; Information added by drupal.org packaging script on 2012-01-25
-version = "7.x-2.0-alpha1+2-dev"
-core = "7.x"
-project = "eck"
-datestamp = "1327450304"
-
+; Views handlers
+files[] = eck_views_handler_field_link.inc
+files[] = eck_views_handler_field_link_edit.inc
+files[] = eck_views_handler_field_link_delete.inc
diff --git a/eck.module b/eck.module
index 7d71323..d2b027a 100644
--- a/eck.module
+++ b/eck.module
@@ -8,6 +8,16 @@ module_load_include('inc', 'eck', 'eck.default_properties');
 module_load_include('inc', 'eck', 'eck.properties');
 module_load_include('inc', 'eck', 'eck.property_behavior');
 
+/**
+ * Implements hook_views_api().
+ */
+function eck_views_api() {
+  return array(
+    'api'   => '3',
+    'path'  => drupal_get_path('module', 'eck') . '/views',
+  );
+}
+
 function eck_eck_default_properties(){
   $default_properties = array();
   
diff --git a/views/eck.views.inc b/views/eck.views.inc
new file mode 100644
index 0000000..c85af08
--- /dev/null
+++ b/views/eck.views.inc
@@ -0,0 +1,34 @@
+<?php
+/**
+ * @file
+ * Provide additional Views fields for entity content.
+ */
+ 
+/**
+ * Implements hook_views_data_alter().
+ */ 
+ function eck_views_data_alter(&$data) {
+  foreach (EntityType::loadAll() as $entity_type) {
+    $data["eck_{$entity_type->name}"]['view_link'] = array(
+      'field' => array(
+        'title' => t('Link'),
+        'help' => t('Provide a simple link to the %entity_label content.', array('%entity_label' => $entity_type->label)),
+        'handler' => 'eck_views_handler_field_link',
+      ),
+    );  
+    $data["eck_{$entity_type->name}"]['edit_link'] = array(
+      'field' => array(
+        'title' => t('Edit link'),
+        'help' => t('Provide a simple link to edit the %entity_label content.', array('%entity_label' => $entity_type->label)),
+        'handler' => 'eck_views_handler_field_link_edit',
+      ),
+    );
+    $data["eck_{$entity_type->name}"]['delete_link'] = array(
+      'field' => array(
+        'title' => t('Delete link'),
+        'help' => t('Provide a simple link to delete the %entity_label content.', array('%entity_label' => $entity_type->label)),
+        'handler' => 'eck_views_handler_field_link_delete',
+      ),
+    );
+  }  
+}
\ No newline at end of file
diff --git a/views/handlers/eck_views_handler_field_link.inc b/views/handlers/eck_views_handler_field_link.inc
new file mode 100644
index 0000000..24dca7b
--- /dev/null
+++ b/views/handlers/eck_views_handler_field_link.inc
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Field handler to present a link to the entity content.
+ *
+ */
+class eck_views_handler_field_link extends views_handler_field_entity {
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['text'] = array('default' => '', 'translatable' => TRUE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Text to display'),
+      '#default_value' => $this->options['text'],
+    );
+    parent::options_form($form, $form_state);
+
+    // The path is set by render_link function so don't allow to set it.
+    $form['alter']['path'] = array('#access' => FALSE);
+    $form['alter']['external'] = array('#access' => FALSE);
+  }
+
+  function render($values) {
+    if ($entity = $this->get_value($values)) {
+      return $this->render_link($entity, $values);
+    }    
+  }
+
+  function render_link($entity, $values) {
+    $crud_info = get_bundle_crud_info($entity->entityType(), $entity->type);
+    $this->options['alter']['make_link'] = TRUE;
+    $this->options['alter']['path'] = str_replace('%', $values->id, $crud_info['view']['path']);
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('view');
+    
+    return $text;
+  }
+}
\ No newline at end of file
diff --git a/views/handlers/eck_views_handler_field_link_delete.inc b/views/handlers/eck_views_handler_field_link_delete.inc
new file mode 100644
index 0000000..b9347c2
--- /dev/null
+++ b/views/handlers/eck_views_handler_field_link_delete.inc
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Field handler to present a link to delete the entity content.
+ *
+ */
+class eck_views_handler_field_link_delete extends eck_views_handler_field_link {
+  
+  function render_link($entity, $values) {
+    $entity_type = $entity->entityType();
+    $bundle = $entity->type;
+    
+    if (!user_access('eck administer entities') || !user_access('eck edit entities') || !user_access("eck administer {$entity_type} {$bundle} entities") || !user_access("eck edit {$entity_type} {$bundle} entities")) {
+      return;
+    }
+    
+    $crud_info = get_bundle_crud_info($entity_type, $bundle);
+    $this->options['alter']['make_link'] = TRUE;
+    $this->options['alter']['path'] = str_replace('%', $values->id, $crud_info['delete']['path']);
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
+    
+    return $text;
+  }
+}
\ No newline at end of file
diff --git a/views/handlers/eck_views_handler_field_link_edit.inc b/views/handlers/eck_views_handler_field_link_edit.inc
new file mode 100644
index 0000000..e2e4fe8
--- /dev/null
+++ b/views/handlers/eck_views_handler_field_link_edit.inc
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Field handler to present a link to editt the entity content.
+ *
+ */
+class eck_views_handler_field_link_edit extends eck_views_handler_field_link {
+  
+  function render_link($entity, $values) {
+    $entity_type = $entity->entityType();
+    $bundle = $entity->type;
+    
+    if (!user_access('eck administer entities') || !user_access('eck edit entities') || !user_access("eck administer {$entity_type} {$bundle} entities") || !user_access("eck delete {$entity_type} {$bundle} entities")) {
+      return;
+    }
+    
+    $crud_info = get_bundle_crud_info($entity_type, $bundle);
+    $this->options['alter']['make_link'] = TRUE;
+    $this->options['alter']['path'] = str_replace('%', $values->id, $crud_info['edit']['path']);
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('edit');
+    
+    return $text;
+  }
+}
\ No newline at end of file
