diff --git a/homebox_og/homebox_og.install b/homebox_og/homebox_og.install
index 859e219..448fc61 100644
--- a/homebox_og/homebox_og.install
+++ b/homebox_og/homebox_og.install
@@ -6,6 +6,17 @@
  *
  */
 
+function homebox_og_install() {
+  // Ensure homebox_og has a weight GREATER than page_manager
+  $weight = db_query("SELECT weight FROM {system} WHERE type = 'module' AND name = 'page_manager'")->fetchField();
+  $weight++;
+  db_update('system')
+  ->fields(array('weight' => $weight))
+  ->condition('type', 'module')
+  ->condition('name', 'homebox_og')
+  ->execute();
+}
+
 /**
  * Implements hook_uninstall().
  */
diff --git a/homebox_og/homebox_og.module b/homebox_og/homebox_og.module
index aeaf0a4..9d4fe66 100644
--- a/homebox_og/homebox_og.module
+++ b/homebox_og/homebox_og.module
@@ -58,8 +58,23 @@ function homebox_og_menu_alter(&$items) {
 function homebox_og_override_group($node) {
   // Check if this is a group homepage
   if (og_is_group_type('node', $node->type)) {
+    // Fetch any Type-specific action
+    // ts_name = 0: Default
+    // ts_name = 1: No Override (return node page view)
+    // ts_name = "page" - override page with specified Homebox page
+    $ts_name = variable_get('homebox_og_home_' . $node->type, 0); 
     // Fetch the designated homebox
-    if ($name = variable_get('homebox_og_home', '')) {
+    switch ($ts_name) {
+      case '0':  // Default Action
+        $name = variable_get('homebox_og_home', '');
+        break;
+      case '1':  // No Override
+        $name = '';
+        break;
+      default:  // Custom Homebox page for this Node Type
+        $name = $ts_name;
+    }
+    if ($name) {
       // Make sure the page exists
       if ($page = homebox_get_page($name)) {
         // Make sure the user has permission to view the homebox
@@ -144,7 +159,7 @@ function homebox_og_group_settings_page($form, &$form_state) {
 
   $form['home']['homebox_og_home'] = array(
     '#type' => 'select',
-    '#title' => t('Override group homepages'),
+    '#title' => t('Override group homepages (Action to take when <em>Default</em> selected below)'),
     '#default_value' => variable_get('homebox_og_home', 0),
     '#options' => array(0 => '- None -') + $options,
     '#description' => t('
@@ -154,6 +169,20 @@ function homebox_og_group_settings_page($form, &$form_state) {
     '),
   );
 
+  $og_groups = homebox_og_get_og_groups('group_group');
+  // Options to override "default"
+  foreach ($og_groups as $mname => $title) {
+    $form['home']['homebox_og_home_' . $mname] = array(
+      '#type' => 'select',
+      '#title' => t('Overide homepages for: ' . $title),
+      '#default_value' => variable_get('homebox_og_home_' . $mname, 0),
+      '#options' => array(
+        0 => '- Default -',
+        1 => '- Do Not Override -',
+      ) + $options,
+    );
+  }
+
   $form['tab'] = array(
     '#type' => 'fieldset',
     '#title' => t('Menu Tab'),
@@ -186,3 +215,53 @@ function homebox_og_group_settings_page_submit($form, &$form_state) {
   // Rebuild the menu
   menu_rebuild();
 }
+
+/**
+ * Return an array of bundles with Group fields
+ * @param array $group_fields<p>
+ * An array containing group fields to select for. Defaults to ALL group fields.<br>
+ * possible options are:<br> 
+ * group_group: Just get Groups<br>
+ * group_audience: Just get Group Content<br>
+ * group_content_access: Just get Group Content with specific Group Content Access perms<br>
+ * Others:<br>
+ *   og_roles_permissions, og_node_link, group_register, og_views<br>
+ * </p>
+ * @return array an array of all matching groups formatted as:<br>
+ * [bundle-machine-name] = 'bundle-name - entity-name entity'<br>
+ * eg [user] = 'User - User entity'
+ */
+function homebox_og_get_og_groups($group_fields_needle = NULL) {
+  
+  $og_groups = array();
+  $field_enabled = array();  
+  $group_fields = og_fields_info();
+  if (!$group_fields_needle) {  
+    $group_fields_name = array_keys($group_fields);
+  } else {
+    $group_fields_name = is_array($group_fields_needle) ? $group_fields_needle : array($group_fields_needle);
+  } 
+  $entity_info = entity_get_info();
+  
+  // Get the fields that exist in the bundle.
+  foreach (field_info_fields() as $field_name => $field) {
+    if (in_array($field_name, $group_fields_name) && !empty($field['bundles'])) {
+      foreach ($field['bundles'] as $entity_type => $bundles) {
+        foreach ($bundles as $bundle) {
+          $field_enabled[$entity_type][$bundle][] = $field_name;
+        }
+      }
+    }
+  }
+  if ($field_enabled) {
+    foreach ($field_enabled as $entity_type => $bundles) {
+      foreach ($bundles as $bundle => $fields) {
+        $options = array();
+        $bundles = field_info_bundles($entity_type);
+        $og_groups[$bundle] = t('@bundle - @entity entity', array('@bundle' => $bundles[$bundle]['label'], '@entity' => $entity_info[$entity_type]['label']));
+      }
+    }
+  }
+  
+  return $og_groups;
+}
