diff --git a/includes/handlers/user_badge_assignment_type.inc b/includes/handlers/user_badge_assignment_type.inc
new file mode 100755
index 0000000..8a53c68
--- /dev/null
+++ b/includes/handlers/user_badge_assignment_type.inc
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * @file
+ * Definition of user_badge_assignment_type.inc
+ */
+
+/**
+ * @ingroup views_filter_handlers
+ */
+class user_badge_assignment_type extends views_handler_field {
+
+  /**
+   * Render function.
+   */
+  function render($values) {
+    $value = $this->get_value($values);
+    $return = '';
+    switch ($value) {
+      case 1:
+        $return = t('User');
+        break;
+
+      case 2:
+        $return = t('Role');
+        break;
+
+      default:
+        $return = t('Unknown');
+    }
+    return $return;
+
+  }
+
+}
diff --git a/includes/user_badges.admin.inc b/includes/user_badges.admin.inc
new file mode 100644
index 0000000..55cf503
--- /dev/null
+++ b/includes/user_badges.admin.inc
@@ -0,0 +1,297 @@
+<?php
+/**
+ * @file
+ * Contains administrative UI for User Badge.
+ */
+
+/**
+ * Implements hook_form().
+ */
+function user_badge_form($form, &$form_state, $user_badge = NULL) {
+  $form = array();
+
+  $form['name'] = array(
+    '#title' => t('Badge Name'),
+    '#type' => 'textfield',
+    '#default_value' => isset($user_badge->name) ? check_plain($user_badge->name) : '',
+    '#description' => t('Name assigned to this user badge'),
+    '#required' => TRUE,
+    '#maxlength' => 255,
+  );
+
+  $form['weight'] = array(
+    '#title' => t('Badge Weight'),
+    '#type' => 'weight',
+    '#default_value' => isset($user_badge->weight) ? $user_badge->weight : '0',
+    '#description' => t('Name assigned to this user badge'),
+    '#required' => TRUE,
+    '#delta' => 5,
+  );
+
+  field_attach_form('user_badge', $user_badge, $form, $form_state);
+
+  $form['actions'] = array(
+    '#type' => 'actions',
+    'submit' => array(
+      '#type' => 'submit',
+      '#value' => isset($user_badge->bid) ? t('Update User Badge') : t('Save User Badge'),
+    ),
+    'delete_link' => array(
+      '#markup' => isset($user_badge->bid) ? l(t('Delete'),
+        'admin/content/user_badge/manage/' . $user_badge->bid .
+        '/delete',
+        array(
+          'attributes' => array(
+            'id' => array('user-badge-delete-' . $user_badge->bid),
+            'class' => array('button remove'),
+          ),
+          'query' => array('destination' => 'admin/content/user_badge'),
+        )) : '',
+    ),
+  );
+  return $form;
+}
+
+/**
+ * Implements hook_form_validate().
+ */
+function user_badge_form_validate($form, &$form_state) {
+}
+
+/**
+ * Implements hook_form_submit().
+ */
+function user_badge_form_submit($form, &$form_state) {
+  $user_badge = entity_ui_form_submit_build_entity($form, $form_state);
+  $user_badge->save();
+  drupal_set_message(t('@name user badge has been saved.', array('@name' => $user_badge->name)));
+  $form_state['redirect'] = 'user-badge/' . $user_badge->bid;
+}
+
+/**
+ * Confirmation before bulk deleting user badge.
+ */
+function user_badges_bulk_delete($form, &$form_state, $bids) {
+  $bids = explode('|', $bids);
+  $user_badges = user_badge_load_multiple($bids);
+  $form = array();
+  $form_state['bids'] = $bids;
+  $variables = array(
+    'type' => 'ul',
+    'items' => array(),
+    'title' => '',
+    'attributes' => array(),
+  );
+  foreach ($user_badges as $user_badge) {
+    $variables['items'][] = check_plain($user_badge->name);
+  }
+  $form['summary'] = array(
+    '#markup' => theme_item_list($variables),
+  );
+  return confirm_form($form, t('Delete these user badges?'), 'admin/content/user_badge', t('Are you sure you want to delete these user badges?'), t('Delete all'), t('Cancel'));
+}
+/**
+ * Implements hook_submit().
+ */
+function user_badges_bulk_delete_submit($form, &$form_state) {
+  $bids = $form_state['bids'];
+  user_badge_delete_multiple($bids);
+  drupal_set_message(t('User Badges deleted'));
+  drupal_goto('admin/content/user_badge');
+}
+
+/**
+ * Form builder: roles form.
+ */
+function user_badges_roles_form($form, &$form_state) {
+  // No badges for the anonymous role.
+  $roles = user_roles(TRUE);
+  $role_badges = user_badges_get_roles(NULL, array('returnbadges' => TRUE));
+
+  $form['user_badges_role'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Role Badges'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+    '#tree' => TRUE,
+    '#weight' => 10,
+  );
+  // Determine which selector type the user wants to use to set badges
+  // from their settings.
+  // If the user wants to use the drop-down selector,
+  // display that if there are records in the db.
+  if (variable_get('user_badges_selector_type', 1) == 0) {
+
+    // First, load all the available badges from the database
+    // by calling the following helper function.
+    $result = user_badges_load_badges();
+
+    // Display the drop-down only if we get any records.
+    if (count($result)) {
+      foreach ($result as $badge) {
+        $options[$badge->bid] = t('Badge') . ' ' . $badge->bid . ' ' . '-' . ' ' . check_plain($badge->name);
+      }
+
+      $form['user_badges_blocked_badge'] = array(
+        '#type' => 'select',
+        '#title' => t('Blocked user'),
+        '#empty_option' => '- None -',
+        '#options' => $options,
+        '#default_value' => variable_get('user_badges_blocked_badge', '0'),
+        '#weight' => 0,
+      );
+
+      $user_badge_roles = variable_get('user_badges_role', 0);
+      foreach ($roles as $rid => $role) {
+        $default = '';
+        if (isset($user_badge_roles[$rid]) && $user_badge_roles[$rid]) {
+          $default = $user_badge_roles[$rid];
+        }
+        $form['user_badges_role'][$rid] = array(
+          '#type' => 'select',
+          '#title' => check_plain($role),
+          '#empty_option' => '- None -',
+          '#options' => $options,
+          '#default_value' => $default,
+        );
+      }
+    }
+  }
+  // Else, if the user wants to use the autocomplete or
+  // if there are no records in the db, display that.
+  else {
+    $default = '';
+    $user_badge = user_badge_load(variable_get('user_badges_blocked_badge', 0));
+    if ($user_badge) {
+      $default = check_plain($user_badge->name) . ' (' . $user_badge->bid . ')';
+    }
+    $form['user_badges_blocked_badge'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Blocked user'),
+      '#size' => 40,
+      '#maxlength' => 255,
+      '#autocomplete_path' => 'entityreference/autocomplete/single/user_badge_badges/user/user/',
+      '#default_value' => $default,
+      '#weight' => 0,
+    );
+
+    $user_badge_roles = variable_get('user_badges_role', 0);
+    foreach ($roles as $rid => $role) {
+      $default = '';
+      if (isset($user_badge_roles[$rid]) && $user_badge_roles[$rid]) {
+        $user_badge = user_badge_load($user_badge_roles[$rid]);
+        if ($user_badge) {
+          $default = check_plain($user_badge->name) . ' (' . $user_badge->bid . ')';
+        }
+      }
+      $form['user_badges_role'][$rid] = array(
+        '#type' => 'textfield',
+        '#title' => check_plain($role),
+        '#maxlength' => 255,
+        '#autocomplete_path' => 'entityreference/autocomplete/single/user_badge_badges/user/user/',
+        '#default_value' => $default,
+      );
+    }
+  }
+
+  $form['#submit'][] = 'user_badges_roles_form_add_badges_submit';
+
+  return system_settings_form($form);
+}
+
+/**
+ * Submit for add badges to corresponding users.
+ */
+function user_badges_roles_form_add_badges_submit($form, &$form_state) {
+  $values = $form_state['values'];
+  $blocked = $values['user_badges_blocked_badge'];
+  $roles = $values['user_badges_role'];
+  if ($blocked) {
+    user_badges_add_role_based_badge($blocked, FALSE, TRUE);
+  }
+  foreach ($roles as $rid => $bid) {
+    if ($bid) {
+      user_badges_add_role_based_badge($bid, $rid);
+    }
+    else {
+      $remove_badges[] = $rid;
+    }
+  }
+
+  user_badges_ensure_old_roles_badges_removed($roles, $blocked);
+}
+
+/**
+ * Validation function for user_badges_roles_form.
+ */
+function user_badges_roles_form_validate($form, &$form_state) {
+  $array = array('user_badges_blocked_badge' => $form_state['values']['user_badges_blocked_badge']) + $form_state['values']['user_badges_role'];
+  $errors = FALSE;
+  foreach (array_count_values($array) as $key => $count) {
+    if ($key && $count > 1) {
+      form_set_error('', t("You shouldn't use same badge for more than one role (or for blocked user and one role)"));
+      $errors = TRUE;
+      break;
+    }
+  }
+
+  if (!$errors && variable_get('user_badges_selector_type', 1)) {
+    $values = &$form_state['values'];
+    if ($values['user_badges_blocked_badge']) {
+      $parts = explode('(', $values['user_badges_blocked_badge']);
+      $values['user_badges_blocked_badge'] = substr(end($parts), 0, -1);
+    }
+    foreach ($values['user_badges_role'] as $key => &$value) {
+      $parts = explode('(', $value);
+      $value = substr(end($parts), 0, -1);
+    }
+  }
+}
+
+/**
+ * Form for general module settings.
+ */
+function user_badges_settings_form($form, &$form_state) {
+  $noyes = array(t('No'), t('Yes'));
+
+  /*$form['user_badges_showblocked'] = array(
+    '#type' => 'radios',
+    '#options' => $noyes,
+    '#title' => t('Only show blocked user badge'),
+    '#default_value' => variable_get('user_badges_showblocked', 0),
+    '#description' => t('If checked, only the badge associated to blocked users will be shown, overriding other badges the user eventually has as well as any other settings.') . ' ' .
+    t('Note that if there is no badge associated to blocked users, no badges will appear.') . ' ' .
+    t('This option only acts on blocked users and has no repercussions on active user badges.'),
+    '#attributes' => array('class' => array('container-inline')),
+  );*/
+
+  $form['user_badges_userweight'] = array(
+    '#type' => 'radios',
+    '#options' => $noyes,
+    '#title' => t('Allow users to reorder badges'),
+    '#default_value' => variable_get('user_badges_userweight', 0),
+    '#description' => t('If checked, users will have the ability to reweight their badges in their profile, enabling them to set what order their badges display, and also which badges will display if a limit is set above.') . ' ' .
+    t('Note that you can make individual badges exempt from this function, allowing you to force them to the top or bottom of the list by giving them a very high or low weight value.'),
+    '#attributes' => array('class' => array('container-inline')),
+  );
+
+  $form['user_badges_selector_type'] = array(
+    '#type' => 'select',
+    '#options' => array(
+      0 => t('drop-down multi-select'),
+      1 => t('autocomplete'),
+    ),
+    '#title' => t('Selector to set a badge'),
+    '#default_value' => variable_get('user_badges_selector_type', 1),
+    '#description' => t('Select which type of selector to use to set a badge.'),
+    '#attributes' => array('class' => array('container-inline')),
+  );
+
+  return system_settings_form($form);
+}
+
+/**
+ * Validate user_badges_settings_form input.
+ */
+function user_badges_settings_form_validate($form, $form_state) {
+}
diff --git a/includes/views/user_badges.views.inc b/includes/views/user_badges.views.inc
deleted file mode 100644
index a07ac04..0000000
--- a/includes/views/user_badges.views.inc
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-/**
- * @file
- * This defines views hooks for the User_badges module. It will be loaded automatically as needed by the Views module.
- *
- * @author Heine Deelstra (Heine), http://drupal.org/user/17943
- * @author Richard Skinner (Likeless), http://drupal.org/user/310635
- *
- */
-
-/**
- * Implements hook_views_data().
- */
-function user_badges_views_data() {
-  // Describe the user_badges_user table.
-
-  // Define the base group of this table. Fields that don't
-  // have a group defined will go into this field by default.
-  $data['user_badges_user']['table']['group'] = t('User Badges');
-
-  // How to join this table to the users table
-  $data['user_badges_user']['table']['join']['users'] = array(
-    'left_field' => 'uid',
-    'field' => 'uid',
-  );
-
-  // How to join this table to the node table
-  $data['user_badges_user']['table']['join']['node'] = array(
-    'left_field' => 'uid',
-    'field' => 'uid',
-  );
-
-  // How to join to node_revisions; through the node table for consistent authorship.
-  $data['user_badges_user']['table']['join']['node_revisions'] = array(
-    'left_table' => 'node',
-    'left_field' => 'uid',
-    'field' => 'uid',
-  );
-
-  // Describe the user_badges_badges table.
-  $data['user_badges_badges']['table']['group'] = t('User Badges');
-
-  //We always join the user_badges_badges table on to the user_badges_user table
-  $user_badges_badges_join_info = array(
-    'left_table' => 'user_badges_user',
-    'left_field' => 'bid',
-    'field' => 'bid',
-  );
-
-  $data['user_badges_badges']['table']['join']['users'] = $user_badges_badges_join_info;
-  $data['user_badges_badges']['table']['join']['node'] = $user_badges_badges_join_info;
-  $data['user_badges_badges']['table']['join']['node_revisions'] = $user_badges_badges_join_info;
-
-
-  // Information for processing badge IDs
-  $data['user_badges_user']['bid'] = array(
-    'title' => t('Bid'),
-    'help' => t('The badge ID of the user badge itself.'),
-    'field' => array(
-      'handler' => 'views_handler_field_numeric',
-      'click sortable' => TRUE,
-    ),
-    // Information for accepting a bid as an argument
-    'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
-      'name field' => 'Badge ID',
-      'numeric' => TRUE,
-    ),
-    //Info for filtering by bid
-    'filter' => array(
-      'handler' => 'views_handler_filter_numeric',
-    ),
-    // Information for sorting on a bid.
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-  );
-
-  // Information for processing badge types
-  $data['user_badges_user']['type'] = array(
-    'title' => t('Type'),
-    'help' => t('Whether the badge was set as part of the role, or individually assigned.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE,
-    ),
-    //Info for filtering by badge type
-    'filter' => array(
-      'handler' => 'views_handler_filter_user_badges_user_type',
-    ),
-    // Information for sorting on a bid.
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-  );
-
-  // Information for processing badges by name
-  $data['user_badges_badges']['name'] = array(
-    'title' => t('Badge Name'),
-    'help' => t('The name of the user badge.'),
-    'field' => array(
-      'handler' => 'views_handler_field',
-      'click sortable' => TRUE,
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument',
-      'name field' => 'Badge Name',
-    ),
-    //Info for filtering by badge name
-    'filter' => array(
-      'handler' => 'views_handler_filter_string',
-    ),
-    // Information for sorting on a bid.
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-  );
-
-  // Information for processing badges weights
-  $data['user_badges_badges']['weight'] = array(
-    'title' => t('Badge Weight'),
-    'help' => t('The weight of the badge, as defined on the user badges settings page.'),
-    'field' => array(
-      'handler' => 'views_handler_field_numeric',
-    ),
-    'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
-    ),
-    'sort' => array(
-      'handler' => 'views_handler_sort',
-    ),
-  );
-
-  $data['user_badges_badges']['badge'] = array(
-    'title' => t('Badge'),
-    'real field' => 'bid',
-    'help' => t('An individual user badge.'),
-    'field' => array(
-      'handler' => 'views_handler_field_user_badges_badges_badge',
-    ),
-  );
-
-  // Add the grouped user badges to the user table
-  $data['users']['user_badges_html'] = array(
-    'real field' => 'uid',
-    'title' => t('Grouped User Badges'),
-    'help' => t("All the user's user badges."),
-    'group' => t('User Badges'),
-    'field' => array(
-      'handler' => 'views_handler_field_user_badges_user_uid',
-    ),
-  );
-
-  return $data;
-}
diff --git a/includes/views/views_handler_field_user_badges_badges_badge.inc b/includes/views/views_handler_field_user_badges_badges_badge.inc
deleted file mode 100644
index 00ceae0..0000000
--- a/includes/views/views_handler_field_user_badges_badges_badge.inc
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-/**
- * @file
- * A handler to provide proper displays for individual user badges.
- *
- * @author Richard Skinner (Likeless), http://drupal.org/user/310635
- *
- * @ingroup views_field_handlers
- */
-class views_handler_field_user_badges_badges_badge extends views_handler_field {
-
-  //Get the additional fields we need
-  function construct() {
-    parent::construct();
-    $this->additional_fields['name'] = 'name';
-    $this->additional_fields['image'] = 'image';
-    $this->additional_fields['href'] = 'href';
-    $this->additional_fields['weight'] = 'weight';
-  }
-
-  //Render the badge HTML
-  function render($values) {
-    //Format the field by theming the badge
-    //First, check to see if there is a badge
-    if (isset($values->{$this->field_alias})) {
-      //create the badge object
-      $badge = new stdClass();
-      $badge->bid = $values->{$this->field_alias};
-      $badge->name = $values->{$this->aliases['name']};
-      $badge->image = $values->{$this->aliases['image']};
-      $badge->href = $values->{$this->aliases['href']};
-      $badge->weight = $values->{$this->aliases['weight']};
-  
-      //Send it through the standard theme and return it
-      return theme('user_badge', array('badge' => $badge));
-    }
-    //Else, just return the unformatted field
-    else {
-      $value = $this->get_value($values);
-      return $this->sanitize_value($value);
-    }
-  }
-}
diff --git a/includes/views/views_handler_field_user_badges_user_uid.inc b/includes/views/views_handler_field_user_badges_user_uid.inc
deleted file mode 100644
index e589a48..0000000
--- a/includes/views/views_handler_field_user_badges_user_uid.inc
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-/**
- * @file
- * A handler to provide proper displays for user badges.
- *
- * @author Heine Deelstra (Heine), http://drupal.org/user/17943
- * @author Richard Skinner (Likeless), http://drupal.org/user/310635
- *
- * @ingroup views_field_handlers
- */
-class views_handler_field_user_badges_user_uid extends views_handler_field {
-
-  function render($values) {
-
-    //We'll be needing the uid
-    $uid = $values->{$this->field_alias};
-
-    switch ($this->options['appearance']) {
-
-      //For the text options, get the badge objects and format their names
-      case 'linked_text':
-      case 'unlinked_text':
-        $user_badges = user_badges_get_badges($uid);
-
-        //If we have no badges for the user, just return nothing.
-        if (count($user_badges) == 0) {
-          return '';
-        }
-
-        foreach ((array) $user_badges as $badge) {
-          if ($this->options['appearance'] == 'linked_text' && $badge->href) {
-            $badges[] = l($badge->name, $badge->href);
-          }
-          else {
-            $badges[] = check_plain($badge->name);
-          }
-        }
-
-        return implode($this->options['separator'], $badges);
-
-      //Send the array of badge objects to the custom theme function
-      case 'custom_theme':
-        $user_badges = user_badges_get_badges($uid);
-        return theme($this->options['theme'], array('badges' => $user_badges));
-
-      //This case is for everything else. It returns the normal themed badges.
-      default:
-        return user_badges_for_uid($uid);
-    }
-  }
-
-  //Our options initialisation
-  function option_definition() {
-    $options = parent::option_definition();
-    $options['appearance'] = 'badges';
-    $options['separator'] = ' ';
-    $options['theme'] = '';
-    return $options;
-  }
-
-  //Our options form
-  function options_form(&$form, &$form_state) {
-    parent::options_form($form, $form_state);
-
-    $form['appearance'] = array(
-      '#title' => t('Appearance'),
-      '#description' => t('How the badges will appear.'),
-      '#type' => 'radios',
-      '#options' => array(
-        'badges' => t('Badges'),
-        'linked_text' => t('Linked Text'),
-        'unlinked_text' => t('Unlinked Text'),
-        'custom_theme' => t('Custom Theme'),
-      ),
-      '#default_value' => $this->options['appearance'],
-      '#weight' => -3,
-    );
-
-    $form['separator'] = array(
-      '#title' => t('Text separator'),
-      '#description' => t('The string that will go between each badge name.'),
-      '#type' => 'textfield',
-      '#default_value' => $this->options['separator'],
-      '#size' => 6,
-      '#maxlength' => 128,
-      '#weight' => -2,
-      /*'#states' => array(
-        'visible' => array(
-          ':input[name="appearance"]' => array('value' => 'linked_text'),
-        ),
-        'visible' => array(
-          ':input[name="appearance"]' => array('value' => 'unlinked_text'),
-        ),
-      ),*/
-    );
-
-    $form['theme'] = array(
-      '#title' => t('Custom Theme'),
-      '#description' => t('If you select "Custom Theme" above, enter the name of your theme here. It will be passed an array of badge objects.'),
-      '#type' => 'textfield',
-      '#default_value' => $this->options['theme'],
-      '#maxlength' => 128,
-      '#weight' => -1,
-    );
-  }
-}
diff --git a/includes/views/views_handler_filter_user_badges_user_type.inc b/includes/views/views_handler_filter_user_badges_user_type.inc
deleted file mode 100644
index fe11d53..0000000
--- a/includes/views/views_handler_filter_user_badges_user_type.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-/**
- * @file
- * A handler to provide filtering of views by badge type
- *
- * @author Richard Skinner (Likeless), http://drupal.org/user/310635
- *
- * @ingroup views_field_handlers
- */
-class views_handler_filter_user_badges_user_type extends views_handler_filter_in_operator {
-
-  function get_value_options() {
-    $this->value_options = array(
-      'user' => t('User Badge'),
-      'role' => t('Granted by Role'),
-    );
-  }
-}
diff --git a/templates/user-badge.tpl.php b/templates/user-badge.tpl.php
new file mode 100644
index 0000000..c97cd69
--- /dev/null
+++ b/templates/user-badge.tpl.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * @file
+ * Default theme implementation to display a user badge.
+ *
+ * Available variables:
+ * - $name: the (sanitized) name of the user badge.
+ * - $content: An array of user badge items.
+ *   Use render($content) to print them all,
+ *   or print a subset such as render($content['field_example']). Use
+ *   hide($content['field_example']) to temporarily suppress the printing of a
+ *   given element.
+ * - $date: Formatted creation date. Preprocess functions can reformat it by
+ *   calling format_date() with the desired parameters on the $created variable.
+ * - $user_badge_url: Direct URL of the current user_badge.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. The default values can be one or more of the
+ *   following:
+ *   - user_badge: The current template type; for example, "theming hook".
+ *   - user_badge-teaser: User badge in teaser form.
+ *   - user_badge-preview: User badge in preview mode.
+ * - $name_prefix (array): An array containing additional output populated by
+ *   modules, intended to be displayed in front of the main title tag that
+ *   appears in the template.
+ * - $name_suffix (array): An array containing additional output populated by
+ *   modules, intended to be displayed after the main title tag that appears in
+ *   the template.
+ *
+ * Other variables:
+ * - $user_badge: Full user badge object. Contains data that may not be safe.
+ * - $created: Time the node was published formatted in Unix timestamp.
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ * - $zebra: Outputs either "even" or "odd". Useful for zebra striping in
+ *   teaser listings.
+ *
+ * Node status variables:
+ * - $view_mode: View mode; for example, "full", "teaser".
+ * - $teaser: Flag for the teaser state (shortcut for $view_mode == 'teaser').
+ * - $page: Flag for the full page state.
+ *
+ * Field variables:
+ * for each field instance attached to the user badge a corresponding
+ * variable is defined; for example, $user_badge->body becomes $body.
+ * When needing to access a field's raw values,
+ * developers/themers are strongly encouraged to use these variables.
+ * Otherwise they will have to explicitly specify the desired field language;
+ * for example, $user_badge->body['en'], thus overriding any language
+ * negotiation rule that was previously applied.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_user_badges()
+ * @see template_process()
+ *
+ * @ingroup themeable
+ */
+?>
+<div id="user-badge-<?php print $user_badge->bid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
+
+  <?php print render($title_prefix); ?>
+  <?php if (!$page): ?>
+    <h2<?php print $title_attributes; ?>><a href="<?php print $user_badge_url; ?>"><?php print $name; ?></a></h2>
+  <?php endif; ?>
+  <?php print render($title_suffix); ?>
+
+  <div class="content"<?php print $content_attributes; ?>>
+    <?php
+      print render($content);
+    ?>
+  </div>
+
+</div>
diff --git a/user_badges.views_default.inc b/user_badges.views_default.inc
new file mode 100644
index 0000000..1514b88
--- /dev/null
+++ b/user_badges.views_default.inc
@@ -0,0 +1,85 @@
+<?php
+/**
+ * @file
+ * user_badges.views_default.inc
+ */
+
+/**
+ * Implements hook_views_default_views().
+ */
+function user_badges_views_default_views() {
+  $export = array();
+
+  $view = new view();
+  $view->name = 'user_badges_user';
+  $view->description = '';
+  $view->tag = 'default';
+  $view->base_table = 'user_badge';
+  $view->human_name = 'User Badges User';
+  $view->core = 7;
+  $view->api_version = '3.0';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+
+  /* Display: Master */
+  $handler = $view->new_display('default', 'Master', 'default');
+  $handler->display->display_options['use_more_always'] = FALSE;
+  $handler->display->display_options['access']['type'] = 'none';
+  $handler->display->display_options['cache']['type'] = 'none';
+  $handler->display->display_options['query']['type'] = 'views_query';
+  $handler->display->display_options['query']['options']['distinct'] = TRUE;
+  $handler->display->display_options['exposed_form']['type'] = 'basic';
+  $handler->display->display_options['pager']['type'] = 'some';
+  $handler->display->display_options['pager']['options']['items_per_page'] = '5';
+  $handler->display->display_options['style_plugin'] = 'default';
+  $handler->display->display_options['row_plugin'] = 'entity';
+  $handler->display->display_options['row_options']['view_mode'] = 'teaser';
+  /* Relationship: Entity Reference: Referencing entity */
+  $handler->display->display_options['relationships']['reverse_user_badge_badges_user']['id'] = 'reverse_user_badge_badges_user';
+  $handler->display->display_options['relationships']['reverse_user_badge_badges_user']['table'] = 'user_badge';
+  $handler->display->display_options['relationships']['reverse_user_badge_badges_user']['field'] = 'reverse_user_badge_badges_user';
+  $handler->display->display_options['relationships']['reverse_user_badge_badges_user']['required'] = TRUE;
+  /* Field: User Badge: User badge ID */
+  $handler->display->display_options['fields']['bid']['id'] = 'bid';
+  $handler->display->display_options['fields']['bid']['table'] = 'user_badge';
+  $handler->display->display_options['fields']['bid']['field'] = 'bid';
+  /* Sort criterion: User Badges Assignments: User Badge Assignment Weight */
+  $handler->display->display_options['sorts']['weight_1']['id'] = 'weight_1';
+  $handler->display->display_options['sorts']['weight_1']['table'] = 'user_badges_assignment';
+  $handler->display->display_options['sorts']['weight_1']['field'] = 'weight';
+  /* Sort criterion: User Badge: Name */
+  $handler->display->display_options['sorts']['name']['id'] = 'name';
+  $handler->display->display_options['sorts']['name']['table'] = 'user_badge';
+  $handler->display->display_options['sorts']['name']['field'] = 'name';
+  /* Contextual filter: User: Uid */
+  $handler->display->display_options['arguments']['uid']['id'] = 'uid';
+  $handler->display->display_options['arguments']['uid']['table'] = 'users';
+  $handler->display->display_options['arguments']['uid']['field'] = 'uid';
+  $handler->display->display_options['arguments']['uid']['relationship'] = 'reverse_user_badge_badges_user';
+  $handler->display->display_options['arguments']['uid']['default_action'] = 'not found';
+  $handler->display->display_options['arguments']['uid']['default_argument_type'] = 'fixed';
+  $handler->display->display_options['arguments']['uid']['summary']['number_of_records'] = '0';
+  $handler->display->display_options['arguments']['uid']['summary']['format'] = 'default_summary';
+  $handler->display->display_options['arguments']['uid']['summary_options']['items_per_page'] = '25';
+
+  /* Display: Block */
+  $handler = $view->new_display('block', 'Block', 'badges_list');
+  $translatables['user_badges_user'] = array(
+    t('Master'),
+    t('more'),
+    t('Apply'),
+    t('Reset'),
+    t('Sort by'),
+    t('Asc'),
+    t('Desc'),
+    t('User referencing User Badge from user_badge_badges'),
+    t('User badge ID'),
+    t('.'),
+    t(','),
+    t('All'),
+    t('Block'),
+  );
+
+  $export['user_badges_user'] = $view;
+
+  return $export;
+}
