diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index d75fbd7..9b8c8c6 100644
--- a/core/lib/Drupal/Core/Template/Attribute.php
+++ b/core/lib/Drupal/Core/Template/Attribute.php
@@ -8,6 +8,7 @@
 namespace Drupal\Core\Template;
 
 use ArrayAccess;
+use ArrayIterator;
 use IteratorAggregate;
 
 /**
diff --git a/core/themes/engines/twig/twig.engine b/core/themes/engines/twig/twig.engine
new file mode 100644
index 0000000..fa27aa8
--- /dev/null
+++ b/core/themes/engines/twig/twig.engine
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * @file
+ * Handles integration of Twig templates with the Drupal theme system.
+ */
+use Drupal\Core\Template\TwigNodeVisitor;
+use Drupal\Core\Template\TemplateData;
+
+/**
+ * Implements hook_theme().
+ */
+function twig_theme($existing, $type, $theme, $path) {
+  $templates = drupal_find_theme_templates($existing, '.twig', $path);
+
+  return $templates;
+}
+
+/**
+ * Supplies the twig extension with a function required by theme() for file discover.
+ */
+function twig_extension() {
+  return '.twig';
+}
+
+/**
+ * Render twig templates.
+ *
+ * There are two other ways to fire twig() right now: the
+ * Drupal\Core\Template\drupal_render function handles TemplateData objects
+ * inside a render array, while myrender() in this file handles TemplateData
+ * objects inside TemplateData objects.
+ */
+function twig_render_template($template_file, $variables) {
+  return twig()->loadTemplate($template_file)->render($variables);
+}
+
+function twig($reset = TRUE) {
+  static $twig;
+  if (empty($twig) || $reset) {
+    // We will have our own loader.
+    $loader = new Twig_Loader_Filesystem(DRUPAL_ROOT);
+    $twig = new Twig_Environment($loader, array(
+        'cache' => DRUPAL_ROOT . '/compilation_cache',
+        // @TODO: Remove once http://drupal.org/node/1675260 is resolved.
+        'cache' => FALSE,
+        // @TODO: Remove once http://drupal.org/node/1712444 is resolved.
+        'autoescape' => FALSE,
+    ));
+    foreach (array('attributes', 'drupal_attributes', 't', 'count', 'check_plain', 'url') as $function) {
+      $twig->addFunction($function, new Twig_Function_Function($function));
+    }
+    $twig->addFilter('count', new Twig_Filter_Function('count'));
+  }
+  return $twig;
+}
diff --git a/core/themes/stark/link.twig b/core/themes/stark/link.twig
new file mode 100644
index 0000000..730ceea
--- /dev/null
+++ b/core/themes/stark/link.twig
@@ -0,0 +1,22 @@
+{#
+/**
+ * @file
+ * Default theme implementation to display a link.
+ *
+ * Available variables:
+ * - text: The link text for the anchor tag.
+ * - path: The internal path or external URL being linked to, such as
+ *   "node/34" or "http://example.com/foo".
+ * - options: An associative array of additional options, with the following 
+ *   elements:
+ * - options['attributes']: HTML attributes to apply to the anchor tag.
+ * - options['html']: Whether $text is HTML or just plain-text.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_username()
+ *
+ * @ingroup themeable
+ */
+#}
+
+<a href="{{ check_plain(url(path, options)) }}" {{ options['attributes'] }} >{{ options['html'] ? text : check_plain(text) }}</a>
diff --git a/core/themes/stark/region.twig b/core/themes/stark/region.twig
new file mode 100644
index 0000000..ed7b7ee
--- /dev/null
+++ b/core/themes/stark/region.twig
@@ -0,0 +1,20 @@
+{#
+/**
+ * @file
+ * Default theme implementation to display a region.
+ *
+ * Available variables:
+ * - content: The content for this region, typically blocks.
+ * - attributes: Remaining HTML attributes for the containing element.
+ * - attributes.class: Classes that can be used to style contextually through
+ *   CSS.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_region()
+ */
+#}
+{% if content %}
+<div {{ attributes }}>
+  {{ content }}
+</div>
+{% endif %}
diff --git a/core/themes/stark/stark.info b/core/themes/stark/stark.info
index fbab2a0..6fb1348 100644
--- a/core/themes/stark/stark.info
+++ b/core/themes/stark/stark.info
@@ -3,4 +3,5 @@ description = This theme demonstrates Drupal's default HTML markup and CSS style
 package = Core
 version = VERSION
 core = 8.x
+engine = twig
 stylesheets[all][] = css/layout.css
