diff --git a/core/includes/Drupal/Context/Context.php b/core/includes/Drupal/Context/Context.php
index 9a27a2a..27d8c3a 100644
--- a/core/includes/Drupal/Context/Context.php
+++ b/core/includes/Drupal/Context/Context.php
@@ -250,8 +250,13 @@ class Context implements ContextInterface {
   /**
    * Implements DrupalContextInterface::addLayer();
    */
-  public function addLayer() {
-    $layer = new self();
+  public function addLayer($class = NULL) {
+    if (isset($class)) {
+      $layer = new $class;
+    }
+    else {
+      $layer = new self();
+    }
     $layer->setParent($this);
     return $layer;
   }
diff --git a/core/includes/Drupal/Context/ContextInterface.php b/core/includes/Drupal/Context/ContextInterface.php
index e0003c1..2dfa34a 100644
--- a/core/includes/Drupal/Context/ContextInterface.php
+++ b/core/includes/Drupal/Context/ContextInterface.php
@@ -138,5 +138,5 @@ interface ContextInterface {
    *
    * @return DrualContextInterface
    */
-  public function addLayer();
+  public function addLayer($class = NULL);
 }
