diff --git a/src/applications/owners/controller/PhabricatorOwnersDetailController.php b/src/applications/owners/controller/PhabricatorOwnersDetailController.php
--- a/src/applications/owners/controller/PhabricatorOwnersDetailController.php
+++ b/src/applications/owners/controller/PhabricatorOwnersDetailController.php
@@ -19,7 +19,6 @@
     }
 
     $paths = $package->loadPaths();
-    $owners = $package->loadOwners();
 
     $repository_phids = array();
     foreach ($paths as $path) {
@@ -36,98 +35,18 @@
       $repositories = array();
     }
 
-    $phids = array();
-    foreach ($owners as $owner) {
-      $phids[$owner->getUserPHID()] = true;
-    }
-    $phids = array_keys($phids);
-
-    $handles = $this->loadViewerHandles($phids);
-
-    $rows = array();
-
-    $rows[] = array(pht('Name'), $package->getName());
-    $rows[] = array(pht('Description'), $package->getDescription());
-
-    $primary_owner = null;
-    $primary_phid = $package->getPrimaryOwnerPHID();
-    if ($primary_phid && isset($handles[$primary_phid])) {
-      $primary_owner = phutil_tag(
-        'strong',
-        array(),
-        $handles[$primary_phid]->renderLink());
-    }
-    $rows[] = array(pht('Primary Owner'), $primary_owner);
-
-    $owner_links = array();
-    foreach ($owners as $owner) {
-      $owner_links[] = $handles[$owner->getUserPHID()]->renderLink();
-    }
-    $owner_links = phutil_implode_html(phutil_tag('br'), $owner_links);
-    $rows[] = array(pht('Owners'), $owner_links);
-
-    $rows[] = array(
-      pht('Auditing'),
-      $package->getAuditingEnabled() ?
-        pht('Enabled') :
-        pht('Disabled'),
-    );
-
-    $path_links = array();
-    foreach ($paths as $path) {
-      $repo = idx($repositories, $path->getRepositoryPHID());
-      if (!$repo) {
-        continue;
-      }
-      $href = DiffusionRequest::generateDiffusionURI(
-        array(
-          'callsign' => $repo->getCallsign(),
-          'branch'   => $repo->getDefaultBranch(),
-          'path'     => $path->getPath(),
-          'action'   => 'browse',
-        ));
-      $repo_name = phutil_tag('strong', array(), $repo->getName());
-      $path_link = phutil_tag(
-        'a',
-        array(
-          'href' => (string)$href,
-        ),
-        $path->getPath());
-      $path_links[] = hsprintf(
-        '%s %s %s',
-        ($path->getExcluded() ? "\xE2\x80\x93" : '+'),
-        $repo_name,
-        $path_link);
-    }
-    $path_links = phutil_implode_html(phutil_tag('br'), $path_links);
-    $rows[] = array(pht('Paths'), $path_links);
-
-    $table = new AphrontTableView($rows);
-    $table->setColumnClasses(
-      array(
-        'header',
-        'wide',
-      ));
+    $actions = $this->buildPackageActionView($package);
+    $properties = $this->buildPackagePropertyView($package);
+    $properties->setActionList($actions);
 
-    $panel = new PHUIObjectBoxView();
-    $header = new PHUIHeaderView();
-    $header->setHeader(
-      pht('Package Details for "%s"', $package->getName()));
-    $header->addActionLink(
-      id(new PHUIButtonView())
-        ->setTag('a')
-        ->setHref('/owners/delete/'.$package->getID().'/')
-        ->addSigil('workflow')
-        ->setText(pht('Delete Package')));
-
-    $header->addActionLink(
-      id(new PHUIButtonView())
-        ->setTag('a')
-        ->setHref('/owners/edit/'.$package->getID().'/')
-        ->setText(pht('Edit Package')));
+    $header = id(new PHUIHeaderView())
+      ->setUser($viewer)
+      ->setHeader($package->getName())
+      ->setPolicyObject($package);
 
-    $panel->setHeader($header);
-    $panel->appendChild($table);
+    $panel = id(new PHUIObjectBoxView())
+      ->setHeader($header)
+      ->addPropertyList($properties);
 
     $commit_views = array();
 
