diff --git a/profile2.info b/profile2.info
index df64223..65e9c13 100644
--- a/profile2.info
+++ b/profile2.info
@@ -4,5 +4,6 @@ core = 7.x
 files[] = profile2.admin.inc
 files[] = profile2.info.inc
 files[] = profile2.test
+files[] = views/profile2_handler_relationship_user_profile.inc
 dependencies[] = entity
 configure = admin/structure/profiles
\ No newline at end of file
diff --git a/profile2.module b/profile2.module
index b34bca8..7b9b91f 100644
--- a/profile2.module
+++ b/profile2.module
@@ -336,6 +336,7 @@ function profile2_form_user_profile_form_alter(&$form, &$form_state) {
       $form_state['profiles'][$profile->type] = $profile;
     }
     profile2_attach_form($form, $form_state);
+    dsm($form);
   }
 }
 
@@ -715,3 +716,12 @@ function profile2_user_get_properties($account, array $options, $name) {
   return $profile ? $profile : NULL;
 }
 
+/**
+ * Implementation of hook_views_api().
+ */
+function profile2_views_api() {
+  return array(
+    'api' => '3.0-alpha1',
+    'path' => drupal_get_path('module', 'profile2') . '/views',
+  );
+}
diff --git a/views/profile2.views.inc b/views/profile2.views.inc
new file mode 100644
index 0000000..0efe79b
--- /dev/null
+++ b/views/profile2.views.inc
@@ -0,0 +1,15 @@
+<?php
+/**
+ * @file
+ * Adds support for Views.
+ */
+
+/**
+ * Implementation of hook_views_data_alter().
+ *
+ * EntityAPI provides the basics; we alter to add refinements.
+ */
+function profile2_views_data_alter(&$data) {
+  // Use our relationship handler for user->profile to give limiting options.
+  $data['users']['profile']['relationship']['handler'] = 'profile2_handler_relationship_user_profile';
+}
diff --git a/views/profile2_handler_relationship_user_profile.inc b/views/profile2_handler_relationship_user_profile.inc
new file mode 100644
index 0000000..a5688d7
--- /dev/null
+++ b/views/profile2_handler_relationship_user_profile.inc
@@ -0,0 +1,44 @@
+<?php
+/**
+ * @file
+ * Contains the relationship.... WRITE ME.
+ */
+
+/**
+ */
+class profile2_handler_relationship_user_profile extends views_handler_relationship {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['profile_type'] = array('default' => array());
+
+    return $options;
+  }
+  
+  /**
+   * Add a profile type option.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    
+    foreach (profile2_get_types() as $type => $info) {
+      $options[$type] = $info->label;
+    }
+
+    $form['profile_type'] = array(
+      '#type' => 'checkboxes',
+      '#options' => $options,
+      '#default_value' => $this->options['profile_type'],
+      '#title' => t('Profile types'),
+      '#description' => t('Restrict this relationship to one or more profile types. Selecting more than one type will produce duplicate rows.'),
+    );
+  }
+  
+  /**
+   * Called to implement a relationship in a query.
+   */
+  /* 
+  // WRITE ME
+  function query() {
+  }
+  */
+}
