diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2ce0704aa6c89d70cbc0bee91577016b1ff358cb
--- /dev/null
+++ b/README.md
@@ -0,0 +1,17 @@
+== Primary dependencies
+
+- php
+- php extension openssl
+- php extension xsl
+
+== Download required libraries
+
+```bash
+php bin/composer.phar install
+```
+
+== Start a local server
+
+```bash
+php -S 127.0.0.1:9999 -t public public/index.php
+```
diff --git a/bin/composer.phar b/bin/composer.phar
new file mode 100644
index 0000000000000000000000000000000000000000..553efcce527c28adee3c95b3ad3a0f286062af42
Binary files /dev/null and b/bin/composer.phar differ
diff --git a/composer.json b/composer.json
index 235c255111da099c63edad18fbbdbf81968bf734..789407599e19b45f19364c4988707b4f27f405f6 100644
--- a/composer.json
+++ b/composer.json
@@ -5,6 +5,8 @@
         }
     },
     "require": {
+        "ext-openssl": "*",
+        "ext-xsl": "*",
         "silex/silex": "^2.0",
         "hab/solr": "dev-master#ef528a52d57493ad2ae575037e42442075135f62",
         "hab/paginator": "dev-master",
diff --git a/composer.lock b/composer.lock
index c6fb649a3e08a419e8a83f37c377a9644cae50aa..c80cca35f7a22329181d4386e62e8b02fc379dbb 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "07e9ab44da6fe4d44a38b49361c384ed",
+    "content-hash": "768e8b6f5849119440c6ca2de97a1a74",
     "packages": [
         {
             "name": "guzzlehttp/guzzle",
@@ -2154,7 +2154,10 @@
     },
     "prefer-stable": false,
     "prefer-lowest": false,
-    "platform": [],
+    "platform": {
+        "ext-openssl": "*",
+        "ext-xsl": "*"
+    },
     "platform-dev": [],
     "plugin-api-version": "2.0.0"
 }
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 8a5732062571218b15d77a170070a1b323493802..ec640a4b1c9e6b52d4984945afc578d566960b1e 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer/autoload_real.php';
 
-return ComposerAutoloaderInit8a9318ad96e1e6602a968c996fe31931::getLoader();
+return ComposerAutoloaderInitb646d551e704625fa4030ea47f2317b9::getLoader();
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 1a3ea5efd0f98b06206b1417cf19f4e8145ba58c..155d172158b22da9534b3bec7060f4f762d64c3a 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInit8a9318ad96e1e6602a968c996fe31931
+class ComposerAutoloaderInitb646d551e704625fa4030ea47f2317b9
 {
     private static $loader;
 
@@ -24,15 +24,15 @@ class ComposerAutoloaderInit8a9318ad96e1e6602a968c996fe31931
 
         require __DIR__ . '/platform_check.php';
 
-        spl_autoload_register(array('ComposerAutoloaderInit8a9318ad96e1e6602a968c996fe31931', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInitb646d551e704625fa4030ea47f2317b9', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit8a9318ad96e1e6602a968c996fe31931', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInitb646d551e704625fa4030ea47f2317b9', 'loadClassLoader'));
 
         $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
         if ($useStaticLoader) {
             require __DIR__ . '/autoload_static.php';
 
-            call_user_func(\Composer\Autoload\ComposerStaticInit8a9318ad96e1e6602a968c996fe31931::getInitializer($loader));
+            call_user_func(\Composer\Autoload\ComposerStaticInitb646d551e704625fa4030ea47f2317b9::getInitializer($loader));
         } else {
             $map = require __DIR__ . '/autoload_namespaces.php';
             foreach ($map as $namespace => $path) {
@@ -53,19 +53,19 @@ class ComposerAutoloaderInit8a9318ad96e1e6602a968c996fe31931
         $loader->register(true);
 
         if ($useStaticLoader) {
-            $includeFiles = Composer\Autoload\ComposerStaticInit8a9318ad96e1e6602a968c996fe31931::$files;
+            $includeFiles = Composer\Autoload\ComposerStaticInitb646d551e704625fa4030ea47f2317b9::$files;
         } else {
             $includeFiles = require __DIR__ . '/autoload_files.php';
         }
         foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequire8a9318ad96e1e6602a968c996fe31931($fileIdentifier, $file);
+            composerRequireb646d551e704625fa4030ea47f2317b9($fileIdentifier, $file);
         }
 
         return $loader;
     }
 }
 
-function composerRequire8a9318ad96e1e6602a968c996fe31931($fileIdentifier, $file)
+function composerRequireb646d551e704625fa4030ea47f2317b9($fileIdentifier, $file)
 {
     if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
         require $file;
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index 82dce8825086d4266bc2eac61bdd3ec7bec5fa65..bab83a1bc72f0b7f1f8ce713895f82c2b1483dc1 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
 
 namespace Composer\Autoload;
 
-class ComposerStaticInit8a9318ad96e1e6602a968c996fe31931
+class ComposerStaticInitb646d551e704625fa4030ea47f2317b9
 {
     public static $files = array (
         '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
@@ -218,10 +218,10 @@ class ComposerStaticInit8a9318ad96e1e6602a968c996fe31931
     public static function getInitializer(ClassLoader $loader)
     {
         return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = ComposerStaticInit8a9318ad96e1e6602a968c996fe31931::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = ComposerStaticInit8a9318ad96e1e6602a968c996fe31931::$prefixDirsPsr4;
-            $loader->prefixesPsr0 = ComposerStaticInit8a9318ad96e1e6602a968c996fe31931::$prefixesPsr0;
-            $loader->classMap = ComposerStaticInit8a9318ad96e1e6602a968c996fe31931::$classMap;
+            $loader->prefixLengthsPsr4 = ComposerStaticInitb646d551e704625fa4030ea47f2317b9::$prefixLengthsPsr4;
+            $loader->prefixDirsPsr4 = ComposerStaticInitb646d551e704625fa4030ea47f2317b9::$prefixDirsPsr4;
+            $loader->prefixesPsr0 = ComposerStaticInitb646d551e704625fa4030ea47f2317b9::$prefixesPsr0;
+            $loader->classMap = ComposerStaticInitb646d551e704625fa4030ea47f2317b9::$classMap;
 
         }, null, ClassLoader::class);
     }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 9d619da25ac4fa149867ffbb414c4b2d4e732bcf..609b2f1cd055f21b8ab5ccf07c825ed3d3bd1249 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -365,6 +365,10 @@
                 "container-interop",
                 "psr"
             ],
+            "support": {
+                "issues": "https://github.com/php-fig/container/issues",
+                "source": "https://github.com/php-fig/container/tree/master"
+            },
             "install-path": "../psr/container"
         },
         {
@@ -418,6 +422,9 @@
                 "request",
                 "response"
             ],
+            "support": {
+                "source": "https://github.com/php-fig/http-message/tree/master"
+            },
             "install-path": "../psr/http-message"
         },
         {
@@ -514,6 +521,10 @@
                 }
             ],
             "description": "A polyfill for getallheaders.",
+            "support": {
+                "issues": "https://github.com/ralouphie/getallheaders/issues",
+                "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+            },
             "install-path": "../ralouphie/getallheaders"
         },
         {
@@ -603,6 +614,10 @@
             "keywords": [
                 "microframework"
             ],
+            "support": {
+                "issues": "https://github.com/silexphp/Silex/issues",
+                "source": "https://github.com/silexphp/Silex/tree/v2.3.0"
+            },
             "abandoned": "symfony/flex",
             "install-path": "../silex/silex"
         },