diff --git a/modules/comment.inc b/modules/comment.inc
deleted file mode 100644
index 1159e06..0000000
--- a/modules/comment.inc
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/**
- * Implements hook_styleguide().
- */
-function comment_styleguide() {
-  global $conf, $user;
-  $user_register = $conf['user_register'];
-  $account = clone $user;
-//  $user->uid = 0;
-  $conf['comment_form_location_-styleguide-'] = COMMENT_FORM_SEPARATE_PAGE;
-  $conf['user_register'] = TRUE;
-
-  $authenticated_post_comments = &drupal_static('theme_comment_post_forbidden', NULL);
-  $authenticated_post_comments = TRUE;
-  $items['comment_post_forbidden'] = array(
-    'title' => t('Comment post forbidden'),
-    'content' => theme('comment_post_forbidden', array('node' => (object) array('nid' => 0, 'type' => '-styleguide-'))),
-    'group' => t('Comment'),
-  );
-  $user = $account;
-  $conf['user_register'] = $user_register;
-
-  $name = styleguide_word(2);
-  $render = array(
-    '#theme' => 'comment',
-    '#comment' => (object) array(
-      'cid' => 0,
-      'pid' => 0,
-      'nid' => 1,
-      'uid' => 0,
-      'subject' => 'foo bar',
-      'hostname' => '::1',
-      'created' => time(),
-      'changed' => time(),
-      'status' => 1,
-      'thread' => '01/',
-      'name' => $name,
-      'mail' => '',
-      'homepage' => 'http://drupal.org/project/styleguide',
-      'language' => 'und',
-      'node_type' => 'comment_node_styleguide',
-      'registered_name' => '',
-      'u_uid' => 0,
-      'signature' => '',
-      'signature_format' => NULL,
-      'picture' => 0,
-      'new' => 0,
-    ),
-    '#node' => (object) array('nid' => 1, 'type' => 'styleguide'),
-  );
-  $render['body'] = array('#markup' => styleguide_paragraph(2));
-  $items['comment'] = array(
-    'title' => t('Comment'),
-    'content' => drupal_render($render),
-    'group' => t('Comment'),
-  );
-
-  return $items;
-}
diff --git a/styleguide.module b/styleguide.module
index e12111b..1fa1279 100644
--- a/styleguide.module
+++ b/styleguide.module
@@ -87,7 +87,7 @@ function styleguide_theme($existing, $type, $theme, $path) {
     ),
   );
   foreach ($themes as $theme => $data) {
-    $themes[$theme]['file'] = 'styleguide.theme.inc';
+    //$themes[$theme]['file'] = 'styleguide.theme.inc';
   }
   return $themes;
 }
