diff --git a/feeds_news/feeds_news.features.field.inc b/feeds_news/feeds_news.features.field.inc
deleted file mode 100644
index 6f01c9d9d6faba03b2ecf4773a6a68e008227c0e..0000000000000000000000000000000000000000
--- a/feeds_news/feeds_news.features.field.inc
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-/**
- * @file
- * feeds_news.features.field.inc
- */
-
-/**
- * Implementation of hook_field_default_fields().
- */
-function feeds_news_field_default_fields() {
-  $fields = array();
-
-  // Exported field: 'node-feed_item-field_feed_item_description'
-  $fields['node-feed_item-field_feed_item_description'] = array(
-    'field_config' => array(
-      'active' => '1',
-      'cardinality' => '1',
-      'deleted' => '0',
-      'entity_types' => array(),
-      'field_name' => 'field_feed_item_description',
-      'foreign keys' => array(
-        'format' => array(
-          'columns' => array(
-            'format' => 'format',
-          ),
-          'table' => 'filter_format',
-        ),
-      ),
-      'indexes' => array(
-        'format' => array(
-          0 => 'format',
-        ),
-      ),
-      'module' => 'text',
-      'settings' => array(),
-      'translatable' => '1',
-      'type' => 'text_with_summary',
-    ),
-    'field_instance' => array(
-      'bundle' => 'feed_item',
-      'default_value' => NULL,
-      'deleted' => '0',
-      'description' => '',
-      'display' => array(
-        'default' => array(
-          'label' => 'hidden',
-          'module' => 'text',
-          'settings' => array(),
-          'type' => 'text_default',
-          'weight' => '0',
-        ),
-        'full' => array(
-          'label' => 'above',
-          'settings' => array(),
-          'type' => 'hidden',
-          'weight' => 0,
-        ),
-        'rss' => array(
-          'label' => 'above',
-          'settings' => array(),
-          'type' => 'hidden',
-          'weight' => 0,
-        ),
-        'teaser' => array(
-          'label' => 'hidden',
-          'module' => 'text',
-          'settings' => array(
-            'trim_length' => 600,
-          ),
-          'type' => 'text_trimmed',
-          'weight' => '0',
-        ),
-      ),
-      'entity_type' => 'node',
-      'field_name' => 'field_feed_item_description',
-      'label' => 'Description',
-      'required' => 0,
-      'settings' => array(
-        'display_summary' => 0,
-        'text_processing' => '1',
-        'user_register_form' => FALSE,
-      ),
-      'widget' => array(
-        'active' => 1,
-        'module' => 'text',
-        'settings' => array(
-          'rows' => '20',
-          'summary_rows' => 5,
-        ),
-        'type' => 'text_textarea_with_summary',
-        'weight' => '-4',
-      ),
-    ),
-  );
-
-  // Translatables
-  // Included for use with string extractors like potx.
-  t('Description');
-
-  return $fields;
-}
diff --git a/feeds_news/feeds_news.features.field_base.inc b/feeds_news/feeds_news.features.field_base.inc
new file mode 100644
index 0000000000000000000000000000000000000000..07e790b57f5ed3d801bc79f7ca4fd68f701f84dc
--- /dev/null
+++ b/feeds_news/feeds_news.features.field_base.inc
@@ -0,0 +1,41 @@
+<?php
+/**
+ * @file
+ * feeds_news.features.field_base.inc
+ */
+
+/**
+ * Implements hook_field_default_field_bases().
+ */
+function feeds_news_field_default_field_bases() {
+  $field_bases = array();
+
+  // Exported field_base: 'field_feed_item_description'
+  $field_bases['field_feed_item_description'] = array(
+    'active' => 1,
+    'cardinality' => 1,
+    'deleted' => 0,
+    'entity_types' => array(),
+    'field_name' => 'field_feed_item_description',
+    'foreign keys' => array(
+      'format' => array(
+        'columns' => array(
+          'format' => 'format',
+        ),
+        'table' => 'filter_format',
+      ),
+    ),
+    'indexes' => array(
+      'format' => array(
+        0 => 'format',
+      ),
+    ),
+    'locked' => 0,
+    'module' => 'text',
+    'settings' => array(),
+    'translatable' => 1,
+    'type' => 'text_with_summary',
+  );
+
+  return $field_bases;
+}
diff --git a/feeds_news/feeds_news.features.field_instance.inc b/feeds_news/feeds_news.features.field_instance.inc
new file mode 100644
index 0000000000000000000000000000000000000000..1d9c3782e59ac4af430d9e7a8fcd6d936e7196cb
--- /dev/null
+++ b/feeds_news/feeds_news.features.field_instance.inc
@@ -0,0 +1,75 @@
+<?php
+/**
+ * @file
+ * feeds_news.features.field_instance.inc
+ */
+
+/**
+ * Implements hook_field_default_field_instances().
+ */
+function feeds_news_field_default_field_instances() {
+  $field_instances = array();
+
+  // Exported field_instance: 'node-feed_item-field_feed_item_description'
+  $field_instances['node-feed_item-field_feed_item_description'] = array(
+    'bundle' => 'feed_item',
+    'default_value' => NULL,
+    'deleted' => 0,
+    'description' => '',
+    'display' => array(
+      'default' => array(
+        'label' => 'hidden',
+        'module' => 'text',
+        'settings' => array(),
+        'type' => 'text_default',
+        'weight' => 0,
+      ),
+      'full' => array(
+        'label' => 'above',
+        'settings' => array(),
+        'type' => 'hidden',
+        'weight' => 0,
+      ),
+      'rss' => array(
+        'label' => 'above',
+        'settings' => array(),
+        'type' => 'hidden',
+        'weight' => 0,
+      ),
+      'teaser' => array(
+        'label' => 'hidden',
+        'module' => 'text',
+        'settings' => array(
+          'trim_length' => 600,
+        ),
+        'type' => 'text_trimmed',
+        'weight' => 0,
+      ),
+    ),
+    'entity_type' => 'node',
+    'field_name' => 'field_feed_item_description',
+    'label' => 'Description',
+    'required' => 0,
+    'settings' => array(
+      'display_summary' => 0,
+      'text_processing' => 1,
+      'user_register_form' => FALSE,
+    ),
+    'widget' => array(
+      'active' => 1,
+      'module' => 'text',
+      'settings' => array(
+        'rows' => 20,
+        'summary_rows' => 5,
+      ),
+      'type' => 'text_textarea_with_summary',
+      'weight' => -4,
+    ),
+  );
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('Description');
+
+  return $field_instances;
+}
diff --git a/feeds_news/feeds_news.features.inc b/feeds_news/feeds_news.features.inc
index f7886eeeb393eb9d48c585485598d9d0102236d4..1b0a38dc71cceea69e05167c89da0e5352882737 100644
--- a/feeds_news/feeds_news.features.inc
+++ b/feeds_news/feeds_news.features.inc
@@ -5,27 +5,23 @@
  */
 
 /**
- * Implementation of hook_ctools_plugin_api().
+ * Implements hook_ctools_plugin_api().
  */
