diff --git a/src/Controller/GraphAPIController.php b/src/Controller/GraphAPIController.php
index 545a268..aa18d29 100644
--- a/src/Controller/GraphAPIController.php
+++ b/src/Controller/GraphAPIController.php
@@ -8,6 +8,8 @@
 namespace Drupal\graphapi\Controller;
 
 use Drupal\Core\Controller\ControllerBase;
+use Drupal\Core\Link;
+use Drupal\Core\Url;
 use Fhaculty\Graph\Graph;
 
 /**
@@ -16,12 +18,43 @@ use Fhaculty\Graph\Graph;
 class GraphAPIController extends ControllerBase {
 
   public function settings() {
-    $items = array(
-      l("Graph API settings", '/admin/config/system/graphapi/settings'),
-      l("Graph API formats", '/admin/config/system/graphapi/formats'),
-    );
-    return "Set the path for graphviz"
-      . theme('item_list', array('items' => $items, 'title' => "Other options"));
+    $settings = Link::fromTextAndUrl("Graph API Settings", Url::fromRoute('graphapi.settings'));
+    $formats = Link::fromTextAndUrl("Graph API Formats", Url::fromRoute('graphapi.engines'));
+
+    $build['item_list'] = [
+      '#theme' => 'item_list',
+      '#list_type' => 'ul',
+      '#wrapper_attributes' => [
+        'class' => [
+          'wrapper',
+        ],
+      ],
+      '#attributes' => [
+        'class' => [
+          'wrapper__links',
+        ],
+      ],
+      '#items' => [
+        [
+          '#markup' => $settings->toString(),
+          '#wrapper_attributes' => [
+            'class' => [
+              'wrapper__links__link',
+            ],
+          ],
+        ],
+        [
+          '#markup' => $formats->toString(),
+          '#wrapper_attributes' => [
+            'class' => [
+              'wrapper__links__link',
+            ],
+          ],
+        ],
+      ],
+    ];
+
+    return $build;
   }
 
   /**
@@ -44,38 +77,44 @@ class GraphAPIController extends ControllerBase {
   }
 
   public function formats() {
-    $path = "admin/config/system/graphapi/formats";
+    $headers = [$this->t('Engine'), $this->t('Description'), ['data' => $this->t('Operations'), 'colspan' => 7]];
     $engines = $this->getFormats();
     if (empty($engines)) {
-      return "No modules found implementing Graph API Format.";
+      return $this->t('No modules found implementing Graph API Format.');
     }
-    $rows = array();
+    $rows = [];
     foreach ($this->getFormats() as $engine => $label) {
-      $row = array(
+      $row = [
         $engine,
         $label,
-      );
-      $operations = array(
-        'demo' => array(
-          'title' => 'Demo',
-          'href' => "$path/$engine",
-        ),
-        'form' => array(
-          'title' => 'Form',
-          'href' => "$path/$engine/form",
-        ),
-      );
-      $row[] = array(
-        'data' => array(
+      ];
+      
+      $operations = [
+        'demo' => [
+          'title' => $this->t('Demo'),
+          'url' => Url::fromRoute('graphapi.engine', ['format' => $engine])
+        ],
+        'form' => [
+          'title' => $this->t('Form'),
+          'url' => Url::fromRoute('graphapi.engine_form', ['format' => $engine])
+        ],
+      ];
+      $row[] = [
+        'data' => [
           '#type' => 'operations',
           '#links' => $operations,
-        ),
-      );
+        ],
+      ];
       $rows[] = $row;
     }
-    $header = array(t('Engine'), t('Description'), array('data' => t('Operations'), 'colspan' => 7));
 
-    return theme('table', array('header' => $header, 'rows' => $rows));
+    $element = [
+      '#type' => 'table',
+      '#header' => $headers,
+      '#rows' => $rows,
+    ];
+
+    return $element;
   }
 
   public function format($format) {