@@ -209,11 +128,138 @@
       array(
         $crumbs,
         $panel,
+        $this->renderPathsTable($paths, $repositories),
         $commit_panels,
       ),
       array(
-        'title' => pht('Package %s', $package->getName()),
+        'title' => $package->getName(),
       ));
   }
 
+
+  private function buildPackagePropertyView(PhabricatorOwnersPackage $package) {
+    $viewer = $this->getViewer();
+
+    $view = id(new PHUIPropertyListView())
+      ->setUser($viewer);
+
+    $primary_phid = $package->getPrimaryOwnerPHID();
+    if ($primary_phid) {
+      $primary_owner = $viewer->renderHandle($primary_phid);
+    } else {
+      $primary_owner = phutil_tag('em', array(), pht('None'));
+    }
+    $view->addProperty(pht('Primary Owner'), $primary_owner);
+
+    // TODO: needOwners() this on the Query.
+    $owners = $package->loadOwners();
+    if ($owners) {
+      $owner_list = $viewer->renderHandleList(mpull($owners, 'getUserPHID'));
+    } else {
+      $owner_list = phutil_tag('em', array(), pht('None'));
+    }
+    $view->addProperty(pht('Owners'), $owner_list);
+
+    if ($package->getAuditingEnabled()) {
+      $auditing = pht('Enabled');
+    } else {
+      $auditing = pht('Disabled');
+    }
+    $view->addProperty(pht('Auditing'), $auditing);
+
+    $description = $package->getDescription();
+    if (strlen($description)) {
+      $view->addSectionHeader(pht('Description'));
+      $view->addTextContent(
+        $output = PhabricatorMarkupEngine::renderOneObject(
+          id(new PhabricatorMarkupOneOff())->setContent($description),
+          'default',
+          $viewer));
+    }
+
+    return $view;
+  }
+
+  private function buildPackageActionView(PhabricatorOwnersPackage $package) {
+    $viewer = $this->getViewer();
+
+    // TODO: Implement this capability.
+    $can_edit = true;
+
+    $id = $package->getID();
+    $edit_uri = $this->getApplicationURI("/edit/{$id}/");
+    $delete_uri = $this->getApplicationURI("/delete/{$id}/");
+
+    $view = id(new PhabricatorActionListView())
+      ->setUser($viewer)
+      ->setObject($package)
+      ->addAction(
+        id(new PhabricatorActionView())
+          ->setName(pht('Edit Package'))
+          ->setIcon('fa-pencil')
+          ->setDisabled(!$can_edit)
+          ->setWorkflow(!$can_edit)
+          ->setHref($edit_uri))
+      ->addAction(
+        id(new PhabricatorActionView())
+          ->setName(pht('Delete Package'))
+          ->setIcon('fa-times')
+          ->setDisabled(!$can_edit)
+          ->setWorkflow(true)
+          ->setHref($delete_uri));
+
+    return $view;
+  }
+
+  private function renderPathsTable(array $paths, array $repositories) {
+    $viewer = $this->getViewer();
+
+    $rows = array();
+    foreach ($paths as $path) {
+      $repo = idx($repositories, $path->getRepositoryPHID());
+      if (!$repo) {
+        continue;
+      }
+      $href = DiffusionRequest::generateDiffusionURI(
+        array(
+          'callsign' => $repo->getCallsign(),
+          'branch'   => $repo->getDefaultBranch(),
+          'path'     => $path->getPath(),
+          'action'   => 'browse',
+        ));
+
+      $path_link = phutil_tag(
+        'a',
+        array(
+          'href' => (string)$href,
+        ),
+        $path->getPath());
+
+      $rows[] = array(
+        ($path->getExcluded() ? '-' : '+'),
+        $repo->getName(),
+        $path_link,
+      );
+    }
+
+    $table = id(new AphrontTableView($rows))
+      ->setHeaders(
+        array(
+          null,
+          pht('Repository'),
+          pht('Path'),
+        ))
+      ->setColumnClasses(
+        array(
+          null,
+          null,
+          'wide',
+        ));
+
+    return id(new PHUIObjectBoxView())
+      ->setHeaderText(pht('Paths'))
+      ->appendChild($table);
+
+  }
+
 }