-function feeds_news_ctools_plugin_api() {
-  list($module, $api) = func_get_args();
+function feeds_news_ctools_plugin_api($module = NULL, $api = NULL) {
   if ($module == "feeds" && $api == "feeds_importer_default") {
-    return array("version" => 1);
+    return array("version" => "1");
   }
 }
 
 /**
- * Implementation of hook_views_api().
+ * Implements hook_views_api().
  */
-function feeds_news_views_api() {
-  list($module, $api) = func_get_args();
-  if ($module == "views" && $api == "views_default") {
-    return array("version" => 3.0);
-  }
+function feeds_news_views_api($module = NULL, $api = NULL) {
+  return array("api" => "3.0");
 }
 
 /**
- * Implementation of hook_node_info().
+ * Implements hook_node_info().
  */
 function feeds_news_node_info() {
   $items = array(
diff --git a/feeds_news/feeds_news.feeds_importer_default.inc b/feeds_news/feeds_news.feeds_importer_default.inc
index 3ace081ad0862b03f69ab1b25c8a75a37df9f5ce..3fa5ee71c7df113954c35deb17f8b59cf4624af4 100644
--- a/feeds_news/feeds_news.feeds_importer_default.inc
+++ b/feeds_news/feeds_news.feeds_importer_default.inc
@@ -5,12 +5,12 @@
  */
 
 /**
- * Implementation of hook_feeds_importer_default().
+ * Implements hook_feeds_importer_default().
  */
 function feeds_news_feeds_importer_default() {
   $export = array();
 
-  $feeds_importer = new stdClass;
+  $feeds_importer = new stdClass();
   $feeds_importer->disabled = FALSE; /* Edit this to true to make a default feeds_importer disabled initially */
   $feeds_importer->api_version = 1;
   $feeds_importer->id = 'feed';
@@ -75,7 +75,7 @@ function feeds_news_feeds_importer_default() {
   );
   $export['feed'] = $feeds_importer;
 
-  $feeds_importer = new stdClass;
+  $feeds_importer = new stdClass();
   $feeds_importer->disabled = FALSE; /* Edit this to true to make a default feeds_importer disabled initially */
   $feeds_importer->api_version = 1;
   $feeds_importer->id = 'opml';
diff --git a/feeds_news/feeds_news.info b/feeds_news/feeds_news.info
index ea9a3076a1561c02828ac7c7a28d8733777f4249..3d19f041a31981a0cb22121a26195fd960c68639 100644
--- a/feeds_news/feeds_news.info
+++ b/feeds_news/feeds_news.info
@@ -1,18 +1,20 @@
-core = "7.x"
-dependencies[] = "features"
-dependencies[] = "feeds"
-dependencies[] = "views"
-description = "A news aggregator built with feeds, creates nodes from imported feed items. With OPML import."
-features[ctools][] = "feeds:feeds_importer_default:1"
-features[ctools][] = "views:views_default:3.0"
-features[feeds_importer][] = "feed"
-features[feeds_importer][] = "opml"
-features[field][] = "node-feed_item-field_feed_item_description"
-features[node][] = "feed"
-features[node][] = "feed_item"
-features[views_view][] = "feeds_defaults_feed_items"
-files[] = "feeds_news.module"
-files[] = "feeds_news.test"
-name = "Feeds News"
-package = "Feeds"
-php = "5.2.4"
+name = Feeds News
+description = A news aggregator built with feeds, creates nodes from imported feed items. With OPML import.
+core = 7.x
+package = Feeds
+dependencies[] = ctools
+dependencies[] = features
+dependencies[] = feeds
+dependencies[] = views
+features[ctools][] = feeds:feeds_importer_default:1
+features[ctools][] = views:views_default:3.0
+features[features_api][] = api:2
+features[feeds_importer][] = feed
+features[feeds_importer][] = opml
+features[field_base][] = field_feed_item_description
+features[field_instance][] = node-feed_item-field_feed_item_description
+features[node][] = feed
+features[node][] = feed_item
+features[views_view][] = feeds_defaults_feed_items
+files[] = feeds_news.module
+files[] = feeds_news.test
diff --git a/feeds_news/feeds_news.views_default.inc b/feeds_news/feeds_news.views_default.inc
index 8736f5768473452a6a94f6408e34b5d3c39b1f3e..6db6801cf2a297737e0f1f677891bd7c6b52d518 100644
--- a/feeds_news/feeds_news.views_default.inc
+++ b/feeds_news/feeds_news.views_default.inc
@@ -5,23 +5,24 @@
  */
 
 /**
- * Implementation of hook_views_default_views().
+ * Implements hook_views_default_views().
  */
 function feeds_news_views_default_views() {
   $export = array();
 
-  $view = new view;
+  $view = new view();
   $view->name = 'feeds_defaults_feed_items';
   $view->description = 'Show feed items for a feed node. Use together with default importer configuration "Feed".';
   $view->tag = 'Feeds defaults';
   $view->base_table = 'node';
   $view->human_name = '';
   $view->core = 0;
-  $view->api_version = '3.0-alpha1';
+  $view->api_version = '3.0';
   $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
 
   /* Display: Defaults */
   $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->display->display_options['use_more_always'] = FALSE;
   $handler->display->display_options['access']['type'] = 'perm';
   $handler->display->display_options['cache']['type'] = 'none';
   $handler->display->display_options['query']['type'] = 'views_query';
@@ -30,20 +31,17 @@ function feeds_news_views_default_views() {
   $handler->display->display_options['pager']['type'] = 'full';
   $handler->display->display_options['style_plugin'] = 'default';
   $handler->display->display_options['row_plugin'] = 'node';
-  $handler->display->display_options['row_options']['links'] = 1;
-  $handler->display->display_options['row_options']['comments'] = 0;
   /* No results behavior: Global: Text area */
   $handler->display->display_options['empty']['text']['id'] = 'area';
   $handler->display->display_options['empty']['text']['table'] = 'views';
   $handler->display->display_options['empty']['text']['field'] = 'area';
-  $handler->display->display_options['empty']['text']['empty'] = FALSE;
   $handler->display->display_options['empty']['text']['content'] = 'There are no items for this feed at the moment.';
   $handler->display->display_options['empty']['text']['format'] = '1';
   /* Relationship: Feeds item: Owner feed */
   $handler->display->display_options['relationships']['feed_nid_1']['id'] = 'feed_nid_1';
   $handler->display->display_options['relationships']['feed_nid_1']['table'] = 'feeds_item';
   $handler->display->display_options['relationships']['feed_nid_1']['field'] = 'feed_nid';
-  $handler->display->display_options['relationships']['feed_nid_1']['required'] = 1;
+  $handler->display->display_options['relationships']['feed_nid_1']['required'] = TRUE;
   /* Sort criterion: Content: Post date */
   $handler->display->display_options['sorts']['created']['id'] = 'created';
   $handler->display->display_options['sorts']['created']['table'] = 'node';
@@ -55,17 +53,15 @@ function feeds_news_views_default_views() {
   $handler->display->display_options['arguments']['nid']['field'] = 'nid';
   $handler->display->display_options['arguments']['nid']['relationship'] = 'feed_nid_1';
   $handler->display->display_options['arguments']['nid']['default_action'] = 'not found';
-  $handler->display->display_options['arguments']['nid']['title_enable'] = 1;
+  $handler->display->display_options['arguments']['nid']['title_enable'] = TRUE;
   $handler->display->display_options['arguments']['nid']['title'] = 'Articles from %1';
   $handler->display->display_options['arguments']['nid']['default_argument_type'] = 'fixed';
   $handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
-  $handler->display->display_options['arguments']['nid']['specify_validation'] = 1;
+  $handler->display->display_options['arguments']['nid']['specify_validation'] = TRUE;
   $handler->display->display_options['arguments']['nid']['validate']['type'] = 'node';
   $handler->display->display_options['arguments']['nid']['validate_options']['types'] = array(
     'feed' => 'feed',
   );
-  $handler->display->display_options['arguments']['nid']['break_phrase'] = 0;
-  $handler->display->display_options['arguments']['nid']['not'] = 0;
   /* Filter criterion: Content: Type */
   $handler->display->display_options['filters']['type']['id'] = 'type';
   $handler->display->display_options['filters']['type']['table'] = 'node';
@@ -81,23 +77,6 @@ function feeds_news_views_default_views() {
   $handler->display->display_options['menu']['type'] = 'tab';
   $handler->display->display_options['menu']['title'] = 'View items';
   $handler->display->display_options['menu']['weight'] = '-9';
-  $translatables['feeds_defaults_feed_items'] = array(
-    t('Defaults'),
-    t('more'),
-    t('Apply'),
-    t('Reset'),
-    t('Sort by'),
-    t('Asc'),
-    t('Desc'),
-    t('Items per page'),
-    t('- All -'),
-    t('Offset'),
-    t('There are no items for this feed at the moment.'),
-    t('Owner feed'),
-    t('All'),
-    t('Articles from %1'),
-    t('Page'),
-  );
   $export['feeds_defaults_feed_items'] = $view;
 
   return $export;