diff --git a/composer.json b/composer.json
index 974dc0e..c9fb91e 100644
--- a/composer.json
+++ b/composer.json
@@ -1,47 +1,25 @@
 {
   "name": "drupal/drupal",
   "description": "Drupal is an open source content management platform powering millions of websites and applications.",
-  "type": "drupal-core",
+  "type": "project",
   "license": "GPL-2.0+",
   "require": {
-    "php": ">=5.4.5",
-    "sdboyer/gliph": "0.1.*",
-    "symfony/class-loader": "2.5.*",
-    "symfony/css-selector": "2.5.*",
-    "symfony/dependency-injection": "2.5.*",
-    "symfony/event-dispatcher": "2.5.*",
-    "symfony/http-foundation": "2.5.*",
-    "symfony/http-kernel": "2.5.*",
-    "symfony/routing": "2.5.*",
-    "symfony/serializer": "2.5.*",
-    "symfony/validator": "2.5.*",
-    "symfony/yaml": "dev-master#499f7d7aa96747ad97940089bd7a1fb24ad8182a",
-    "twig/twig": "1.16.*",
-    "doctrine/common": "dev-master#a45d110f71c323e29f41eb0696fa230e3fa1b1b5",
-    "doctrine/annotations": "1.2.*",
-    "guzzlehttp/guzzle": "~5.0",
-    "symfony-cmf/routing": "1.3.*",
-    "easyrdf/easyrdf": "0.8.*",
-    "phpunit/phpunit": "4.1.*",
-    "phpunit/phpunit-mock-objects": "dev-master#e60bb929c50ae4237aaf680a4f6773f4ee17f0a2",
-    "zendframework/zend-feed": "2.2.*",
-    "mikey179/vfsStream": "1.*",
-    "stack/builder": "1.0.*",
-    "egulias/email-validator": "1.2.*"
+    "drupal/core": "~8.0"
   },
-  "autoload": {
-    "psr-4": {
-      "Drupal\\Core\\": "core/lib/Drupal/Core",
-      "Drupal\\Component\\": "core/lib/Drupal/Component",
-      "Drupal\\Driver\\": "drivers/lib/Drupal/Driver"
-    },
-    "files": [
-      "core/lib/Drupal.php"
-    ]
+  "minimum-stability": "dev",
+  "prefer-stable": true,
+  "repositories": {
   },
   "config": {
-    "vendor-dir": "core/vendor",
     "preferred-install": "dist",
     "autoloader-suffix": "Drupal8"
+  },
+  "extra": {
+    "_readme": [
+      "This is an example file to show how a Drupal website can be managed via",
+      "Composer. It does not work out of the box but requires a Git subtree",
+      "split of the core directory to be added to the repositories",
+      "section above."
+    ]
   }
 }
diff --git a/core/composer.json b/core/composer.json
new file mode 100644
index 0000000..8936953
--- /dev/null
+++ b/core/composer.json
@@ -0,0 +1,46 @@
+{
+  "name": "drupal/core",
+  "description": "Drupal is an open source content management platform powering millions of websites and applications.",
+  "type": "drupal-core",
+  "license": "GPL-2.0+",
+  "require": {
+    "php": ">=5.4.5",
+    "sdboyer/gliph": "0.1.*",
+    "symfony/class-loader": "2.5.*",
+    "symfony/css-selector": "2.5.*",
+    "symfony/dependency-injection": "2.5.*",
+    "symfony/event-dispatcher": "2.5.*",
+    "symfony/http-foundation": "2.5.*",
+    "symfony/http-kernel": "2.5.*",
+    "symfony/routing": "2.5.*",
+    "symfony/serializer": "2.5.*",
+    "symfony/validator": "2.5.*",
+    "symfony/yaml": "dev-master#499f7d7aa96747ad97940089bd7a1fb24ad8182a",
+    "twig/twig": "1.16.*",
+    "doctrine/common": "dev-master#a45d110f71c323e29f41eb0696fa230e3fa1b1b5",
+    "doctrine/annotations": "1.2.*",
+    "guzzlehttp/guzzle": "~5.0",
+    "symfony-cmf/routing": "1.3.*",
+    "easyrdf/easyrdf": "0.8.*",
+    "phpunit/phpunit": "4.1.*",
+    "phpunit/phpunit-mock-objects": "dev-master#e60bb929c50ae4237aaf680a4f6773f4ee17f0a2",
+    "zendframework/zend-feed": "2.2.*",
+    "mikey179/vfsStream": "1.*",
+    "stack/builder": "1.0.*",
+    "egulias/email-validator": "1.2.*"
+  },
+  "autoload": {
+    "psr-4": {
+      "Drupal\\Core\\": "lib/Drupal/Core",
+      "Drupal\\Component\\": "lib/Drupal/Component",
+      "Drupal\\Driver\\": "../drivers/lib/Drupal/Driver"
+    },
+    "files": [
+      "lib/Drupal.php"
+    ]
+  },
+  "config": {
+    "preferred-install": "dist",
+    "autoloader-suffix": "Drupal8"
+  }
+}
diff --git a/composer.lock b/core/composer.lock
similarity index 99%
rename from composer.lock
rename to core/composer.lock
index 4849c75..2f3c4a2 100644
--- a/composer.lock
+++ b/core/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "2bd5814ec010b13a6997359736b58695",
+    "hash": "f184fc86a6d7b8c8c27571b52eee6f41",
     "packages": [
         {
             "name": "doctrine/annotations",
diff --git a/core/vendor/composer/autoload_classmap.php b/core/vendor/composer/autoload_classmap.php
index 670145c..9f66986 100644
--- a/core/vendor/composer/autoload_classmap.php
+++ b/core/vendor/composer/autoload_classmap.php
@@ -3,7 +3,7 @@
 // autoload_classmap.php @generated by Composer
 
 $vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname(dirname($vendorDir));
+$baseDir = dirname($vendorDir);
 
 return array(
     'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator.php',
diff --git a/core/vendor/composer/autoload_files.php b/core/vendor/composer/autoload_files.php
index de3bf98..c85d22c 100644
--- a/core/vendor/composer/autoload_files.php
+++ b/core/vendor/composer/autoload_files.php
@@ -3,9 +3,9 @@
 // autoload_files.php @generated by Composer
 
 $vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname(dirname($vendorDir));
+$baseDir = dirname($vendorDir);
 
 return array(
     $vendorDir . '/react/promise/src/functions.php',
-    $baseDir . '/core/lib/Drupal.php',
+    $baseDir . '/lib/Drupal.php',
 );
diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php
index 54e2998..ffe0cd5 100644
--- a/core/vendor/composer/autoload_namespaces.php
+++ b/core/vendor/composer/autoload_namespaces.php
@@ -3,7 +3,7 @@
 // autoload_namespaces.php @generated by Composer
 
 $vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname(dirname($vendorDir));
+$baseDir = dirname($vendorDir);
 
 return array(
     'org\\bovigo\\vfs\\' => array($vendorDir . '/mikey179/vfsStream/src/main/php'),
diff --git a/core/vendor/composer/autoload_psr4.php b/core/vendor/composer/autoload_psr4.php
index 1b053f1..8b6150b 100644
--- a/core/vendor/composer/autoload_psr4.php
+++ b/core/vendor/composer/autoload_psr4.php
@@ -3,7 +3,7 @@
 // autoload_psr4.php @generated by Composer
 
 $vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname(dirname($vendorDir));
+$baseDir = dirname($vendorDir);
 
 return array(
     'Symfony\\Cmf\\Component\\Routing\\' => array($vendorDir . '/symfony-cmf/routing'),
@@ -11,7 +11,7 @@
     'GuzzleHttp\\Stream\\' => array($vendorDir . '/guzzlehttp/streams/src'),
     'GuzzleHttp\\Ring\\' => array($vendorDir . '/guzzlehttp/ringphp/src'),
     'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
-    'Drupal\\Driver\\' => array($baseDir . '/drivers/lib/Drupal/Driver'),
-    'Drupal\\Core\\' => array($baseDir . '/core/lib/Drupal/Core'),
-    'Drupal\\Component\\' => array($baseDir . '/core/lib/Drupal/Component'),
+    'Drupal\\Driver\\' => array($baseDir . '/../drivers/lib/Drupal/Driver'),
+    'Drupal\\Core\\' => array($baseDir . '/lib/Drupal/Core'),
+    'Drupal\\Component\\' => array($baseDir . '/lib/Drupal/Component'),
 );
diff --git a/core/vendor/composer/include_paths.php b/core/vendor/composer/include_paths.php
index b43900a..b3ec291 100644
--- a/core/vendor/composer/include_paths.php
+++ b/core/vendor/composer/include_paths.php
@@ -3,7 +3,7 @@
 // include_paths.php @generated by Composer
 
 $vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname(dirname($vendorDir));
+$baseDir = dirname($vendorDir);
 
 return array(
     $vendorDir . '/phpunit/php-text-template',
diff --git a/example.gitignore b/example.gitignore
index e6c2213..e2f0124 100644
--- a/example.gitignore
+++ b/example.gitignore
@@ -7,6 +7,10 @@
 # Because .gitignore can be specific to your site, this file has a different
 # name; updating Drupal core will not override your custom .gitignore file.
 
+# Ignore core and vendor when managing dependencies with Composer.
+# core
+# vendor
+
 # Ignore configuration files that may contain sensitive information.
 sites/*/settings*.php
 sites/*/services*.yml
