diff --git a/cod_events/cod_events.features.content.inc b/cod_events/cod_events.features.content.inc
deleted file mode 100644
index bcadd98..0000000
--- a/cod_events/cod_events.features.content.inc
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-
-/**
- * Implementation of hook_content_default_fields().
- */
-function cod_events_content_default_fields() {
-  $fields = array();
-
-  // Exported field: field_dates
-  $fields['event-field_dates'] = array(
-    'field_name' => 'field_dates',
-    'type_name' => 'event',
-    'display_settings' => array(
-      'label' => array(
-        'format' => 'above',
-        'exclude' => 0,
-      ),
-      'teaser' => array(
-        'format' => 'default',
-        'exclude' => 0,
-      ),
-      'full' => array(
-        'format' => 'default',
-        'exclude' => 0,
-      ),
-      '4' => array(
-        'format' => 'default',
-        'exclude' => 0,
-      ),
-      'token' => array(
-        'format' => 'default',
-        'exclude' => 0,
-      ),
-    ),
-    'widget_active' => '1',
-    'type' => 'date',
-    'required' => '0',
-    'multiple' => '0',
-    'module' => 'date',
-    'active' => '1',
-    'granularity' => array(
-      'year' => 'year',
-      'month' => 'month',
-      'day' => 'day',
-      'hour' => 'hour',
-      'minute' => 'minute',
-    ),
-    'timezone_db' => 'UTC',
-    'tz_handling' => 'site',
-    'todate' => 'optional',
-    'repeat' => 0,
-    'repeat_collapsed' => '',
-    'default_format' => 'medium',
-    'widget' => array(
-      'default_value' => 'blank',
-      'default_value_code' => '',
-      'default_value2' => 'same',
-      'default_value_code2' => '',
-      'input_format' => 'm/d/Y - H:i',
-      'input_format_custom' => '',
-      'increment' => '1',
-      'text_parts' => array(),
-      'year_range' => '-3:+3',
-      'label_position' => 'above',
-      'label' => 'Dates',
-      'weight' => '-3',
-      'description' => '',
-      'type' => 'date_popup',
-      'module' => 'date',
-    ),
-  );
-
-  // Exported field: field_image_cache
-  $fields['event-field_image_cache'] = array(
-    'field_name' => 'field_image_cache',
-    'type_name' => 'event',
-    'display_settings' => array(
-      'label' => array(
-        'format' => 'hidden',
-      ),
-      'teaser' => array(
-        'format' => 'hidden',
-      ),
-      'full' => array(
-        'format' => 'hidden',
-      ),
-      '4' => array(
-        'format' => 'hidden',
-      ),
-    ),
-    'widget_active' => '1',
-    'type' => 'filefield',
-    'required' => '0',
-    'multiple' => '1',
-    'module' => 'filefield',
-    'active' => '1',
-    'list_field' => '0',
-    'list_default' => 1,
-    'description_field' => '0',
-    'widget' => array(
-      'file_extensions' => 'gif jpg png',
-      'file_path' => NULL,
-      'progress_indicator' => NULL,
-      'max_filesize_per_file' => NULL,
-      'max_filesize_per_node' => NULL,
-      'max_resolution' => NULL,
-      'min_resolution' => NULL,
-      'alt' => NULL,
-      'custom_alt' => 1,
-      'title' => NULL,
-      'custom_title' => 1,
-      'title_type' => NULL,
-      'default_image' => NULL,
-      'use_default_image' => NULL,
-      'label' => 'Image',
-      'weight' => '-2',
-      'description' => '',
-      'type' => 'imagefield_widget',
-      'module' => 'imagefield',
-    ),
-  );
-
-  // Translatables
-  // Included for use with string extractors like potx.
-  t('Dates');
-  t('Image');
-
-  return $fields;
-}
diff --git a/cod_events/cod_events.features.field.inc b/cod_events/cod_events.features.field.inc
new file mode 100644
index 0000000..dae5244
--- /dev/null
+++ b/cod_events/cod_events.features.field.inc
@@ -0,0 +1,372 @@
+<?php
+/**
+ * @file
+ * cod_events.features.field.inc
+ */
+
+/**
+ * Implements hook_field_default_fields().
+ */
+function cod_events_field_default_fields() {
+  $fields = array();
+
+  // Exported field: 'node-event-body'.
+  $fields['node-event-body'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(
+        0 => 'node',
+      ),
+      'field_name' => 'body',
+      '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',
+    ),
+    'field_instance' => array(
+      'bundle' => 'event',
+      'default_value' => NULL,
+      'deleted' => '0',
+      'description' => '',
+      'display' => array(
+        'default' => array(
+          'label' => 'hidden',
+          'module' => 'text',
+          'settings' => array(),
+          'type' => 'text_default',
+          'weight' => '0',
+        ),
+        'listing' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+        'teaser' => array(
+          'label' => 'hidden',
+          'module' => 'text',
+          'settings' => array(
+            'trim_length' => 600,
+          ),
+          'type' => 'text_summary_or_trimmed',
+          'weight' => 0,
+        ),
+      ),
+      'entity_type' => 'node',
+      'field_name' => 'body',
+      'label' => 'Body',
+      'required' => FALSE,
+      'settings' => array(
+        'display_summary' => TRUE,
+        'text_processing' => 1,
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'module' => 'text',
+        'settings' => array(
+          'rows' => 20,
+          'summary_rows' => 5,
+        ),
+        'type' => 'text_textarea_with_summary',
+        'weight' => '1',
+      ),
+    ),
+  );
+
+  // Exported field: 'node-event-field_dates'.
+  $fields['node-event-field_dates'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_dates',
+      'foreign keys' => array(),
+      'indexes' => array(),
+      'locked' => '0',
+      'module' => 'date',
+      'settings' => array(
+        'cache_count' => '4',
+        'cache_enabled' => 0,
+        'granularity' => array(
+          'day' => 'day',
+          'hour' => 'hour',
+          'minute' => 'minute',
+          'month' => 'month',
+          'second' => 0,
+          'year' => 'year',
+        ),
+        'timezone_db' => 'UTC',
+        'todate' => 'optional',
+        'tz_handling' => 'site',
+      ),
+      'translatable' => '0',
+      'type' => 'datestamp',
+    ),
+    'field_instance' => array(
+      'bundle' => 'event',
+      'deleted' => '0',
+      'description' => '',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'date',
+          'settings' => array(
+            'format_type' => 'long',
+            'fromto' => 'both',
+            'multiple_from' => '',
+            'multiple_number' => '',
+            'multiple_to' => '',
+          ),
+          'type' => 'date_default',
+          'weight' => '1',
+        ),
+        'listing' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+        'teaser' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+      ),
+      'entity_type' => 'node',
+      'field_name' => 'field_dates',
+      'label' => 'Dates',
+      'required' => 0,
+      'settings' => array(
+        'default_value' => 'now',
+        'default_value2' => 'same',
+        'default_value_code' => '',
+        'default_value_code2' => '',
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'active' => 1,
+        'module' => 'date',
+        'settings' => array(
+          'increment' => '15',
+          'input_format' => 'm/d/Y - g:i:sa',
+          'input_format_custom' => '',
+          'label_position' => 'above',
+          'text_parts' => array(),
+          'year_range' => '-3:+3',
+        ),
+        'type' => 'date_popup',
+        'weight' => '2',
+      ),
+    ),
+  );
+
+  // Exported field: 'node-event-field_image_cache'.
+  $fields['node-event-field_image_cache'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_image_cache',
+      'foreign keys' => array(
+        'fid' => array(
+          'columns' => array(
+            'fid' => 'fid',
+          ),
+          'table' => 'file_managed',
+        ),
+      ),
+      'indexes' => array(
+        'fid' => array(
+          0 => 'fid',
+        ),
+      ),
+      'locked' => '0',
+      'module' => 'image',
+      'settings' => array(
+        'default_image' => 0,
+        'uri_scheme' => 'public',
+      ),
+      'translatable' => '0',
+      'type' => 'image',
+    ),
+    'field_instance' => array(
+      'bundle' => 'event',
+      'deleted' => '0',
+      'description' => '',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'image',
+          'settings' => array(
+            'image_link' => '',
+            'image_style' => '',
+          ),
+          'type' => 'image',
+          'weight' => '2',
+        ),
+        'listing' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+        'teaser' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+      ),
+      'entity_type' => 'node',
+      'field_name' => 'field_image_cache',
+      'label' => 'Image',
+      'required' => 0,
+      'settings' => array(
+        'alt_field' => 0,
+        'default_image' => 0,
+        'file_directory' => '',
+        'file_extensions' => 'png gif jpg jpeg',
+        'max_filesize' => '',
+        'max_resolution' => '',
+        'min_resolution' => '',
+        'title_field' => 0,
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'active' => 1,
+        'module' => 'image',
+        'settings' => array(
+          'preview_image_style' => 'thumbnail',
+          'progress_indicator' => 'throbber',
+        ),
+        'type' => 'image_image',
+        'weight' => '3',
+      ),
+    ),
+  );
+
+  // Exported field: 'node-event-field_registration'.
+  $fields['node-event-field_registration'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_registration',
+      'field_permissions' => array(
+        'type' => '0',
+      ),
+      'foreign keys' => array(
+        'registration_type' => array(
+          'columns' => array(
+            'registration_type' => 'name',
+          ),
+          'table' => 'registration_type',
+        ),
+      ),
+      'indexes' => array(
+        'registration_type' => array(
+          0 => 'registration_type',
+        ),
+      ),
+      'locked' => '0',
+      'module' => 'registration',
+      'settings' => array(),
+      'translatable' => '0',
+      'type' => 'registration',
+    ),
+    'field_instance' => array(
+      'bundle' => 'event',
+      'default_value' => array(
+        0 => array(
+          'registration_type' => 'free_event',
+        ),
+      ),
+      'deleted' => '0',
+      'description' => 'If this is a free event, then you can choose which registration type to use for this event.',
+      'display' => array(
+        'default' => array(
+          'label' => 'hidden',
+          'module' => 'registration',
+          'settings' => array(),
+          'type' => 'registration_form',
+          'weight' => '3',
+        ),
+        'listing' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+        'teaser' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+      ),
+      'entity_type' => 'node',
+      'field_name' => 'field_registration',
+      'label' => 'Registration',
+      'required' => 0,
+      'settings' => array(
+        'default_registration_settings' => array(
+          'capacity' => '0',
+          'reminder' => array(
+            'reminder_settings' => array(
+              'reminder_date' => '',
+              'reminder_template' => '',
+            ),
+            'send_reminder' => 0,
+          ),
+          'scheduling' => array(
+            'close' => '',
+            'open' => '',
+          ),
+          'settings' => array(
+            'from_address' => 'example@example.com',
+            'multiple_registrations' => 0,
+          ),
+          'status' => 1,
+        ),
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'active' => 0,
+        'module' => 'registration',
+        'settings' => array(),
+        'type' => 'registration_select',
+        'weight' => '6',
+      ),
+    ),
+  );
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('Body');
+  t('Dates');
+  t('If this is a free event, then you can choose which registration type to use for this event.');
+  t('Image');
+  t('Registration');
+
+  return $fields;
+}
diff --git a/cod_events/cod_events.features.inc b/cod_events/cod_events.features.inc
index b199393..643f86d 100644
--- a/cod_events/cod_events.features.inc
+++ b/cod_events/cod_events.features.inc
@@ -1,20 +1,47 @@
 <?php