@@ -108,10 +108,10 @@ function styleguide_permission() {
  * Menu access callback.
  */
 function styleguide_access_check($theme) {
-  if (!user_access('view style guides')) {
+  if (!\Drupal::currentUser()->hasPermission('view style guides')) {
     return FALSE;
   }
-  if (drupal_theme_access($theme)) {
+  if ( \Drupal::service('access_check.theme')->checkAccess()) {
     return TRUE;
   }
   return FALSE;
@@ -297,7 +297,7 @@ function styleguide_image($image = 'vertical', $type = 'jpg') {
  * Implements hook_system_theme_page_alter().
  */
 function styleguide_system_themes_page_alter(&$theme_groups) {
-  if (!user_access('view style guides')) {
+  if (!\Drupal::currentUser()->hasPermission('view style guides')) {
     return;
   }
   foreach ($theme_groups as $group => $members) {
@@ -524,8 +524,8 @@ function styleguide_pager($size = 8, $total = 20) {
   $pager_page_array[1] = $size;
   $pager_total[1] = $total;
   // For some reason, the pager breaks the page title.
-  drupal_set_title('Style guide');
-  return theme('pager', array('element' => 1));
+  //drupal_set_title('Style guide');
+  return array('#theme' => 'pager', array('element' => 1));
 }
 
 /**
@@ -578,7 +578,7 @@ function styleguide_ul_links() {
     $word = styleguide_word();
     $links[$word] = array(
       'title' => $word,
-      'href' => current_path(),
+      'href' => \Drupal::request()->getRequestUri(),
       'fragment' => 'ul_links',
     );
   }
diff --git a/styleguide.routing.yml b/styleguide.routing.yml
index 30f3c0f..7daf551 100644
--- a/styleguide.routing.yml
+++ b/styleguide.routing.yml
@@ -1,7 +1,9 @@
 styleguide.apperance:
   path: '/admin/appearance/styleguide/{theme}'
   defaults:
-    _content: '\Drupal\styleguide\Controller\StyleguideController::styleguideRender'
+    _controller: '\Drupal\styleguide\Controller\StyleguideController::styleguideRender'
     _title: 'Styleguide'
   requirements:
-    _permission: 'view style guides'
\ No newline at end of file
+    _permission: 'view style guides'
+  options:
+    _admin_route: FALSE
\ No newline at end of file
diff --git a/styleguide.styleguide.inc b/styleguide.styleguide.inc
index 86960b4..5266891 100644
--- a/styleguide.styleguide.inc
+++ b/styleguide.styleguide.inc
@@ -3,11 +3,15 @@
 /**
  * Implements hook_styleguide().
  */
+use Drupal\Core\Url;
+use Drupal\Core\Menu\MenuTreeParameters;
 function styleguide_styleguide() {
-  $current_url = request_path();
+  $current_url = \Drupal::request()->getRequestUri();
+  //use Drupal\Core\Url;
+  $url = Url::fromUri('http://www.example.com/');
   $items['a'] = array(
     'title' => t('Link'),
-    'content' => styleguide_word(3, 'ucfirst') . ' ' . l(styleguide_word(3), 'node') . ' ' . styleguide_word(4) . '.',
+    'content' => styleguide_word(3, 'ucfirst') . ' ' . Drupal::l(styleguide_word(3), $url) . ' ' . styleguide_word(4) . '.',
   );
   $items['b'] = array(
     'title' => t('B'),
@@ -122,14 +126,17 @@ function styleguide_styleguide() {
     ),
     'group' => t('Lists'),
   );
+  $menu = \Drupal::menuTree()->load('main', new MenuTreeParameters());
+
   $items['menu_tree'] = array(
     'title' => t('Menu tree'),
-    'content' => menu_tree('management'),
+    'content' => \Drupal::menuTree()->build($menu),
     'group' => t('Menus'),
   );
   $items['menu_link'] = array(
     'title' => t('Menu link'),
-    'content' => theme('menu_link', array('element' => styleguide_menu_item($current_url))),
+    'content' => array('#theme' => 'menu_link',
+                   array('element' => styleguide_menu_item($current_url))),
     'group' => t('Menus')
   );
   $items['table'] = array(
@@ -160,14 +167,18 @@ function styleguide_styleguide() {
     'variables' => array('path' => styleguide_image('vertical'), 'alt' => t('My image'), 'title' => t('My image')),
     'group' => t('Media'),
   );
+  $img = array('#theme' => 'image', array('path' => styleguide_image('horizontal'), 'alt' => t('My image'), 'title' => t('My image')));
+  $img = render($img);
   $items['image-inset-horizontal'] = array(
     'title' => t('Image, horizontal, within text'),
-    'content' => styleguide_paragraph(1) . theme('image', array('path' => styleguide_image('horizontal'), 'alt' => t('My image'), 'title' => t('My image'))) . styleguide_paragraph(2),
+    'content' => styleguide_paragraph(1) . $img . styleguide_paragraph(2),
     'group' => t('Media'),
   );
+  $img = array('#theme' => 'image', array('path' => styleguide_image('vertical'), 'alt' => t('My image'), 'title' => t('My image')));
+  $img = render($img);
   $items['image-inset-vertical'] = array(
     'title' => t('Image, vertical, within text'),
-    'content' => styleguide_paragraph(1) . theme('image', array('path' => styleguide_image('vertical'), 'alt' => t('My image'), 'title' => t('My image'))) . styleguide_paragraph(2),
+    'content' => styleguide_paragraph(1) . $img . styleguide_paragraph(2),
     'group' => t('Media'),
   );
   $content = '';
@@ -222,58 +233,59 @@ function styleguide_styleguide() {
   }
   $items['form'] = array(
     'title' => t('Forms, basic'),
-    'content' => drupal_get_form('styleguide_form', $basic),
+    'content' => \Drupal::formBuilder()->getForm('Drupal\styleguide\Form\StyleguideForm', $basic), //drupal_get_form('styleguide_form', $basic),
     'group' => t('Forms'),
   );
   $items['form-submit'] = array(
     'title' => t('Forms, submit'),
-    'content' => drupal_get_form('styleguide_form', array('submit')),
+    'content' => \Drupal::formBuilder()->getForm('Drupal\styleguide\Form\StyleguideForm', array('submit')),
     'group' => t('Forms'),
   );
   $items['form-button'] = array(
     'title' => t('Forms, button'),
-    'content' => drupal_get_form('styleguide_form', array('button')),
+    'content' => \Drupal::formBuilder()->getForm('Drupal\styleguide\Form\StyleguideForm', array('button')),
     'group' => t('Forms'),
   );
   $items['form-image-button'] = array(
     'title' => t('Forms, image button'),
-    'content' => drupal_get_form('styleguide_form', array('image_button')),
+    'content' => \Drupal::formBuilder()->getForm('Drupal\styleguide\Form\StyleguideForm', array('image_button')),
     'group' => t('Forms'),
   );
   $items['form-markup'] = array(
     'title' => t('Forms, markup'),
-    'content' => drupal_get_form('styleguide_form', $markup),
+    'content' => \Drupal::formBuilder()->getForm('Drupal\styleguide\Form\StyleguideForm', $markup),
     'group' => t('Forms'),
   );
   $items['form-fieldsets'] = array(
     'title' => t('Forms, fieldsets'),
-    'content' => drupal_get_form('styleguide_form', $fieldsets),
+    'content' => \Drupal::formBuilder()->getForm('Drupal\styleguide\Form\StyleguideForm', $fieldsets),
     'group' => t('Forms'),
   );
   $items['form-vertical-tabs'] = array(
     'title' => t('Forms, vertical tabs'),
-    'content' => drupal_get_form('styleguide_form', $tabs),
+    'content' => \Drupal::formBuilder()->getForm('Drupal\styleguide\Form\StyleguideForm', $tabs),
     'group' => t('Forms'),
   );
+  global $base_path;
   $items['feed_icon'] = array(
     'title' => t('Feed icon'),
-    'content' => theme('feed_icon', array('url' => url('rss.xml'), 'title' => t('Syndicate'))),
+    'content' => array('#theme' => 'feed_icon', array('url' => $base_path . '/rss.xml', 'title' => t('Syndicate'))),
     'group' => t('System')
   );
   // This item kills drupal_set_message. The messages are displayed here.
   $items['maintenance_page'] = array(
     'title' => t('Maintenance page'),
-    'content' => theme('maintenance_page', array('content' => styleguide_paragraph(2))),
+    'content' => array('#theme' => 'maintenance_page', array('content' => styleguide_paragraph(2))),
     'group' => t('System')
   );
   $items['system_powered_by'] = array(
     'title' => t('System powered by'),
-    'content' => theme('system_powered_by'),
+    'content' => array('#theme' => 'system_powered_by'),
     'group' => t('System')
   );
   $items['confirm_form'] = array(
     'title' => t('Confirm form'),
-    'content' => drupal_get_form('confirm_form', array('path' => '')),
+    'content' => \Drupal::formBuilder()->getForm('Drupal\styleguide\Form\ConfirmForm', array('path' => '')),
     'group' => t('System')
   );
   $items['pager'] = array(
@@ -283,7 +295,7 @@ function styleguide_styleguide() {
   );
   $items['progress_bar'] = array(
     'title' => t('Progress bar'),
-    'content' => theme('progress_bar', array('percent' => 57, 'message' => styleguide_sentence(2))),
+    'content' => array('#theme' => 'progress_bar', array('percent' => 57, 'message' => styleguide_sentence(2))),
     'group' => t('User interface')
   );
   // TODO: use new breadcrumb approach: https://drupal.org/node/2026025
@@ -293,34 +305,46 @@ function styleguide_styleguide() {
 //    'content' => theme('breadcrumb', array('breadcrumb' => drupal_get_breadcrumb())),
 //    'group' => t('User interface')
 //  );
+  global $base_url;
+  $url = Url::fromUri($base_url . $current_url);
+  Drupal::l(styleguide_word(2), $url);
   $items['link'] = array(
     'title' => t('Link'),
-    'content' => l(styleguide_word(2), $current_url),
+    'content' => $url,
     'group' => t('Link')
   );
   $items['links'] = array(
     'title' => t('Links'),
-    'content' => theme('links', array('links' => styleguide_links($current_url))),
+    'content' => array('#theme' => 'links', array('links' => styleguide_links($current_url))),
     'group' => t('Link')
   );
+
+  $mark = array('#theme' => 'mark', array('type' => MARK_NEW));
+  $mark = render($mark);
   $items['mark_new'] = array(
     'title' => t('Mark, new'),
-    'content' => l(styleguide_sentence(), $current_url) . theme('mark', array('type' => MARK_NEW)),
+    'content' => Drupal::l(styleguide_sentence(), $url) . $mark,
     'group' => t('Link')
   );
+  $mark = array('#theme' => 'mark', array('type' => MARK_UPDATED));
+  $mark = render($mark);
   $items['mark_updated'] = array(
     'title' => t('Mark, updated'),
-    'content' => l(styleguide_sentence(), $current_url) . theme('mark', array('type' => MARK_UPDATED)),
+    'content' => Drupal::l(styleguide_sentence(), $url) . $mark,
     'group' => t('Link')
   );
+  $more = array('#theme' => 'more_help_link', array('url' => $current_url));
+  $more = render($more);
   $items['more_help_link'] = array(
     'title' => t('More help link'),
-    'content' => styleguide_paragraph(1) . theme('more_help_link', array('url' => $current_url)),
+    'content' => styleguide_paragraph(1) . $more,
     'group' => t('Link')
   );
+  $more = array('#theme' => 'more_link', array('url' => $current_url, 'title' => styleguide_sentence()));
+  $more = render($more);
   $items['more_link'] = array(
     'title' => t('More link'),
-    'content' => styleguide_paragraph(1) . theme('more_link', array('url' => $current_url, 'title' => styleguide_sentence())),
+    'content' => styleguide_paragraph(1) . $more,
     'group' => t('Link')
   );
   $items['monospace'] = array(