+/**
+ * @file
+ * cod_events.features.inc
+ */
 
 /**
- * Implementation of hook_ctools_plugin_api().
+ * Implements hook_ctools_plugin_api().
  */
 function cod_events_ctools_plugin_api() {
   list($module, $api) = func_get_args();
   if ($module == "strongarm" && $api == "strongarm") {
-    return array("version" => 1);
+    return array("version" => "1");
   }
 }
 
 /**
- * Implementation of hook_views_api().
+ * Implements hook_node_info().
  */
-function cod_events_views_api() {
-  return array(
-    'api' => '2',
+function cod_events_node_info() {
+  $items = array(
+    'event' => array(
+      'name' => t('Event'),
+      'base' => 'node_content',
+      'description' => t('Provides free and paid event registration on the Event content type.'),
+      'has_title' => '1',
+      'title_label' => t('Title'),
+      'help' => '',
+    ),
   );
+  return $items;
+}
+
+/**
+ * Implements hook_default_registration_type().
+ */
+function cod_events_default_registration_type() {
+  $items = array();
+  $items['free_event'] = entity_import('registration_type', '{
+    "name" : "free_event",
+    "label" : "Free Event",
+    "locked" : "0",
+    "weight" : "0",
+    "data" : null
+  }');
+  return $items;
 }
diff --git a/cod_events/cod_events.features.user_permission.inc b/cod_events/cod_events.features.user_permission.inc
index 1f91995..7ba8438 100644
--- a/cod_events/cod_events.features.user_permission.inc
+++ b/cod_events/cod_events.features.user_permission.inc
@@ -1,101 +1,101 @@
 <?php
+/**
+ * @file
+ * cod_events.features.user_permission.inc
+ */
 
 /**
- * Implementation of hook_user_default_permissions().
+ * Implements hook_user_default_permissions().
  */
 function cod_events_user_default_permissions() {
   $permissions = array();
 
-  // Exported permission: administer UC_Signup
-  $permissions['administer UC_Signup'] = array(
-    'name' => 'administer UC_Signup',
-    'roles' => array(
-      '0' => 'attendee manager',
-    ),
-  );
-
-  // Exported permission: administer all signups
-  $permissions['administer all signups'] = array(
-    'name' => 'administer all signups',
-    'roles' => array(
-      '0' => 'attendee manager',
-    ),
+  // Exported permission: administer free_event registration.
+  $permissions['administer free_event registration'] = array(
+    'name' => 'administer free_event registration',
+    'roles' => array(),
+    'module' => 'registration',
   );
 
-  // Exported permission: administer signups for own content
-  $permissions['administer signups for own content'] = array(
-    'name' => 'administer signups for own content',
+  // Exported permission: create free_event registration.
+  $permissions['create free_event registration'] = array(
+    'name' => 'create free_event registration',
     'roles' => array(
-      '0' => 'attendee manager',
-      '1' => 'authenticated user',
+      0 => 'anonymous user',
+      1 => 'authenticated user',
     ),
+    'module' => 'registration',
   );
 
-  // Exported permission: cancel own signups
-  $permissions['cancel own signups'] = array(
-    'name' => 'cancel own signups',
+  // Exported permission: create free_event registration other anonymous.
+  $permissions['create free_event registration other anonymous'] = array(
+    'name' => 'create free_event registration other anonymous',
     'roles' => array(
-      '0' => 'attendee manager',
-      '1' => 'authenticated user',
+      0 => 'anonymous user',
+      1 => 'authenticated user',
     ),
+    'module' => 'registration',
   );
 
-  // Exported permission: cancel signups
-  $permissions['cancel signups'] = array(
-    'name' => 'cancel signups',
-    'roles' => array(
-      '0' => 'attendee manager',
-    ),
+  // Exported permission: create free_event registration other users.
+  $permissions['create free_event registration other users'] = array(
+    'name' => 'create free_event registration other users',
+    'roles' => array(),
+    'module' => 'registration',
   );
 
-  // Exported permission: edit own signups
-  $permissions['edit own signups'] = array(
-    'name' => 'edit own signups',
+  // Exported permission: delete any free_event registration.
+  $permissions['delete any free_event registration'] = array(
+    'name' => 'delete any free_event registration',
     'roles' => array(
-      '0' => 'attendee manager',
+      0 => 'attendee manager',
     ),
+    'module' => 'registration',
   );
 
-  // Exported permission: email all signed up users
-  $permissions['email all signed up users'] = array(
-    'name' => 'email all signed up users',
+  // Exported permission: delete own free_event registration.
+  $permissions['delete own free_event registration'] = array(
+    'name' => 'delete own free_event registration',
     'roles' => array(
-      '0' => 'attendee manager',
+      0 => 'attendee manager',
     ),
+    'module' => 'registration',
   );
 
-  // Exported permission: email users signed up for own content
-  $permissions['email users signed up for own content'] = array(
-    'name' => 'email users signed up for own content',
+  // Exported permission: update any free_event registration.
+  $permissions['update any free_event registration'] = array(
+    'name' => 'update any free_event registration',
     'roles' => array(
-      '0' => 'attendee manager',
+      0 => 'attendee manager',
     ),
+    'module' => 'registration',
   );
 
-  // Exported permission: purchase signups for other users
-  $permissions['purchase signups for other users'] = array(
-    'name' => 'purchase signups for other users',
+  // Exported permission: update own free_event registration.
+  $permissions['update own free_event registration'] = array(
+    'name' => 'update own free_event registration',
     'roles' => array(
-      '0' => 'anonymous user',
-      '1' => 'authenticated user',
+      0 => 'authenticated user',
     ),
+    'module' => 'registration',
   );
 
-  // Exported permission: sign up for content
-  $permissions['sign up for content'] = array(
-    'name' => 'sign up for content',
+  // Exported permission: view free_event registration.
+  $permissions['view free_event registration'] = array(
+    'name' => 'view free_event registration',
     'roles' => array(
-      '0' => 'attendee manager',
-      '1' => 'authenticated user',
+      0 => 'attendee manager',
     ),
+    'module' => 'registration',
   );
 
-  // Exported permission: view all signups
-  $permissions['view all signups'] = array(
-    'name' => 'view all signups',
+  // Exported permission: view own free_event registration.
+  $permissions['view own free_event registration'] = array(
+    'name' => 'view own free_event registration',
     'roles' => array(
-      '0' => 'attendee manager',
+      0 => 'authenticated user',
     ),
+    'module' => 'registration',
   );
 
   return $permissions;
diff --git a/cod_events/cod_events.features.user_role.inc b/cod_events/cod_events.features.user_role.inc
index bf88504..d1aa6d6 100644
--- a/cod_events/cod_events.features.user_role.inc
+++ b/cod_events/cod_events.features.user_role.inc
@@ -1,14 +1,19 @@
 <?php
+/**
+ * @file
+ * cod_events.features.user_role.inc
+ */
 
 /**
- * Implementation of hook_user_default_roles().
+ * Implements hook_user_default_roles().
  */
 function cod_events_user_default_roles() {
   $roles = array();
 
-  // Exported role: attendee manager
+  // Exported role: attendee manager.
   $roles['attendee manager'] = array(
     'name' => 'attendee manager',
+    'weight' => '4',
   );
 
   return $roles;
diff --git a/cod_events/cod_events.info b/cod_events/cod_events.info
index 0d3e49f..52dd8b3 100644
--- a/cod_events/cod_events.info
+++ b/cod_events/cod_events.info
@@ -1,44 +1,46 @@
-core = "6.x"
-dependencies[] = "cod_base"
-dependencies[] = "date"
-dependencies[] = "date_api"
-dependencies[] = "date_popup"
-dependencies[] = "features"
-dependencies[] = "imagefield"
-dependencies[] = "profile"
-dependencies[] = "signup"
-dependencies[] = "signup_profile"
-dependencies[] = "strongarm"
-dependencies[] = "uc_cart"
-dependencies[] = "uc_order"
-dependencies[] = "uc_payment"
-dependencies[] = "uc_product"
-dependencies[] = "uc_signup"
-dependencies[] = "uc_store"
-dependencies[] = "views_bulk_operations"
-description = "Provides free & paid event registration and administrative signup lists"
-features[content][] = "event-field_dates"
-features[content][] = "event-field_image_cache"
-features[ctools][] = "strongarm:strongarm:1"
-features[user_permission][] = "administer UC_Signup"
-features[user_permission][] = "administer all signups"
-features[user_permission][] = "administer signups for own content"
-features[user_permission][] = "cancel own signups"
-features[user_permission][] = "cancel signups"
-features[user_permission][] = "edit own signups"
-features[user_permission][] = "email all signed up users"
-features[user_permission][] = "email users signed up for own content"
-features[user_permission][] = "purchase signups for other users"
-features[user_permission][] = "sign up for content"
-features[user_permission][] = "view all signups"
-features[user_role][] = "attendee manager"
-features[variable][] = "comment_event"
-features[variable][] = "signup_admin_list_view"
-features[variable][] = "signup_date_field_event"
-features[variable][] = "signup_node_default_state_event"
-features[variable][] = "uc_product_shippable_event"
-features[views][] = "cod_signup_user_vbo_admin_list"
-features[views_api][] = "api:2"
-name = "COD Events"
-package = "COD"
-project = "cod_events"
\ No newline at end of file
+name = COD Events
+description = Provides base event managment
+core = 7.x
+package = COD
+php = 5.2.4
+project = cod_events
+dependencies[] = cod_base
+dependencies[] = date
+dependencies[] = date_api
+dependencies[] = date_popup
+dependencies[] = features
+dependencies[] = image
+dependencies[] = registration
+dependencies[] = strongarm
+features[ctools][] = strongarm:strongarm:1
+features[features_api][] = api:1
+features[field][] = node-event-body
+features[field][] = node-event-field_dates
+features[field][] = node-event-field_image_cache
+features[field][] = node-event-field_registration
+features[node][] = event
+features[registration_type][] = free_event
+features[user_permission][] = administer free_event registration
+features[user_permission][] = create free_event registration
+features[user_permission][] = create free_event registration other anonymous
+features[user_permission][] = create free_event registration other users
+features[user_permission][] = delete any free_event registration
+features[user_permission][] = delete own free_event registration
+features[user_permission][] = update any free_event registration
+features[user_permission][] = update own free_event registration
+features[user_permission][] = view free_event registration
+features[user_permission][] = view own free_event registration
+features[user_role][] = attendee manager
+features[variable][] = comment_anonymous_event
+features[variable][] = comment_default_mode_event
+features[variable][] = comment_default_per_page_event
+features[variable][] = comment_event
+features[variable][] = comment_form_location_event
+features[variable][] = comment_preview_event
+features[variable][] = comment_subject_field_event
+features[variable][] = field_bundle_settings_node__event
+features[variable][] = menu_options_event
+features[variable][] = menu_parent_event
+features[variable][] = node_options_event
+features[variable][] = node_preview_event
+features[variable][] = node_submitted_event
diff --git a/cod_events/cod_events.install b/cod_events/cod_events.install
deleted file mode 100644
index 47d3cd5..0000000
--- a/cod_events/cod_events.install
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/*
- * Implementation of hook_enable().
- */
-function cod_events_enable() {
-  cod_events_setup();
-}
-
-/*
- * Create a signup-enabled Event content type and product class.
- */
-function cod_events_setup() {
-  watchdog('cod_events', t('Performing COD Events setup.'));
-  // Create an event content type.
-  module_load_include('admin.inc', 'uc_product');
-  $form_state['values']['pcid'] = 'event';
-  $form_state['values']['name'] = 'Event';
-  $form_state['values']['description'] = 'Provides free and paid event registration on the Event content type.';
-  global $user;
-  $temp_user = $user;
-  session_save_session(FALSE);
-  $user = user_load(1);
-  drupal_execute('uc_product_class_form', $form_state);
-  $user = $temp_user;
-  session_save_session(TRUE);
-  // Rebuild features so that the event content type has the date field added.
-  features_rebuild(array('cod_events' => array('content')));
-  watchdog('cod_events', t('Finished COD Events setup.'));
-  drupal_set_message(t('Finished COD events setup.'));
-}
\ No newline at end of file
diff --git a/cod_events/cod_events.strongarm.inc b/cod_events/cod_events.strongarm.inc
index d6ee3e8..1565eda 100644
--- a/cod_events/cod_events.strongarm.inc
+++ b/cod_events/cod_events.strongarm.inc
@@ -1,45 +1,122 @@
 <?php
+/**
+ * @file
+ * cod_events.strongarm.inc
+ */
 
 /**
- * Implementation of hook_strongarm().
+ * Implements hook_strongarm().
  */
 function cod_events_strongarm() {
   $export = array();
 
-  $strongarm = new stdClass;
+  $strongarm = new stdClass();
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_anonymous_event';
+  $strongarm->value = 0;
+  $export['comment_anonymous_event'] = $strongarm;
+
+  $strongarm = new stdClass();
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_mode_event';
+  $strongarm->value = 1;
+  $export['comment_default_mode_event'] = $strongarm;
+
+  $strongarm = new stdClass();
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_default_per_page_event';
+  $strongarm->value = '50';
+  $export['comment_default_per_page_event'] = $strongarm;
+
+  $strongarm = new stdClass();
   $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
   $strongarm->api_version = 1;
   $strongarm->name = 'comment_event';
   $strongarm->value = '0';
   $export['comment_event'] = $strongarm;
 
-  $strongarm = new stdClass;
+  $strongarm = new stdClass();
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_form_location_event';
+  $strongarm->value = 1;
+  $export['comment_form_location_event'] = $strongarm;
+
+  $strongarm = new stdClass();
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_preview_event';
+  $strongarm->value = '1';
+  $export['comment_preview_event'] = $strongarm;
+
+  $strongarm = new stdClass();
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'comment_subject_field_event';
+  $strongarm->value = 1;
+  $export['comment_subject_field_event'] = $strongarm;
+
+  $strongarm = new stdClass();
   $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
   $strongarm->api_version = 1;
-  $strongarm->name = 'signup_admin_list_view';
-  $strongarm->value = 'cod_signup_user_vbo_admin_list:default';
-  $export['signup_admin_list_view'] = $strongarm;
+  $strongarm->name = 'field_bundle_settings_node__event';
+  $strongarm->value = array(
+    'view_modes' => array(),
+    'extra_fields' => array(
+      'form' => array(
+        'title' => array(
+          'weight' => '0',
+        ),
+        'path' => array(
+          'weight' => '8',
+        ),
+      ),
+      'display' => array(),
+    ),
+  );
+  $export['field_bundle_settings_node__event'] = $strongarm;
 
-  $strongarm = new stdClass;
+  $strongarm = new stdClass();
   $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
   $strongarm->api_version = 1;
-  $strongarm->name = 'signup_date_field_event';
-  $strongarm->value = 'field_dates';
-  $export['signup_date_field_event'] = $strongarm;
+  $strongarm->name = 'menu_options_event';
+  $strongarm->value = array(
+    0 => 'main-menu',
+  );
+  $export['menu_options_event'] = $strongarm;
 
-  $strongarm = new stdClass;
+  $strongarm = new stdClass();
   $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
   $strongarm->api_version = 1;
-  $strongarm->name = 'signup_node_default_state_event';
-  $strongarm->value = 'enabled_on';
-  $export['signup_node_default_state_event'] = $strongarm;
+  $strongarm->name = 'menu_parent_event';
+  $strongarm->value = 'main-menu:0';
+  $export['menu_parent_event'] = $strongarm;
+
+  $strongarm = new stdClass();
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'node_options_event';
+  $strongarm->value = array(
+    0 => 'status',
+  );
+  $export['node_options_event'] = $strongarm;
+
+  $strongarm = new stdClass();
+  $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+  $strongarm->api_version = 1;
+  $strongarm->name = 'node_preview_event';
+  $strongarm->value = '0';
+  $export['node_preview_event'] = $strongarm;
 
-  $strongarm = new stdClass;
+  $strongarm = new stdClass();
   $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
   $strongarm->api_version = 1;
-  $strongarm->name = 'uc_product_shippable_event';
+  $strongarm->name = 'node_submitted_event';
   $strongarm->value = 0;
-  $export['uc_product_shippable_event'] = $strongarm;
+  $export['node_submitted_event'] = $strongarm;
 
   return $export;
 }
diff --git a/cod_events/cod_events.views_default.inc b/cod_events/cod_events.views_default.inc
deleted file mode 100644
index 50cf681..0000000
--- a/cod_events/cod_events.views_default.inc
+++ /dev/null
@@ -1,367 +0,0 @@
-<?php
-
-/**
- * Implementation of hook_views_default_views().
- */
-function cod_events_views_default_views() {
-  $views = array();
-
-  // Exported view: cod_signup_user_vbo_admin_list
-  $view = new view;
-  $view->name = 'cod_signup_user_vbo_admin_list';
-  $view->description = 'Per-node signup administration interface with checkboxes for bulk operations.';
-  $view->tag = 'signup';
-  $view->view_php = '';
-  $view->base_table = 'signup_log';
-  $view->is_cacheable = FALSE;
-  $view->api_version = 2;
-  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-  $handler = $view->new_display('default', 'Defaults', 'default');
-  $handler->override_option('relationships', array(
-    'nid' => array(
-      'label' => 'Signup node',
-      'required' => 1,
-      'id' => 'nid',
-      'table' => 'signup_log',
-      'field' => 'nid',
-      'relationship' => 'none',
-    ),
-    'uid' => array(
-      'label' => 'Signup user',
-      'required' => 1,
-      'id' => 'uid',
-      'table' => 'signup_log',
-      'field' => 'uid',
-      'relationship' => 'none',
-    ),
-  ));
-  $handler->override_option('fields', array(
-    'value' => array(
-      'label' => 'First name',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'link_class' => '',
-        'alt' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'link_to_user' => 1,
-      'exclude' => 0,
-      'id' => 'value',
-      'table' => 'profile_values_profile_first',
-      'field' => 'value',
-      'relationship' => 'uid',
-    ),
-    'value_1' => array(
-      'label' => 'Last name',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'link_class' => '',
-        'alt' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'link_to_user' => 1,
-      'exclude' => 0,
-      'id' => 'value_1',
-      'table' => 'profile_values_profile_last',
-      'field' => 'value',
-      'relationship' => 'uid',
-    ),
-    'name' => array(
-      'label' => 'Username',
-      'link_to_user' => 1,
-      'exclude' => 0,
-      'id' => 'name',
-      'table' => 'users',
-      'field' => 'name',
-      'relationship' => 'uid',
-    ),
-    'value_2' => array(
-      'label' => 'Organization',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'link_class' => '',
-        'alt' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'link_to_user' => 1,
-      'exclude' => 0,
-      'id' => 'value_2',
-      'table' => 'profile_values_profile_org',
-      'field' => 'value',
-      'relationship' => 'uid',
-    ),
-    'signup_time' => array(
-      'label' => 'Signup time',
-      'date_format' => 'small',
-      'custom_date_format' => '',
-      'exclude' => 0,
-      'id' => 'signup_time',
-      'table' => 'signup_log',
-      'field' => 'signup_time',
-      'relationship' => 'none',
-    ),
-    'attended' => array(
-      'label' => 'Attendance',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'link_class' => '',
-        'alt' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'exclude' => 0,
-      'id' => 'attended',
-      'table' => 'signup_log',
-      'field' => 'attended',
-      'relationship' => 'none',
-    ),
-  ));
-  $handler->override_option('sorts', array(
-    'value' => array(
-      'order' => 'ASC',
-      'id' => 'value',
-      'table' => 'profile_values_profile_first',
-      'field' => 'value',
-      'relationship' => 'uid',
-    ),
-  ));
-  $handler->override_option('arguments', array(
-    'nid' => array(
-      'default_action' => 'ignore',
-      'style_plugin' => 'default_summary',
-      'style_options' => array(),
-      'wildcard' => 'all',
-      'wildcard_substitution' => 'All',
-      'title' => '',
-      'default_argument_type' => 'fixed',
-      'default_argument' => '',
-      'validate_type' => 'signup_status',
-      'validate_fail' => 'not found',
-      'break_phrase' => 0,
-      'not' => 0,
-      'id' => 'nid',
-      'table' => 'node',
-      'field' => 'nid',
-      'relationship' => 'nid',
-      'default_options_div_prefix' => '',
-      'default_argument_user' => 0,
-      'default_argument_fixed' => '',
-      'default_argument_php' => '',
-      'validate_argument_node_access' => 0,
-      'validate_argument_nid_type' => 'nid',
-      'validate_argument_vocabulary' => array(),
-      'validate_argument_type' => 'tid',
-      'validate_argument_signup_status' => 'any',
-      'validate_argument_signup_node_access' => 1,
-      'validate_argument_php' => '',
-    ),
-  ));
-  $handler->override_option('filters', array(
-    'uid' => array(
-      'operator' => 'not in',
-      'value' => array(
-        '0' => 0,
-      ),
-      'group' => '0',
-      'exposed' => FALSE,
-      'expose' => array(
-        'operator' => FALSE,
-        'label' => '',
-      ),
-      'id' => 'uid',
-      'table' => 'users',
-      'field' => 'uid',
-      'relationship' => 'uid',
-    ),
-  ));
-  $handler->override_option('access', array(
-    'type' => 'perm',
-    'perm' => 'administer all signups',
-  ));
-  $handler->override_option('cache', array(
-    'type' => 'none',
-  ));
-  $handler->override_option('title', 'Check-in attendees');
-  $handler->override_option('items_per_page', 0);
-  $handler->override_option('use_pager', 0);
-  $handler->override_option('style_plugin', 'bulk');
-  $handler->override_option('style_options', array(
-    'grouping' => '',
-    'override' => 1,
-    'sticky' => 0,
-    'order' => 'asc',
-    'columns' => array(
-      'value' => 'value',
-      'value_1' => 'value_1',
-      'name' => 'name',
-      'value_2' => 'value_2',
-      'signup_time' => 'signup_time',
-      'attended' => 'attended',
-    ),
-    'info' => array(
-      'value' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'value_1' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'name' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'value_2' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'signup_time' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'attended' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-    ),
-    'default' => '-1',
-    'execution_type' => '1',
-    'max_performance' => 0,
-    'display_type' => '1',
-    'hide_selector' => 0,
-    'preserve_selection' => 1,
-    'display_result' => 1,
-    'merge_single_action' => 0,
-    'operations' => array(
-      'signup_cancel_action' => array(
-        'selected' => 0,
-        'skip_confirmation' => 0,
-        'label' => '',
-      ),
-      'system_message_action' => array(
-        'selected' => 0,
-        'skip_confirmation' => 0,
-        'label' => '',
-      ),
-      'views_bulk_operations_action' => array(
-        'selected' => 0,
-        'skip_confirmation' => 0,
-        'label' => '',
-      ),
-      'views_bulk_operations_script_action' => array(
-        'selected' => 0,
-        'skip_confirmation' => 0,
-        'label' => '',
-      ),
-      'signup_mark_attended_action' => array(
-        'selected' => 1,
-        'skip_confirmation' => 1,
-        'label' => 'Attended',
-      ),
-      'signup_mark_not_attended_action' => array(
-        'selected' => 1,
-        'skip_confirmation' => 1,
-        'label' => 'Did not attend',
-      ),
-      'views_bulk_operations_argument_selector_action' => array(
-        'selected' => 0,
-        'skip_confirmation' => 0,
-        'label' => '',
-      ),
-      'system_goto_action' => array(
-        'selected' => 0,
-        'skip_confirmation' => 0,
-        'label' => '',
-      ),
-      'system_send_email_action' => array(
-        'selected' => 0,
-        'skip_confirmation' => 0,
-        'label' => '',
-      ),
-      'views_send_mail_action' => array(
-        'selected' => 0,
-        'skip_confirmation' => 0,
-        'label' => '',
-      ),
-    ),
-  ));
-  $handler = $view->new_display('page', 'Page', 'page_1');
-  $handler->override_option('path', 'conference-admin/checkin');
-  $handler->override_option('menu', array(
-    'type' => 'normal',
-    'title' => 'Check-in attendees',
-    'description' => '',
-    'weight' => '0',
-    'name' => 'menu-conference-admin',
-  ));
-  $handler->override_option('tab_options', array(
-    'type' => 'none',
-    'title' => '',
-    'description' => '',
-    'weight' => 0,
-    'name' => 'navigation',
-  ));
-
-  $views[$view->name] = $view;
-
-  return $views;
-}
diff --git a/cod_paid_events/cod_paid_events.features.conditional_fields.inc b/cod_paid_events/cod_paid_events.features.conditional_fields.inc
new file mode 100644
index 0000000..5954fa6
--- /dev/null
+++ b/cod_paid_events/cod_paid_events.features.conditional_fields.inc
@@ -0,0 +1,196 @@
+<?php
+/**
+ * @file
+ * cod_paid_events.features.conditional_fields.inc
+ */
+
+/**
+ * Implements hook_conditional_fields_default_fields().
+ */
+function cod_paid_events_conditional_fields_default_fields() {
+  $items = array();
+
+  $items[] = array(
+    'entity' => 'node',
+    'bundle' => 'event',
+    'dependent' => 'field_event_product',
+    'dependee' => 'field_paid_event',
+    'options' => array(
+      'state' => 'visible',
+      'condition' => 'checked',
+      'grouping' => 'AND',
+      'effect' => 'show',
+      'effect_options' => array(),
+      'element_view' => array(
+        1 => '1',
+        2 => '2',
+        5 => 0,
+        3 => 0,
+        4 => 0,
+      ),
+      'element_view_per_role' => 0,
+      'element_view_roles' => array(
+        1 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+        2 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+        3 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+        4 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+        5 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+      ),
+      'element_edit' => array(
+        1 => '1',
+        3 => 0,
+      ),
+      'element_edit_per_role' => 0,
+      'element_edit_roles' => array(
+        1 => array(
+          1 => '1',
+          3 => 0,
+        ),
+        2 => array(
+          1 => '1',
+          3 => 0,
+        ),
+        3 => array(
+          1 => '1',
+          3 => 0,
+        ),
+        4 => array(
+          1 => '1',
+          3 => 0,
+        ),
+        5 => array(
+          1 => '1',
+          3 => 0,
+        ),
+      ),
+      'selector' => '',
+      'values_set' => 1,
+      'value' => array(),
+      'values' => array(),
+      'value_form' => array(),
+    ),
+  );
+
+  $items[] = array(
+    'entity' => 'node',
+    'bundle' => 'event',
+    'dependent' => 'field_registration',
+    'dependee' => 'field_paid_event',
+    'options' => array(
+      'state' => 'visible',
+      'condition' => '!checked',
+      'grouping' => 'AND',
+      'effect' => 'show',
+      'effect_options' => array(),
+      'element_view' => array(
+        1 => '1',
+        2 => '2',
+        5 => 0,
+        3 => 0,
+        4 => 0,
+      ),
+      'element_view_per_role' => 0,
+      'element_view_roles' => array(
+        1 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+        2 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+        3 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+        4 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+        5 => array(
+          1 => '1',
+          2 => '2',
+          5 => 0,
+          3 => 0,
+          4 => 0,
+        ),
+      ),
+      'element_edit' => array(
+        1 => '1',
+        3 => 0,
+      ),
+      'element_edit_per_role' => 0,
+      'element_edit_roles' => array(
+        1 => array(
+          1 => '1',
+          3 => 0,
+        ),
+        2 => array(
+          1 => '1',
+          3 => 0,
+        ),
+        3 => array(
+          1 => '1',
+          3 => 0,
+        ),
+        4 => array(
+          1 => '1',
+          3 => 0,
+        ),
+        5 => array(
+          1 => '1',
+          3 => 0,
+        ),
+      ),
+      'selector' => '',
+      'values_set' => 1,
+      'value' => array(),
+      'values' => array(),
+      'value_form' => array(),
+    ),
+  );
+
+  return $items;
+}
diff --git a/cod_paid_events/cod_paid_events.features.field.inc b/cod_paid_events/cod_paid_events.features.field.inc
new file mode 100644
index 0000000..1226a2e
--- /dev/null
+++ b/cod_paid_events/cod_paid_events.features.field.inc
@@ -0,0 +1,397 @@
+<?php
+/**
+ * @file
+ * cod_paid_events.features.field.inc
+ */
+
+/**
+ * Implements hook_field_default_fields().
+ */
+function cod_paid_events_field_default_fields() {
+  $fields = array();
+
+  // Exported field: 'commerce_product-cod_paid_event-commerce_price'.
+  $fields['commerce_product-cod_paid_event-commerce_price'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(
+        0 => 'commerce_product',
+      ),
+      'field_name' => 'commerce_price',
+      'foreign keys' => array(),
+      'indexes' => array(
+        'currency_price' => array(
+          0 => 'amount',
+          1 => 'currency_code',
+        ),
+      ),
+      'locked' => '1',
+      'module' => 'commerce_price',
+      'settings' => array(),
+      'translatable' => '0',
+      'type' => 'commerce_price',
+    ),
+    'field_instance' => array(
+      'bundle' => 'cod_paid_event',
+      'default_value' => NULL,
+      'deleted' => '0',
+      'description' => '',
+      'display' => array(
+        'commerce_line_item_display' => array(
+          'label' => 'hidden',
+          'module' => 'commerce_price',
+          'settings' => array(
+            'calculation' => 'calculated_sell_price',
+          ),
+          'type' => 'commerce_price_formatted_amount',
+          'weight' => 0,
+        ),
+        'default' => array(
+          'label' => 'hidden',
+          'module' => 'commerce_price',
+          'settings' => array(
+            'calculation' => 'calculated_sell_price',
+          ),
+          'type' => 'commerce_price_formatted_amount',
+          'weight' => 0,
+        ),
+        'full' => array(
+          'label' => 'hidden',
+          'module' => 'commerce_price',
+          'settings' => array(
+            'calculation' => 'calculated_sell_price',
+          ),
+          'type' => 'commerce_price_formatted_amount',
+          'weight' => 0,
+        ),
+        'line_item' => array(
+          'label' => 'hidden',
+          'module' => 'commerce_price',
+          'settings' => array(
+            'calculation' => 'calculated_sell_price',
+          ),
+          'type' => 'commerce_price_formatted_amount',
+          'weight' => 0,
+        ),
+        'node_teaser' => array(
+          'label' => 'hidden',
+          'module' => 'commerce_price',
+          'settings' => array(
+            'calculation' => 'calculated_sell_price',
+          ),
+          'type' => 'commerce_price_formatted_amount',
+          'weight' => 0,
+        ),
+        'token' => array(
+          'label' => 'hidden',
+          'module' => 'commerce_price',
+          'settings' => array(
+            'calculation' => 'calculated_sell_price',
+          ),
+          'type' => 'commerce_price_formatted_amount',
+          'weight' => 0,
+        ),
+      ),
+      'entity_type' => 'commerce_product',
+      'field_name' => 'commerce_price',
+      'label' => 'Price',
+      'required' => TRUE,
+      'settings' => array(
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'module' => 'commerce_price',
+        'settings' => array(
+          'currency_code' => 'default',
+        ),
+        'type' => 'commerce_price_full',
+        'weight' => '0',
+      ),
+    ),
+  );
+
+  // Exported field: 'commerce_product-cod_paid_event-field_registration'.
+  $fields['commerce_product-cod_paid_event-field_registration'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_registration',
+      'field_permissions' => array(
+        'type' => '0',
+      ),
+      'foreign keys' => array(
+        'registration_type' => array(
+          'columns' => array(
+            'registration_type' => 'name',
+          ),
+          'table' => 'registration_type',
+        ),
+      ),
+      'indexes' => array(
+        'registration_type' => array(
+          0 => 'registration_type',
+        ),
+      ),
+      'locked' => '0',
+      'module' => 'registration',
+      'settings' => array(),
+      'translatable' => '0',
+      'type' => 'registration',
+    ),
+    'field_instance' => array(
+      'bundle' => 'cod_paid_event',
+      'default_value' => array(
+        0 => array(
+          'registration_type' => 'paid_event',
+        ),
+      ),
+      'deleted' => '0',
+      'description' => '',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'registration',
+          'settings' => array(),
+          'type' => 'registration_default',
+          'weight' => 1,
+        ),
+        'line_item' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+        'node_teaser' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+      ),
+      'entity_type' => 'commerce_product',
+      'field_name' => 'field_registration',
+      'label' => 'Registration',
+      'required' => 1,
+      'settings' => array(
+        'default_registration_settings' => array(
+          'capacity' => '0',
+          'reminder' => array(
+            'reminder_settings' => array(
+              'reminder_date' => '',
+              'reminder_template' => '',
+            ),
+            'send_reminder' => 0,
+          ),
+          'scheduling' => array(
+            'close' => '',
+            'open' => '',
+          ),
+          'settings' => array(
+            'from_address' => 'matthew@mrconnerton.com',
+            'multiple_registrations' => 0,
+            'registration_entity_access_roles' => array(
+              2 => 0,
+              3 => 0,
+              4 => 0,
+            ),
+          ),
+          'status' => 0,
+        ),
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'active' => 0,
+        'module' => 'registration',
+        'settings' => array(),
+        'type' => 'registration_select',
+        'weight' => '37',
+      ),
+    ),
+  );
+
+  // Exported field: 'node-event-field_event_product'.
+  $fields['node-event-field_event_product'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_event_product',
+      'field_permissions' => array(
+        'type' => '0',
+      ),
+      'foreign keys' => array(
+        'product_id' => array(
+          'columns' => array(
+            'product_id' => 'product_id',
+          ),
+          'table' => 'commerce_product',
+        ),
+      ),
+      'indexes' => array(
+        'product_id' => array(
+          0 => 'product_id',
+        ),
+      ),
+      'locked' => '0',
+      'module' => 'commerce_product_reference',
+      'settings' => array(),
+      'translatable' => '0',
+      'type' => 'commerce_product_reference',
+    ),
+    'field_instance' => array(
+      'bundle' => 'event',
+      'default_value' => NULL,
+      'deleted' => '0',
+      'description' => 'If this event costs money, choose the event product here. The event product will contain the registration type field. You can create this product inline.',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'commerce_cart',
+          'settings' => array(
+            'combine' => TRUE,
+            'default_quantity' => 1,
+            'line_item_type' => 'product',
+            'show_quantity' => FALSE,
+            'show_single_product_attributes' => FALSE,
+          ),
+          'type' => 'commerce_cart_add_to_cart_form',
+          'weight' => 4,
+        ),
+        'listing' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+        'teaser' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+      ),
+      'entity_type' => 'node',
+      'field_name' => 'field_event_product',
+      'label' => 'Product',
+      'required' => 0,
+      'settings' => array(
+        'field_injection' => 1,
+        'referenceable_types' => array(
+          'cod_paid_event' => 'cod_paid_event',
+          'product' => 0,
+        ),
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'active' => 1,
+        'module' => 'inline_entity_form',
+        'settings' => array(
+          'fields' => array(),
+          'type_settings' => array(
+            'allow_existing' => 1,
+            'autogenerate_title' => 1,
+            'delete_references' => 0,
+            'match_operator' => 'CONTAINS',
+            'use_variation_language' => 0,
+          ),
+        ),
+        'type' => 'inline_entity_form',
+        'weight' => '7',
+      ),
+    ),
+  );
+
+  // Exported field: 'node-event-field_paid_event'.
+  $fields['node-event-field_paid_event'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_paid_event',
+      'field_permissions' => array(
+        'type' => '0',
+      ),
+      'foreign keys' => array(),
+      'indexes' => array(
+        'value' => array(
+          0 => 'value',
+        ),
+      ),
+      'locked' => '0',
+      'module' => 'list',
+      'settings' => array(
+        'allowed_values' => array(
+          0 => '',
+          1 => 'This is a paid event',
+        ),
+        'allowed_values_function' => '',
+      ),
+      'translatable' => '0',
+      'type' => 'list_boolean',
+    ),
+    'field_instance' => array(
+      'bundle' => 'event',
+      'default_value' => array(
+        0 => array(
+          'value' => 0,
+        ),
+      ),
+      'deleted' => '0',
+      'description' => 'If this is a paid event, check this box to enable the product selection section',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'list',
+          'settings' => array(),
+          'type' => 'list_default',
+          'weight' => 6,
+        ),
+        'listing' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+        'teaser' => array(
+          'label' => 'above',
+          'settings' => array(),
+          'type' => 'hidden',
+          'weight' => 0,
+        ),
+      ),
+      'entity_type' => 'node',
+      'field_name' => 'field_paid_event',
+      'label' => 'Paid Event',
+      'required' => 0,
+      'settings' => array(
+        'user_register_form' => FALSE,
+      ),
+      'widget' => array(
+        'active' => 1,
+        'module' => 'options',
+        'settings' => array(
+          'display_label' => 0,
+        ),
+        'type' => 'options_onoff',
+        'weight' => '4',
+      ),
+    ),
+  );
+
+  // Translatables
+  // Included for use with string extractors like potx.
+  t('If this event costs money, choose the event product here. The event product will contain the registration type field. You can create this product inline.');
+  t('If this is a paid event, check this box to enable the product selection section');
+  t('Paid Event');
+  t('Price');
+  t('Product');
+  t('Registration');
+
+  return $fields;
+}
diff --git a/cod_paid_events/cod_paid_events.features.inc b/cod_paid_events/cod_paid_events.features.inc
new file mode 100644
index 0000000..ab10610
--- /dev/null
+++ b/cod_paid_events/cod_paid_events.features.inc
@@ -0,0 +1,36 @@
+<?php
+/**
+ * @file
+ * cod_paid_events.features.inc
+ */
+
+/**
+ * Implements hook_commerce_product_default_types().
+ */
+function cod_paid_events_commerce_product_default_types() {
+  $items = array(
+    'cod_paid_event' => array(
+      'type' => 'cod_paid_event',
+      'name' => 'Paid Event',
+      'description' => 'A paid event product',
+      'help' => '',
+      'revision' => '1',
+    ),
+  );
+  return $items;
+}
+
+/**
+ * Implements hook_default_registration_type().
+ */
+function cod_paid_events_default_registration_type() {
+  $items = array();
+  $items['paid_event'] = entity_import('registration_type', '{
+    "name" : "paid_event",
+    "label" : "Paid Event",
+    "locked" : "0",
+    "weight" : "0",
+    "data" : null
+  }');
+  return $items;
+}
diff --git a/cod_paid_events/cod_paid_events.info b/cod_paid_events/cod_paid_events.info
new file mode 100644
index 0000000..0f17f56
--- /dev/null
+++ b/cod_paid_events/cod_paid_events.info
@@ -0,0 +1,24 @@
+name = COD Paid Events
+description = Provides paid events options
+core = 7.x
+package = COD
+php = 5.2.4
+project = cod_paid_events
+dependencies[] = cod_events
+dependencies[] = commerce
+dependencies[] = commerce_cart
+dependencies[] = commerce_features
+dependencies[] = commerce_product_ui
+dependencies[] = commerce_registration
+dependencies[] = conditional_fields
+dependencies[] = inline_entity_form
+dependencies[] = list
+dependencies[] = registration
+features[commerce_product_type][] = cod_paid_event
+features[conditional_fields][] = node:event
+features[features_api][] = api:1
+features[field][] = commerce_product-cod_paid_event-commerce_price
+features[field][] = commerce_product-cod_paid_event-field_registration
+features[field][] = node-event-field_event_product
+features[field][] = node-event-field_paid_event
+features[registration_type][] = paid_event
diff --git a/cod_paid_events/cod_paid_events.module b/cod_paid_events/cod_paid_events.module
new file mode 100644
index 0000000..443ec27
--- /dev/null
+++ b/cod_paid_events/cod_paid_events.module
@@ -0,0 +1,18 @@
+<?php
+
+include_once('cod_paid_events.features.inc');
+
+/**
+ * Implements hook_node_presave().
+ *
+ * If this is a paid event we want to clear the field_registration values or 
+ * clear field_paid_event if it is free
+ */
+function cod_paid_events_node_presave($node) {
+  if($node->field_paid_event[ $node->language ][0]['value']) {
+    $node->field_registration[ $node->language ] = array();
+  } else {
+    $node->field_event_product[ $node->language ] = array();
+  }
+}
+
