diff --git a/Makefile b/Makefile
index 5ef536cfc9942f2ad46fa2743dc8b2732727ad84..d87ebf7f7d9092eb6658456334b721384a4c93c4 100644
--- a/Makefile
+++ b/Makefile
@@ -6,11 +6,6 @@ SCRIPT_DEST := $(SCRIPT_SRC:src/%=$(DIST_DIR)/%)
 
 default: build
 
-clean:
-	git clean -fXd -e !src/config.json
-
-install: node_modules copy_lib copy_samples
-
 build: $(DIST_DIR)/index.html $(DIST_DIR)/styles/index.css $(SCRIPT_DEST)
 
 watch:
@@ -21,23 +16,6 @@ watch:
 		sleep 0.5; \
 	done
 
-serve:
-	node server
-
-# npm
-node_modules:
-	npm install
-
-# vendor lib
-copy_lib:
-	@node copy_lib.js
-
-# samples
-copy_samples: src/config.json
-
-src/config.json:
-	@cp -n src/config.sample.json src/config.json
-
 # pug
 $(DIST_DIR)/index.html: src/index.pug src/config.json $(wildcard src/*.pug src/*/*.pug)
 	@echo pug: $< ➜ $@
@@ -60,7 +38,7 @@ $(DIST_DIR)/index.staging.html: src/index.pug src/config.json $(wildcard src/*.p
 	node_modules/.bin/pug --pretty $< --out $(dir $@) -E staging.html -O src/config.json || touch $@
 
 # sass
-$(DIST_DIR)/styles/index.css: src/styles/index.scss $(wildcard src/*.scss src/*/*.scss)
+$(DIST_DIR)/styles/index.css: src/styles/_index.scss $(wildcard src/*.scss src/*/*.scss src/*/*/*.scss src/*/*/*/*.scss)
 	@echo sass: $< ➜ $@
 	@node_modules/.bin/node-sass $< $@ --source-map true --source-map-contents || touch $@ 
 
@@ -76,11 +54,6 @@ buildstaging: build
 buildprod: build
 	$(MAKE) $(DIST_DIR)/index.prod.html
 
-deploy: pull install build
-
-pull:
-	git pull
-
 sync: buildstaging
 	rsync -rv www/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ --exclude=www/index.html --exclude=www/index.prod.html --exclude=www/index.staging.html
 	rsync --no-R --no-implied-dirs www/index.staging.html staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/index.html
@@ -91,4 +64,4 @@ syncprod: buildprod
 	rsync --no-R --no-implied-dirs www/index.prod.html alpha@ssh-alpha.happy-dev.fr:~/www/index.html
 	rsync -v www/.htaccess alpha@ssh-alpha.happy-dev.fr:~/www/
 
-.PHONY: default install copy_lib copy_samples build watch serve clean sync syncprod buildstaging buildprod pull deploy
\ No newline at end of file
+.PHONY: default build watch sync syncprod buildstaging buildprod
\ No newline at end of file
diff --git a/README.md b/README.md
index 1489beb1436a75f4769efd7dc979403dc769f327..c368dc01a7eb3ff1e338b4724b97e227375cd779 100644
--- a/README.md
+++ b/README.md
@@ -1,74 +1,181 @@
-# HD app
+# SiB App
 
-HD app is the magic tool that allows the Happy Dev network to thrive in a decentralized way.
+SiB App is the magic tool that allows the Happy Dev network to thrive in a decentralized way.
 
-## Use cases
+## Getting Started
 
-Identified and scheduled use cases of the application includes (but are not limited to):
+These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
 
-- Listing of projects
-- Listing of members
-- Search of members by skills
-- Invoicing and billing
-- Project-scoped chat
-- Personal messaging
+### Prerequisites
 
-### Chat
+To install SiB App, you'll need to have:
 
-The repository of the SIB Chat component can be found here:
+- Python3 & Pip
+- NodeJS & NPM
+- A Prosody Server
+- (Optional) A SMTP Server
 
-- https://git.happy-dev.fr/startinblox/sib-chat
+### Installing
 
-It is based on XMPP as messaging protocol, Prosody as the server and ConverseJS as the client.
+#### At first, you'll need to deploy a `sib-manager` server, then configure it.
 
-### Project
+#### `sib-manager` installation or update
 
-The repository of the project listing components is the core and can be found here:
+```
+$ pip3 install -U sib-manager
+```
 
-- https://git.happy-dev.fr/startinblox/sib-core
+#### `sib-manager` deploy
 
-### Invoicing
+```
+$ sib startproject newserver -m djangoldp_project -m oidc_provider@django-oidc-provider -m djangoldp_circle -m djangoldp_joboffer -m djangoldp_profile -m djangoldp_skill -m djangoldp_account -m djangoldp_notification -m djangoldp_conversation
+$ sib initproject newserver
+```
 
-The invoicing component is still at an early stage. Its repository is here:
+We're using 
+- `djangoldp_project`,
+- `django-oidc-provider`,
+- `djangoldp_circle`,
+- `djangoldp_joboffer`,
+- `djangoldp_profile`,
+- `djangoldp_skill`,
+- `djangoldp_account`,
+- `djangoldp_notification`,
+- `djangoldp_conversation`
 
-- https://git.happy-dev.fr/startinblox/sib-invoicing 
+As dependencies, if you don't want them, just remove the `-m packagename`.
 
-## Architecture
+`sibserver` is the name of the folder that `sib-manager` will create, choose it wisely.
 
-Some general schema of the existing StartinBlox applications architecture can be found here:
+In addition to the `startproject` you can add :
 
-https://docs.google.com/presentation/d/1iCRGaJpFvZjhjIUnpsn6lRTJJ31ES6n94BNkJygzUwM/edit?usp=sharing
+- `--site-url "http://localhost:8000"`
+- `--production` to use postgresql instead of sqlite
+- `--db-host`, `--db-name`, `--db-user` and `--db-pass` are used to configure the database (mandatory with `--production`)
+- `--smtp-host`, `--smtp-user` and `--smtp-pass` are used to configure the SMTP (optional)
 
-## Installation
+#### `sibserver` configuration
 
-If you want to contribute or test the app, please follow those steps.
+You'll have to change some settings on the `sibserver` files.
 
-### Requirements
+- Add your server name to `ALLOWED_HOSTS`
+    - In `settings.py`, add your hostname on `ALLOWED_HOSTS`, eg:
+        ```
+        ALLOWED_HOSTS = ['api.myserver.com', 'localhost']
+        ```
+- Around line `96-97` of `settings.py` set your `PROSODY_HTTP_URL`, `JABBER_DEFAULT_HOST`, eg:
+    ```
+    PROSODY_HTTP_URL = 'https://jabber.happy-dev.fr'
+    JABBER_DEFAULT_HOST = 'happy-dev.fr'
+    ```
 
-You need to have both NodeJS and NPM installed and working.
+#### `sib-manager` launching
 
-### Installation process
+On the first `sibserver` folder
 
-clone then:
+```
+$ ./manage.py runserver
+```
 
-* `make install`
+#### Create a Client ID for Prosody & Client
 
-Edit the created `./src/config.pug` file to :
- - update the `client_id` [you generated on the server](https://git.happy-dev.fr/startinblox/applications/sib-app-data-server/blob/master/README.md#openidconnect-configuration) / OIDC provider
- - update the `sdn` / Server Domain Name to match yours
+- Go to `localhost:8000/admin/`
+- Login with previously created account.
+    - If needed you can create another admin account with `./manage.py createsuperadmin`
+- Add a `Clients` on `OpenID Connect Provider` section
+    - Name it as you wish
+    - `Client type`: `Public`
+    - `Response types`: `id_token token (Implicit Flow)`
+    - `Redirect URIs`:
+        ```
+        http://localhost:3000
+        http://127.0.0.1:3000
+        http://0.0.0.0:3000
+        http://localhost:8000
+        https://myserver.com
+        ```
+- Keep the `6-digits` newly create `Client ID` somewhere
 
-## Build
+#### Then, you'll have to install the client.
 
-A first build is mandatory for compiling the static assets.
+#### Clone this repository
 
-* `make build`
+```
+# With SSH
+$ git clone git@git.happy-dev.fr:startinblox/applications/sib-app.git
 
-or
+# Or with HTTPS
+$ git clone https://git.happy-dev.fr/startinblox/applications/sib-app.git
+```
 
-* `make watch`
+#### Install dependencies
 
-if you are working on something and want to benefit of the hot reload feature.
+```
+$ cd sib-app
+$ npm install
+```
 
-## Run server
+#### Configure `config.json`
 
-* `make serve`
+On the newly created `./src/config.json` change the `dev` configuration like this:
+```
+  "dev": {
+    "sdn": "http://api.myserver.com", # Or localhost:8000
+    "cdn": "https://cdn.happy-dev.fr",
+    "xmpp": "https://prosody.myserver.com/http-bind/",
+    "client_id": "000000" # <- Here goes your previously created Client ID
+  },
+```
+
+#### That's all! Now let's run it!
+
+```
+# For dev
+$ make watch
+$ npm run serve
+
+# Or for prod
+$ make build
+# Then publish the www folder
+
+```
+
+## Deployment
+
+Deployment will need a registered RSA Key on production servers.
+
+### On Alpha
+
+```
+$ make syncprod
+```
+
+### On Staging
+
+```
+$ make sync
+```
+
+## Built With
+
+* [Sib-Core](https://git.happy-dev.fr/startinblox/framework/sib-core/) - An awesome new framework!
+
+### Architecture
+
+Some general schema of the existing StartinBlox applications architecture can be found [here](https://docs.google.com/presentation/d/1iCRGaJpFvZjhjIUnpsn6lRTJJ31ES6n94BNkJygzUwM/edit?usp=sharing).
+
+<!---
+## Contributing
+
+We may add a `CONTRIBUTING.md`
+
+## License
+
+We may add a `LICENSE.md`
+
+## Acknowledgments
+
+* Maybe some thanks too
+* Inspiration
+* etc
+--->
\ No newline at end of file
diff --git a/copy_lib.js b/copy_lib.js
deleted file mode 100644
index 4cc69325d027bde0e037b037da819d910710b638..0000000000000000000000000000000000000000
--- a/copy_lib.js
+++ /dev/null
@@ -1,20 +0,0 @@
-const { basename, join, resolve } = require('path');
-const { readFileSync, lstatSync } = require('fs');
-const { exec } = require('child_process');
-
-const distDir = 'www/lib';
-
-const filelist = readFileSync('lib_list.txt', 'utf-8').split(/\r?\n/);
-
-exec(`mkdir -p ${distDir}`, () => {
-  filelist.forEach(path => {
-    path = resolve(path);
-    const filename = basename(path);
-    const dest = lstatSync(path).isDirectory()
-      ? distDir
-      : join(distDir, filename);
-    const cmd = `rsync -ru ${path} ${dest}`;
-    console.log(cmd);
-    exec(cmd);
-  });
-});
diff --git a/lib_list.txt b/lib_list.txt
index c3495ec77b188c3e59d48f4d87b74fe4c71fd20b..254e4ceb40d14f968c2443911689d1280aeab8e7 100644
--- a/lib_list.txt
+++ b/lib_list.txt
@@ -1,5 +1 @@
 node_modules/normalize.css/normalize.css
-node_modules/@webcomponents/webcomponentsjs
-node_modules/@webcomponents/html-imports/src/html-imports.js
-node_modules/oidc-client/dist/oidc-client.min.js
-node_modules/oidc-client/dist/oidc-client.js
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index ff61feb3763e24284cf58cd52ae76d4b38142c1f..21ee80756fb62ba2b7717e4f0afceeae6ecf842f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,21 +1,21 @@
 {
-  "name": "hd-app",
+  "name": "sib-app",
   "version": "1.0.0",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
     "@babel/cli": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.1.0.tgz",
-      "integrity": "sha512-+OdtGZcJNH92CnDqwaPxh7P7gddFyhoiHV3GBzgKpYbxIJlQ4WDEiC8m+AMcueYzlI+bXqrYlIU/Pp17NaC0hg==",
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.4.4.tgz",
+      "integrity": "sha512-XGr5YjQSjgTa6OzQZY57FAJsdeVSAKR/u/KA5exWIz66IKtv/zXtHy+fIZcMry/EgYegwuHE7vzGnrFhjdIAsQ==",
       "dev": true,
       "requires": {
-        "chokidar": "^2.0.3",
+        "chokidar": "^2.0.4",
         "commander": "^2.8.1",
         "convert-source-map": "^1.1.0",
         "fs-readdir-recursive": "^1.1.0",
         "glob": "^7.0.0",
-        "lodash": "^4.17.10",
+        "lodash": "^4.17.11",
         "mkdirp": "^0.5.1",
         "output-file-sync": "^2.0.0",
         "slash": "^2.0.0",
@@ -32,31 +32,31 @@
       }
     },
     "@babel/core": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.0.tgz",
-      "integrity": "sha512-9EWmD0cQAbcXSc+31RIoYgEHx3KQ2CCSMDBhnXrShWvo45TMw+3/55KVxlhkG53kw9tl87DqINgHDgFVhZJV/Q==",
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.4.tgz",
+      "integrity": "sha512-lQgGX3FPRgbz2SKmhMtYgJvVzGZrmjaF4apZ2bLwofAKiSjxU0drPh4S/VasyYXwaTs+A1gvQ45BN8SQJzHsQQ==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
-        "@babel/generator": "^7.0.0",
-        "@babel/helpers": "^7.1.0",
-        "@babel/parser": "^7.1.0",
-        "@babel/template": "^7.1.0",
-        "@babel/traverse": "^7.1.0",
-        "@babel/types": "^7.0.0",
+        "@babel/generator": "^7.4.4",
+        "@babel/helpers": "^7.4.4",
+        "@babel/parser": "^7.4.4",
+        "@babel/template": "^7.4.4",
+        "@babel/traverse": "^7.4.4",
+        "@babel/types": "^7.4.4",
         "convert-source-map": "^1.1.0",
-        "debug": "^3.1.0",
-        "json5": "^0.5.0",
-        "lodash": "^4.17.10",
+        "debug": "^4.1.0",
+        "json5": "^2.1.0",
+        "lodash": "^4.17.11",
         "resolve": "^1.3.2",
         "semver": "^5.4.1",
         "source-map": "^0.5.0"
       },
       "dependencies": {
         "debug": {
-          "version": "3.2.5",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz",
-          "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==",
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
           "dev": true,
           "requires": {
             "ms": "^2.1.1"
@@ -71,14 +71,14 @@
       }
     },
     "@babel/generator": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0.tgz",
-      "integrity": "sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q==",
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz",
+      "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.0.0",
+        "@babel/types": "^7.4.4",
         "jsesc": "^2.5.1",
-        "lodash": "^4.17.10",
+        "lodash": "^4.17.11",
         "source-map": "^0.5.0",
         "trim-right": "^1.0.1"
       }
@@ -104,23 +104,23 @@
       }
     },
     "@babel/helper-split-export-declaration": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-      "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
+      "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.0.0"
+        "@babel/types": "^7.4.4"
       }
     },
     "@babel/helpers": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.0.tgz",
-      "integrity": "sha512-V1jXUTNdTpBn37wqqN73U+eBpzlLHmxA4aDaghJBggmzly/FpIJMHXse9lgdzQQT4gs5jZ5NmYxOL8G3ROc29g==",
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz",
+      "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==",
       "dev": true,
       "requires": {
-        "@babel/template": "^7.1.0",
-        "@babel/traverse": "^7.1.0",
-        "@babel/types": "^7.0.0"
+        "@babel/template": "^7.4.4",
+        "@babel/traverse": "^7.4.4",
+        "@babel/types": "^7.4.4"
       }
     },
     "@babel/highlight": {
@@ -135,43 +135,43 @@
       }
     },
     "@babel/parser": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.0.tgz",
-      "integrity": "sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg==",
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz",
+      "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==",
       "dev": true
     },
     "@babel/template": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.0.tgz",
-      "integrity": "sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA==",
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz",
+      "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
-        "@babel/parser": "^7.1.0",
-        "@babel/types": "^7.0.0"
+        "@babel/parser": "^7.4.4",
+        "@babel/types": "^7.4.4"
       }
     },
     "@babel/traverse": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz",
-      "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==",
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz",
+      "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
-        "@babel/generator": "^7.0.0",
+        "@babel/generator": "^7.4.4",
         "@babel/helper-function-name": "^7.1.0",
-        "@babel/helper-split-export-declaration": "^7.0.0",
-        "@babel/parser": "^7.1.0",
-        "@babel/types": "^7.0.0",
-        "debug": "^3.1.0",
+        "@babel/helper-split-export-declaration": "^7.4.4",
+        "@babel/parser": "^7.4.4",
+        "@babel/types": "^7.4.4",
+        "debug": "^4.1.0",
         "globals": "^11.1.0",
-        "lodash": "^4.17.10"
+        "lodash": "^4.17.11"
       },
       "dependencies": {
         "debug": {
-          "version": "3.2.5",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz",
-          "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==",
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
           "dev": true,
           "requires": {
             "ms": "^2.1.1"
@@ -186,13 +186,13 @@
       }
     },
     "@babel/types": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz",
-      "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==",
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz",
+      "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==",
       "dev": true,
       "requires": {
         "esutils": "^2.0.2",
-        "lodash": "^4.17.10",
+        "lodash": "^4.17.11",
         "to-fast-properties": "^2.0.0"
       }
     },
@@ -211,16 +211,6 @@
         "@types/babel-types": "*"
       }
     },
-    "@webcomponents/html-imports": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/@webcomponents/html-imports/-/html-imports-1.2.0.tgz",
-      "integrity": "sha512-EIy8RqSfsoJ5Tk2wsfaSX4IKhXg8oYCq/xVEz8LEELXhv5tup/iZ/SInoz8SLtZGFP+vjUh2oRsgkUMhbrr0GQ=="
-    },
-    "@webcomponents/webcomponentsjs": {
-      "version": "1.2.7",
-      "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-1.2.7.tgz",
-      "integrity": "sha512-011DyXjpQoZ7f6oMCpYTYgrzsWJ7+0fEbt6Y8KcfZZa3ZdJ/ttoMgeH75SqHDe7aNdolfMhCvrSNNgh9wcsgpA=="
-    },
     "abbrev": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -228,13 +218,30 @@
       "dev": true
     },
     "accepts": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
-      "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+      "version": "1.3.7",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
       "dev": true,
       "requires": {
-        "mime-types": "~2.1.18",
-        "negotiator": "0.6.1"
+        "mime-types": "~2.1.24",
+        "negotiator": "0.6.2"
+      },
+      "dependencies": {
+        "mime-db": {
+          "version": "1.40.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+          "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
+          "dev": true
+        },
+        "mime-types": {
+          "version": "2.1.24",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+          "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+          "dev": true,
+          "requires": {
+            "mime-db": "1.40.0"
+          }
+        }
       }
     },
     "acorn": {
@@ -260,22 +267,16 @@
         }
       }
     },
-    "after": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
-      "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
-      "dev": true
-    },
     "ajv": {
-      "version": "5.5.2",
-      "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
-      "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+      "version": "6.10.0",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
+      "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
       "dev": true,
       "requires": {
-        "co": "^4.6.0",
-        "fast-deep-equal": "^1.0.0",
+        "fast-deep-equal": "^2.0.1",
         "fast-json-stable-stringify": "^2.0.0",
-        "json-schema-traverse": "^0.3.0"
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
       }
     },
     "align-text": {
@@ -330,6 +331,18 @@
       "requires": {
         "micromatch": "^3.1.4",
         "normalize-path": "^2.1.1"
+      },
+      "dependencies": {
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        }
       }
     },
     "aproba": {
@@ -352,19 +365,22 @@
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
       "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "arr-flatten": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
       "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "arr-union": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
       "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "array-find-index": {
       "version": "1.0.2",
@@ -382,13 +398,8 @@
       "version": "0.3.2",
       "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
       "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-      "dev": true
-    },
-    "arraybuffer.slice": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
-      "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "asap": {
       "version": "2.0.6",
@@ -415,25 +426,15 @@
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
       "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
-      "dev": true
-    },
-    "async": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
-      "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "async-each": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
-      "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
-      "dev": true
-    },
-    "async-each-series": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz",
-      "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=",
-      "dev": true
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+      "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+      "dev": true,
+      "optional": true
     },
     "async-foreach": {
       "version": "0.1.3",
@@ -441,12 +442,6 @@
       "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
       "dev": true
     },
-    "async-limiter": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
-      "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
-      "dev": true
-    },
     "asynckit": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -457,7 +452,8 @@
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
       "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "aws-sign2": {
       "version": "0.7.0",
@@ -471,39 +467,11 @@
       "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
       "dev": true
     },
-    "axios": {
-      "version": "0.17.1",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz",
-      "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=",
-      "dev": true,
-      "requires": {
-        "follow-redirects": "^1.2.5",
-        "is-buffer": "^1.1.5"
-      }
-    },
-    "babel-polyfill": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
-      "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
-      "optional": true,
-      "requires": {
-        "babel-runtime": "^6.26.0",
-        "core-js": "^2.5.0",
-        "regenerator-runtime": "^0.10.5"
-      },
-      "dependencies": {
-        "regenerator-runtime": {
-          "version": "0.10.5",
-          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
-          "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
-          "optional": true
-        }
-      }
-    },
     "babel-runtime": {
       "version": "6.26.0",
       "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
       "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+      "dev": true,
       "requires": {
         "core-js": "^2.4.0",
         "regenerator-runtime": "^0.11.0"
@@ -535,12 +503,6 @@
       "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
       "dev": true
     },
-    "backo2": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
-      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
-      "dev": true
-    },
     "balanced-match": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -552,6 +514,7 @@
       "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
       "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
       "dev": true,
+      "optional": true,
       "requires": {
         "cache-base": "^1.0.1",
         "class-utils": "^0.3.5",
@@ -567,6 +530,7 @@
           "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
           "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-descriptor": "^1.0.0"
           }
@@ -576,6 +540,7 @@
           "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
           "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^6.0.0"
           }
@@ -585,6 +550,7 @@
           "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
           "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^6.0.0"
           }
@@ -594,6 +560,7 @@
           "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
           "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-accessor-descriptor": "^1.0.0",
             "is-data-descriptor": "^1.0.0",
@@ -602,54 +569,21 @@
         }
       }
     },
-    "base64-arraybuffer": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
-      "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
-      "dev": true
-    },
-    "base64id": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
-      "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
-      "dev": true
-    },
-    "batch": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
-      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
-      "dev": true
-    },
     "bcrypt-pbkdf": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
       "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
       "dev": true,
-      "optional": true,
       "requires": {
         "tweetnacl": "^0.14.3"
       }
     },
-    "better-assert": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
-      "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
-      "dev": true,
-      "requires": {
-        "callsite": "1.0.0"
-      }
-    },
     "binary-extensions": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz",
-      "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==",
-      "dev": true
-    },
-    "blob": {
-      "version": "0.0.4",
-      "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
-      "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=",
-      "dev": true
+      "version": "1.13.1",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+      "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+      "dev": true,
+      "optional": true
     },
     "block-stream": {
       "version": "0.0.9",
@@ -661,73 +595,21 @@
       }
     },
     "body-parser": {
-      "version": "1.18.2",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
-      "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
+      "version": "1.18.3",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
+      "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
       "dev": true,
       "requires": {
         "bytes": "3.0.0",
         "content-type": "~1.0.4",
         "debug": "2.6.9",
-        "depd": "~1.1.1",
-        "http-errors": "~1.6.2",
-        "iconv-lite": "0.4.19",
+        "depd": "~1.1.2",
+        "http-errors": "~1.6.3",
+        "iconv-lite": "0.4.23",
         "on-finished": "~2.3.0",
-        "qs": "6.5.1",
-        "raw-body": "2.3.2",
-        "type-is": "~1.6.15"
-      },
-      "dependencies": {
-        "iconv-lite": {
-          "version": "0.4.19",
-          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
-          "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.5.1",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
-          "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
-          "dev": true
-        },
-        "raw-body": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
-          "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
-          "dev": true,
-          "requires": {
-            "bytes": "3.0.0",
-            "http-errors": "1.6.2",
-            "iconv-lite": "0.4.19",
-            "unpipe": "1.0.0"
-          },
-          "dependencies": {
-            "depd": {
-              "version": "1.1.1",
-              "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
-              "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
-              "dev": true
-            },
-            "http-errors": {
-              "version": "1.6.2",
-              "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
-              "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
-              "dev": true,
-              "requires": {
-                "depd": "1.1.1",
-                "inherits": "2.0.3",
-                "setprototypeof": "1.0.3",
-                "statuses": ">= 1.3.1 < 2"
-              }
-            }
-          }
-        },
-        "setprototypeof": {
-          "version": "1.0.3",
-          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
-          "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
-          "dev": true
-        }
+        "qs": "6.5.2",
+        "raw-body": "2.3.3",
+        "type-is": "~1.6.16"
       }
     },
     "brace-expansion": {
@@ -745,6 +627,7 @@
       "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
       "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
       "dev": true,
+      "optional": true,
       "requires": {
         "arr-flatten": "^1.1.0",
         "array-unique": "^0.3.2",
@@ -763,200 +646,13 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
         }
       }
     },
-    "browser-sync": {
-      "version": "2.24.7",
-      "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.24.7.tgz",
-      "integrity": "sha512-NqXek0cPNEayQm77VGnD+qrwcVBTKMIQ9bdP6IWDRUTU1Bk7tZeq5QR3OG5Rr36Rao1t+Vx1QnfolHvvr5qsTA==",
-      "dev": true,
-      "requires": {
-        "browser-sync-ui": "v1.0.1",
-        "bs-recipes": "1.3.4",
-        "chokidar": "1.7.0",
-        "connect": "3.6.6",
-        "connect-history-api-fallback": "^1.5.0",
-        "dev-ip": "^1.0.1",
-        "easy-extender": "^2.3.4",
-        "eazy-logger": "3.0.2",
-        "etag": "^1.8.1",
-        "fresh": "^0.5.2",
-        "fs-extra": "3.0.1",
-        "http-proxy": "1.15.2",
-        "immutable": "3.8.2",
-        "localtunnel": "1.9.0",
-        "micromatch": "2.3.11",
-        "opn": "5.3.0",
-        "portscanner": "2.1.1",
-        "qs": "6.2.3",
-        "raw-body": "^2.3.2",
-        "resp-modifier": "6.0.2",
-        "rx": "4.1.0",
-        "serve-index": "1.9.1",
-        "serve-static": "1.13.2",
-        "server-destroy": "1.0.1",
-        "socket.io": "2.1.1",
-        "ua-parser-js": "0.7.17",
-        "yargs": "6.4.0"
-      },
-      "dependencies": {
-        "anymatch": {
-          "version": "1.3.2",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
-          "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
-          "dev": true,
-          "requires": {
-            "micromatch": "^2.1.5",
-            "normalize-path": "^2.0.0"
-          }
-        },
-        "arr-diff": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
-          "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.0.1"
-          }
-        },
-        "array-unique": {
-          "version": "0.2.1",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
-          "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
-          "dev": true
-        },
-        "braces": {
-          "version": "1.8.5",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
-          "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
-          "dev": true,
-          "requires": {
-            "expand-range": "^1.8.1",
-            "preserve": "^0.2.0",
-            "repeat-element": "^1.1.2"
-          }
-        },
-        "chokidar": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
-          "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
-          "dev": true,
-          "requires": {
-            "anymatch": "^1.3.0",
-            "async-each": "^1.0.0",
-            "fsevents": "^1.0.0",
-            "glob-parent": "^2.0.0",
-            "inherits": "^2.0.1",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^2.0.0",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.0.0"
-          }
-        },
-        "expand-brackets": {
-          "version": "0.1.5",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
-          "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
-          "dev": true,
-          "requires": {
-            "is-posix-bracket": "^0.1.0"
-          }
-        },
-        "extglob": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
-          "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^1.0.0"
-          }
-        },
-        "glob-parent": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
-          "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
-          "dev": true,
-          "requires": {
-            "is-glob": "^2.0.0"
-          }
-        },
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^1.0.0"
-          }
-        },
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        },
-        "micromatch": {
-          "version": "2.3.11",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
-          "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^2.0.0",
-            "array-unique": "^0.2.1",
-            "braces": "^1.8.2",
-            "expand-brackets": "^0.1.4",
-            "extglob": "^0.3.1",
-            "filename-regex": "^2.0.0",
-            "is-extglob": "^1.0.0",
-            "is-glob": "^2.0.1",
-            "kind-of": "^3.0.2",
-            "normalize-path": "^2.0.1",
-            "object.omit": "^2.0.0",
-            "parse-glob": "^3.0.4",
-            "regex-cache": "^0.4.2"
-          }
-        }
-      }
-    },
-    "browser-sync-ui": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-1.0.1.tgz",
-      "integrity": "sha512-RIxmwVVcUFhRd1zxp7m2FfLnXHf59x4Gtj8HFwTA//3VgYI3AKkaQAuDL8KDJnE59XqCshxZa13JYuIWtZlKQg==",
-      "dev": true,
-      "requires": {
-        "async-each-series": "0.1.1",
-        "connect-history-api-fallback": "^1.1.0",
-        "immutable": "^3.7.6",
-        "server-destroy": "1.0.1",
-        "socket.io-client": "2.0.4",
-        "stream-throttle": "^0.1.3"
-      }
-    },
-    "bs-recipes": {
-      "version": "1.3.4",
-      "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz",
-      "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=",
-      "dev": true
-    },
-    "builtin-modules": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
-      "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
-      "dev": true
-    },
     "bytes": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
@@ -968,6 +664,7 @@
       "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
       "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
       "dev": true,
+      "optional": true,
       "requires": {
         "collection-visit": "^1.0.0",
         "component-emitter": "^1.2.1",
@@ -980,16 +677,10 @@
         "unset-value": "^1.0.0"
       }
     },
-    "callsite": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
-      "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
-      "dev": true
-    },
     "camelcase": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
-      "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+      "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
       "dev": true
     },
     "camelcase-keys": {
@@ -1000,14 +691,6 @@
       "requires": {
         "camelcase": "^2.0.0",
         "map-obj": "^1.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
-          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
-          "dev": true
-        }
       }
     },
     "caseless": {
@@ -1027,9 +710,9 @@
       }
     },
     "chalk": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
-      "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
       "dev": true,
       "requires": {
         "ansi-styles": "^3.2.1",
@@ -1047,25 +730,24 @@
       }
     },
     "chokidar": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
-      "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz",
+      "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==",
       "dev": true,
       "optional": true,
       "requires": {
         "anymatch": "^2.0.0",
-        "async-each": "^1.0.0",
-        "braces": "^2.3.0",
-        "fsevents": "^1.2.2",
+        "async-each": "^1.0.1",
+        "braces": "^2.3.2",
+        "fsevents": "^1.2.7",
         "glob-parent": "^3.1.0",
-        "inherits": "^2.0.1",
+        "inherits": "^2.0.3",
         "is-binary-path": "^1.0.0",
         "is-glob": "^4.0.0",
-        "lodash.debounce": "^4.0.8",
-        "normalize-path": "^2.1.1",
+        "normalize-path": "^3.0.0",
         "path-is-absolute": "^1.0.0",
-        "readdirp": "^2.0.0",
-        "upath": "^1.0.5"
+        "readdirp": "^2.2.1",
+        "upath": "^1.1.1"
       }
     },
     "class-utils": {
@@ -1073,6 +755,7 @@
       "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
       "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
       "dev": true,
+      "optional": true,
       "requires": {
         "arr-union": "^3.1.0",
         "define-property": "^0.2.5",
@@ -1085,6 +768,7 @@
           "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
           "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-descriptor": "^0.1.0"
           }
@@ -1119,12 +803,6 @@
         "wrap-ansi": "^2.0.0"
       }
     },
-    "co": {
-      "version": "4.6.0",
-      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
-      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
-      "dev": true
-    },
     "code-point-at": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@@ -1136,6 +814,7 @@
       "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
       "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
       "dev": true,
+      "optional": true,
       "requires": {
         "map-visit": "^1.0.0",
         "object-visit": "^1.0.0"
@@ -1157,9 +836,9 @@
       "dev": true
     },
     "combined-stream": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
-      "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
       "dev": true,
       "requires": {
         "delayed-stream": "~1.0.0"
@@ -1171,23 +850,12 @@
       "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==",
       "dev": true
     },
-    "component-bind": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
-      "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
-      "dev": true
-    },
     "component-emitter": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
-      "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
-      "dev": true
-    },
-    "component-inherit": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
-      "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
-      "dev": true
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+      "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+      "dev": true,
+      "optional": true
     },
     "concat-map": {
       "version": "0.0.1",
@@ -1195,24 +863,6 @@
       "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
       "dev": true
     },
-    "connect": {
-      "version": "3.6.6",
-      "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
-      "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "finalhandler": "1.1.0",
-        "parseurl": "~1.3.2",
-        "utils-merge": "1.0.1"
-      }
-    },
-    "connect-history-api-fallback": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
-      "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
-      "dev": true
-    },
     "console-control-strings": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
@@ -1268,12 +918,14 @@
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
       "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "core-js": {
       "version": "2.5.7",
       "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
-      "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
+      "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
+      "dev": true
     },
     "core-util-is": {
       "version": "1.0.2",
@@ -1328,13 +980,15 @@
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
       "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "define-property": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
       "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
       "dev": true,
+      "optional": true,
       "requires": {
         "is-descriptor": "^1.0.2",
         "isobject": "^3.0.1"
@@ -1345,6 +999,7 @@
           "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
           "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^6.0.0"
           }
@@ -1354,6 +1009,7 @@
           "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
           "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^6.0.0"
           }
@@ -1363,6 +1019,7 @@
           "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
           "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-accessor-descriptor": "^1.0.0",
             "is-data-descriptor": "^1.0.0",
@@ -1395,42 +1052,17 @@
       "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
       "dev": true
     },
-    "dev-ip": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz",
-      "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=",
-      "dev": true
-    },
     "doctypes": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
       "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=",
       "dev": true
     },
-    "easy-extender": {
-      "version": "2.3.4",
-      "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz",
-      "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.10"
-      }
-    },
-    "eazy-logger": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz",
-      "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=",
-      "dev": true,
-      "requires": {
-        "tfunk": "^3.0.1"
-      }
-    },
     "ecc-jsbn": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
       "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
       "dev": true,
-      "optional": true,
       "requires": {
         "jsbn": "~0.1.0",
         "safer-buffer": "^2.1.0"
@@ -1448,74 +1080,6 @@
       "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
       "dev": true
     },
-    "engine.io": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz",
-      "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.4",
-        "base64id": "1.0.0",
-        "cookie": "0.3.1",
-        "debug": "~3.1.0",
-        "engine.io-parser": "~2.1.0",
-        "ws": "~3.3.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        }
-      }
-    },
-    "engine.io-client": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz",
-      "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==",
-      "dev": true,
-      "requires": {
-        "component-emitter": "1.2.1",
-        "component-inherit": "0.0.3",
-        "debug": "~3.1.0",
-        "engine.io-parser": "~2.1.1",
-        "has-cors": "1.1.0",
-        "indexof": "0.0.1",
-        "parseqs": "0.0.5",
-        "parseuri": "0.0.5",
-        "ws": "~3.3.1",
-        "xmlhttprequest-ssl": "~1.5.4",
-        "yeast": "0.1.2"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        }
-      }
-    },
-    "engine.io-parser": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz",
-      "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==",
-      "dev": true,
-      "requires": {
-        "after": "0.8.2",
-        "arraybuffer.slice": "~0.0.7",
-        "base64-arraybuffer": "0.1.5",
-        "blob": "0.0.4",
-        "has-binary2": "~1.0.2"
-      }
-    },
     "error-ex": {
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -1549,17 +1113,12 @@
       "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
       "dev": true
     },
-    "eventemitter3": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
-      "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=",
-      "dev": true
-    },
     "expand-brackets": {
       "version": "2.1.4",
       "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
       "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
       "dev": true,
+      "optional": true,
       "requires": {
         "debug": "^2.3.3",
         "define-property": "^0.2.5",
@@ -1575,6 +1134,7 @@
           "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
           "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-descriptor": "^0.1.0"
           }
@@ -1584,72 +1144,22 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
         }
       }
     },
-    "expand-range": {
-      "version": "1.8.2",
-      "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
-      "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
-      "dev": true,
-      "requires": {
-        "fill-range": "^2.1.0"
-      },
-      "dependencies": {
-        "fill-range": {
-          "version": "2.2.4",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
-          "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
-          "dev": true,
-          "requires": {
-            "is-number": "^2.1.0",
-            "isobject": "^2.0.0",
-            "randomatic": "^3.0.0",
-            "repeat-element": "^1.1.2",
-            "repeat-string": "^1.5.2"
-          }
-        },
-        "is-number": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
-          "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          }
-        },
-        "isobject": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
-          "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
-          "dev": true,
-          "requires": {
-            "isarray": "1.0.0"
-          }
-        },
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
     "express": {
-      "version": "4.16.3",
-      "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz",
-      "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
+      "version": "4.16.4",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
+      "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
       "dev": true,
       "requires": {
         "accepts": "~1.3.5",
         "array-flatten": "1.1.1",
-        "body-parser": "1.18.2",
+        "body-parser": "1.18.3",
         "content-disposition": "0.5.2",
         "content-type": "~1.0.4",
         "cookie": "0.3.1",
@@ -1666,10 +1176,10 @@
         "on-finished": "~2.3.0",
         "parseurl": "~1.3.2",
         "path-to-regexp": "0.1.7",
-        "proxy-addr": "~2.0.3",
-        "qs": "6.5.1",
+        "proxy-addr": "~2.0.4",
+        "qs": "6.5.2",
         "range-parser": "~1.2.0",
-        "safe-buffer": "5.1.1",
+        "safe-buffer": "5.1.2",
         "send": "0.16.2",
         "serve-static": "1.13.2",
         "setprototypeof": "1.1.0",
@@ -1677,41 +1187,6 @@
         "type-is": "~1.6.16",
         "utils-merge": "1.0.1",
         "vary": "~1.1.2"
-      },
-      "dependencies": {
-        "finalhandler": {
-          "version": "1.1.1",
-          "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
-          "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
-          "dev": true,
-          "requires": {
-            "debug": "2.6.9",
-            "encodeurl": "~1.0.2",
-            "escape-html": "~1.0.3",
-            "on-finished": "~2.3.0",
-            "parseurl": "~1.3.2",
-            "statuses": "~1.4.0",
-            "unpipe": "~1.0.0"
-          }
-        },
-        "qs": {
-          "version": "6.5.1",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
-          "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
-          "dev": true
-        },
-        "safe-buffer": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
-          "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
-          "dev": true
-        },
-        "statuses": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
-          "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
-          "dev": true
-        }
       }
     },
     "extend": {
@@ -1725,6 +1200,7 @@
       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
       "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
       "dev": true,
+      "optional": true,
       "requires": {
         "assign-symbols": "^1.0.0",
         "is-extendable": "^1.0.1"
@@ -1735,6 +1211,7 @@
           "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
           "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-plain-object": "^2.0.4"
           }
@@ -1746,6 +1223,7 @@
       "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
       "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
       "dev": true,
+      "optional": true,
       "requires": {
         "array-unique": "^0.3.2",
         "define-property": "^1.0.0",
@@ -1762,6 +1240,7 @@
           "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
           "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-descriptor": "^1.0.0"
           }
@@ -1771,6 +1250,7 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
@@ -1780,6 +1260,7 @@
           "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
           "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^6.0.0"
           }
@@ -1789,6 +1270,7 @@
           "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
           "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^6.0.0"
           }
@@ -1798,6 +1280,7 @@
           "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
           "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-accessor-descriptor": "^1.0.0",
             "is-data-descriptor": "^1.0.0",
@@ -1813,9 +1296,9 @@
       "dev": true
     },
     "fast-deep-equal": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
-      "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+      "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
       "dev": true
     },
     "fast-json-stable-stringify": {
@@ -1824,17 +1307,12 @@
       "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
       "dev": true
     },
-    "filename-regex": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
-      "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
-      "dev": true
-    },
     "fill-range": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
       "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
       "dev": true,
+      "optional": true,
       "requires": {
         "extend-shallow": "^2.0.1",
         "is-number": "^3.0.0",
@@ -1847,6 +1325,7 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
@@ -1854,17 +1333,17 @@
       }
     },
     "finalhandler": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
-      "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
+      "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
       "dev": true,
       "requires": {
         "debug": "2.6.9",
-        "encodeurl": "~1.0.1",
+        "encodeurl": "~1.0.2",
         "escape-html": "~1.0.3",
         "on-finished": "~2.3.0",
         "parseurl": "~1.3.2",
-        "statuses": "~1.3.1",
+        "statuses": "~1.4.0",
         "unpipe": "~1.0.0"
       }
     },
@@ -1878,40 +1357,12 @@
         "pinkie-promise": "^2.0.0"
       }
     },
-    "follow-redirects": {
-      "version": "1.5.8",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz",
-      "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==",
-      "dev": true,
-      "requires": {
-        "debug": "=3.1.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        }
-      }
-    },
     "for-in": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
       "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
-      "dev": true
-    },
-    "for-own": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
-      "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
       "dev": true,
-      "requires": {
-        "for-in": "^1.0.1"
-      }
+      "optional": true
     },
     "forever-agent": {
       "version": "0.6.1",
@@ -1920,25 +1371,14 @@
       "dev": true
     },
     "form-data": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
-      "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
       "dev": true,
       "requires": {
         "asynckit": "^0.4.0",
-        "combined-stream": "1.0.6",
+        "combined-stream": "^1.0.6",
         "mime-types": "^2.1.12"
-      },
-      "dependencies": {
-        "combined-stream": {
-          "version": "1.0.6",
-          "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
-          "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
-          "dev": true,
-          "requires": {
-            "delayed-stream": "~1.0.0"
-          }
-        }
       }
     },
     "forwarded": {
@@ -1952,6 +1392,7 @@
       "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
       "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
       "dev": true,
+      "optional": true,
       "requires": {
         "map-cache": "^0.2.2"
       }
@@ -1962,17 +1403,6 @@
       "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
       "dev": true
     },
-    "fs-extra": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
-      "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "jsonfile": "^3.0.0",
-        "universalify": "^0.1.0"
-      }
-    },
     "fs-readdir-recursive": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
@@ -1986,14 +1416,14 @@
       "dev": true
     },
     "fsevents": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
-      "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
+      "version": "1.2.9",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+      "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
       "dev": true,
       "optional": true,
       "requires": {
-        "nan": "^2.9.2",
-        "node-pre-gyp": "^0.10.0"
+        "nan": "^2.12.1",
+        "node-pre-gyp": "^0.12.0"
       },
       "dependencies": {
         "abbrev": {
@@ -2015,7 +1445,7 @@
           "optional": true
         },
         "are-we-there-yet": {
-          "version": "1.1.4",
+          "version": "1.1.5",
           "bundled": true,
           "dev": true,
           "optional": true,
@@ -2041,7 +1471,7 @@
           }
         },
         "chownr": {
-          "version": "1.0.1",
+          "version": "1.1.1",
           "bundled": true,
           "dev": true,
           "optional": true
@@ -2071,16 +1501,16 @@
           "optional": true
         },
         "debug": {
-          "version": "2.6.9",
+          "version": "4.1.1",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "ms": "2.0.0"
+            "ms": "^2.1.1"
           }
         },
         "deep-extend": {
-          "version": "0.5.1",
+          "version": "0.6.0",
           "bundled": true,
           "dev": true,
           "optional": true
@@ -2129,7 +1559,7 @@
           }
         },
         "glob": {
-          "version": "7.1.2",
+          "version": "7.1.3",
           "bundled": true,
           "dev": true,
           "optional": true,
@@ -2149,12 +1579,12 @@
           "optional": true
         },
         "iconv-lite": {
-          "version": "0.4.21",
+          "version": "0.4.24",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "safer-buffer": "^2.1.0"
+            "safer-buffer": ">= 2.1.2 < 3"
           }
         },
         "ignore-walk": {
@@ -2219,17 +1649,17 @@
           "optional": true
         },
         "minipass": {
-          "version": "2.2.4",
+          "version": "2.3.5",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "safe-buffer": "^5.1.1",
+            "safe-buffer": "^5.1.2",
             "yallist": "^3.0.0"
           }
         },
         "minizlib": {
-          "version": "1.1.0",
+          "version": "1.2.1",
           "bundled": true,
           "dev": true,
           "optional": true,
@@ -2247,35 +1677,35 @@
           }
         },
         "ms": {
-          "version": "2.0.0",
+          "version": "2.1.1",
           "bundled": true,
           "dev": true,
           "optional": true
         },
         "needle": {
-          "version": "2.2.0",
+          "version": "2.3.0",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "debug": "^2.1.2",
+            "debug": "^4.1.0",
             "iconv-lite": "^0.4.4",
             "sax": "^1.2.4"
           }
         },
         "node-pre-gyp": {
-          "version": "0.10.0",
+          "version": "0.12.0",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
             "detect-libc": "^1.0.2",
             "mkdirp": "^0.5.1",
-            "needle": "^2.2.0",
+            "needle": "^2.2.1",
             "nopt": "^4.0.1",
             "npm-packlist": "^1.1.6",
             "npmlog": "^4.0.2",
-            "rc": "^1.1.7",
+            "rc": "^1.2.7",
             "rimraf": "^2.6.1",
             "semver": "^5.3.0",
             "tar": "^4"
@@ -2292,13 +1722,13 @@
           }
         },
         "npm-bundled": {
-          "version": "1.0.3",
+          "version": "1.0.6",
           "bundled": true,
           "dev": true,
           "optional": true
         },
         "npm-packlist": {
-          "version": "1.1.10",
+          "version": "1.4.1",
           "bundled": true,
           "dev": true,
           "optional": true,
@@ -2375,12 +1805,12 @@
           "optional": true
         },
         "rc": {
-          "version": "1.2.7",
+          "version": "1.2.8",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "deep-extend": "^0.5.1",
+            "deep-extend": "^0.6.0",
             "ini": "~1.3.0",
             "minimist": "^1.2.0",
             "strip-json-comments": "~2.0.1"
@@ -2410,16 +1840,16 @@
           }
         },
         "rimraf": {
-          "version": "2.6.2",
+          "version": "2.6.3",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "glob": "^7.0.5"
+            "glob": "^7.1.3"
           }
         },
         "safe-buffer": {
-          "version": "5.1.1",
+          "version": "5.1.2",
           "bundled": true,
           "dev": true,
           "optional": true
@@ -2437,7 +1867,7 @@
           "optional": true
         },
         "semver": {
-          "version": "5.5.0",
+          "version": "5.7.0",
           "bundled": true,
           "dev": true,
           "optional": true
@@ -2490,17 +1920,17 @@
           "optional": true
         },
         "tar": {
-          "version": "4.4.1",
+          "version": "4.4.8",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "chownr": "^1.0.1",
+            "chownr": "^1.1.1",
             "fs-minipass": "^1.2.5",
-            "minipass": "^2.2.4",
-            "minizlib": "^1.1.0",
+            "minipass": "^2.3.4",
+            "minizlib": "^1.1.1",
             "mkdirp": "^0.5.0",
-            "safe-buffer": "^5.1.1",
+            "safe-buffer": "^5.1.2",
             "yallist": "^3.0.2"
           }
         },
@@ -2511,12 +1941,12 @@
           "optional": true
         },
         "wide-align": {
-          "version": "1.1.2",
+          "version": "1.1.3",
           "bundled": true,
           "dev": true,
           "optional": true,
           "requires": {
-            "string-width": "^1.0.2"
+            "string-width": "^1.0.2 || 2"
           }
         },
         "wrappy": {
@@ -2526,7 +1956,7 @@
           "optional": true
         },
         "yallist": {
-          "version": "3.0.2",
+          "version": "3.0.3",
           "bundled": true,
           "dev": true,
           "optional": true
@@ -2592,7 +2022,8 @@
       "version": "2.0.6",
       "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
       "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "getpass": {
       "version": "0.1.7",
@@ -2608,49 +2039,13 @@
       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
       "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
       "dev": true,
-      "requires": {
-        "fs.realpath": "^1.0.0",
-        "inflight": "^1.0.4",
-        "inherits": "2",
-        "minimatch": "^3.0.4",
-        "once": "^1.3.0",
-        "path-is-absolute": "^1.0.0"
-      }
-    },
-    "glob-base": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
-      "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
-      "dev": true,
-      "requires": {
-        "glob-parent": "^2.0.0",
-        "is-glob": "^2.0.0"
-      },
-      "dependencies": {
-        "glob-parent": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
-          "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
-          "dev": true,
-          "requires": {
-            "is-glob": "^2.0.0"
-          }
-        },
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^1.0.0"
-          }
-        }
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
       }
     },
     "glob-parent": {
@@ -2677,9 +2072,9 @@
       }
     },
     "globals": {
-      "version": "11.7.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
-      "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==",
+      "version": "11.12.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
       "dev": true
     },
     "globule": {
@@ -2706,12 +2101,12 @@
       "dev": true
     },
     "har-validator": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
-      "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+      "version": "5.1.3",
+      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+      "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
       "dev": true,
       "requires": {
-        "ajv": "^5.1.0",
+        "ajv": "^6.5.5",
         "har-schema": "^2.0.0"
       }
     },
@@ -2733,29 +2128,6 @@
         "ansi-regex": "^2.0.0"
       }
     },
-    "has-binary2": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
-      "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
-      "dev": true,
-      "requires": {
-        "isarray": "2.0.1"
-      },
-      "dependencies": {
-        "isarray": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
-          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
-          "dev": true
-        }
-      }
-    },
-    "has-cors": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
-      "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
-      "dev": true
-    },
     "has-flag": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -2773,6 +2145,7 @@
       "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
       "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
       "dev": true,
+      "optional": true,
       "requires": {
         "get-value": "^2.0.6",
         "has-values": "^1.0.0",
@@ -2784,6 +2157,7 @@
       "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
       "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
       "dev": true,
+      "optional": true,
       "requires": {
         "is-number": "^3.0.0",
         "kind-of": "^4.0.0"
@@ -2794,6 +2168,7 @@
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
           "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }
@@ -2808,7 +2183,7 @@
     },
     "http-errors": {
       "version": "1.6.3",
-      "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
       "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
       "dev": true,
       "requires": {
@@ -2816,24 +2191,6 @@
         "inherits": "2.0.3",
         "setprototypeof": "1.1.0",
         "statuses": ">= 1.4.0 < 2"
-      },
-      "dependencies": {
-        "statuses": {
-          "version": "1.5.0",
-          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-          "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
-          "dev": true
-        }
-      }
-    },
-    "http-proxy": {
-      "version": "1.15.2",
-      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz",
-      "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=",
-      "dev": true,
-      "requires": {
-        "eventemitter3": "1.x.x",
-        "requires-port": "1.x.x"
       }
     },
     "http-signature": {
@@ -2856,12 +2213,6 @@
         "safer-buffer": ">= 2.1.2 < 3"
       }
     },
-    "immutable": {
-      "version": "3.8.2",
-      "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
-      "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=",
-      "dev": true
-    },
     "in-publish": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
@@ -2882,12 +2233,6 @@
         "repeating": "^2.0.0"
       }
     },
-    "indexof": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
-      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
-      "dev": true
-    },
     "inflight": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2911,9 +2256,9 @@
       "dev": true
     },
     "ipaddr.js": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
-      "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+      "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
       "dev": true
     },
     "is-accessor-descriptor": {
@@ -2921,6 +2266,7 @@
       "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
       "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
       "dev": true,
+      "optional": true,
       "requires": {
         "kind-of": "^3.0.2"
       },
@@ -2930,6 +2276,7 @@
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }
@@ -2947,6 +2294,7 @@
       "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
       "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
       "dev": true,
+      "optional": true,
       "requires": {
         "binary-extensions": "^1.0.0"
       }
@@ -2957,20 +2305,12 @@
       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
       "dev": true
     },
-    "is-builtin-module": {
-      "version": "1.0.0",
-      "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
-      "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
-      "dev": true,
-      "requires": {
-        "builtin-modules": "^1.0.0"
-      }
-    },
     "is-data-descriptor": {
       "version": "0.1.4",
       "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
       "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
       "dev": true,
+      "optional": true,
       "requires": {
         "kind-of": "^3.0.2"
       },
@@ -2980,6 +2320,7 @@
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }
@@ -2991,6 +2332,7 @@
       "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
       "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
       "dev": true,
+      "optional": true,
       "requires": {
         "is-accessor-descriptor": "^0.1.6",
         "is-data-descriptor": "^0.1.4",
@@ -3001,25 +2343,11 @@
           "version": "5.1.0",
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
           "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-          "dev": true
+          "dev": true,
+          "optional": true
         }
       }
     },
-    "is-dotfile": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
-      "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
-      "dev": true
-    },
-    "is-equal-shallow": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
-      "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
-      "dev": true,
-      "requires": {
-        "is-primitive": "^2.0.0"
-      }
-    },
     "is-expression": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
@@ -3042,7 +2370,8 @@
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
       "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "is-extglob": {
       "version": "2.1.1",
@@ -3070,9 +2399,9 @@
       }
     },
     "is-glob": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
-      "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+      "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
       "dev": true,
       "optional": true,
       "requires": {
@@ -3084,6 +2413,7 @@
       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
       "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
       "dev": true,
+      "optional": true,
       "requires": {
         "kind-of": "^3.0.2"
       },
@@ -3093,21 +2423,13 @@
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }
         }
       }
     },
-    "is-number-like": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz",
-      "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==",
-      "dev": true,
-      "requires": {
-        "lodash.isfinite": "^3.3.2"
-      }
-    },
     "is-plain-obj": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
@@ -3119,22 +2441,11 @@
       "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
       "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
       "dev": true,
+      "optional": true,
       "requires": {
         "isobject": "^3.0.1"
       }
     },
-    "is-posix-bracket": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
-      "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
-      "dev": true
-    },
-    "is-primitive": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
-      "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
-      "dev": true
-    },
     "is-promise": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
@@ -3166,13 +2477,8 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
       "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
-      "dev": true
-    },
-    "is-wsl": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
-      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "isarray": {
       "version": "1.0.0",
@@ -3190,7 +2496,8 @@
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
       "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "isstream": {
       "version": "0.1.2",
@@ -3199,9 +2506,9 @@
       "dev": true
     },
     "js-base64": {
-      "version": "2.4.9",
-      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
-      "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==",
+      "version": "2.5.1",
+      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
+      "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
       "dev": true
     },
     "js-stringify": {
@@ -3220,13 +2527,12 @@
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
       "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
-      "dev": true,
-      "optional": true
+      "dev": true
     },
     "jsesc": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
-      "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
       "dev": true
     },
     "json-schema": {
@@ -3236,9 +2542,9 @@
       "dev": true
     },
     "json-schema-traverse": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
-      "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
       "dev": true
     },
     "json-stringify-safe": {
@@ -3248,18 +2554,20 @@
       "dev": true
     },
     "json5": {
-      "version": "0.5.1",
-      "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
-      "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
-      "dev": true
-    },
-    "jsonfile": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
-      "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
+      "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
       "dev": true,
       "requires": {
-        "graceful-fs": "^4.1.6"
+        "minimist": "^1.2.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        }
       }
     },
     "jsprim": {
@@ -3274,11 +2582,6 @@
         "verror": "1.10.0"
       }
     },
-    "jsrsasign": {
-      "version": "8.0.12",
-      "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-8.0.12.tgz",
-      "integrity": "sha1-Iqu5ZW00owuVMENnIINeicLlwxY="
-    },
     "jstransformer": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
@@ -3293,7 +2596,8 @@
       "version": "6.0.2",
       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
       "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "lazy-cache": {
       "version": "1.0.4",
@@ -3310,15 +2614,9 @@
         "invert-kv": "^1.0.0"
       }
     },
-    "limiter": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.3.tgz",
-      "integrity": "sha512-zrycnIMsLw/3ZxTbW7HCez56rcFGecWTx5OZNplzcXUUmJLmoYArC6qdJzmAN5BWiNXGcpjhF9RQ1HSv5zebEw==",
-      "dev": true
-    },
     "load-json-file": {
       "version": "1.1.0",
-      "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
       "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
       "dev": true,
       "requires": {
@@ -3329,87 +2627,12 @@
         "strip-bom": "^2.0.0"
       }
     },
-    "localtunnel": {
-      "version": "1.9.0",
-      "resolved": "http://registry.npmjs.org/localtunnel/-/localtunnel-1.9.0.tgz",
-      "integrity": "sha512-wCIiIHJ8kKIcWkTQE3m1VRABvsH2ZuOkiOpZUofUCf6Q42v3VIZ+Q0YfX1Z4sYDRj0muiKL1bLvz1FeoxsPO0w==",
-      "dev": true,
-      "requires": {
-        "axios": "0.17.1",
-        "debug": "2.6.8",
-        "openurl": "1.1.1",
-        "yargs": "6.6.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.8",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
-          "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "yargs": {
-          "version": "6.6.0",
-          "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
-          "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^3.0.0",
-            "cliui": "^3.2.0",
-            "decamelize": "^1.1.1",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^1.4.0",
-            "read-pkg-up": "^1.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^1.0.2",
-            "which-module": "^1.0.0",
-            "y18n": "^3.2.1",
-            "yargs-parser": "^4.2.0"
-          }
-        }
-      }
-    },
     "lodash": {
       "version": "4.17.11",
       "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
       "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
       "dev": true
     },
-    "lodash.assign": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
-      "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
-      "dev": true
-    },
-    "lodash.clonedeep": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
-      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
-      "dev": true
-    },
-    "lodash.debounce": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
-      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
-      "dev": true,
-      "optional": true
-    },
-    "lodash.isfinite": {
-      "version": "3.3.2",
-      "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
-      "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=",
-      "dev": true
-    },
-    "lodash.mergewith": {
-      "version": "4.6.1",
-      "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
-      "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
-      "dev": true
-    },
     "longest": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
@@ -3427,9 +2650,9 @@
       }
     },
     "lru-cache": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
-      "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
       "dev": true,
       "requires": {
         "pseudomap": "^1.0.2",
@@ -3440,7 +2663,8 @@
       "version": "0.2.2",
       "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
       "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "map-obj": {
       "version": "1.0.1",
@@ -3453,16 +2677,11 @@
       "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
       "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
       "dev": true,
+      "optional": true,
       "requires": {
         "object-visit": "^1.0.0"
       }
     },
-    "math-random": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
-      "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
-      "dev": true
-    },
     "media-typer": {
       "version": "0.3.0",
       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -3489,7 +2708,7 @@
       "dependencies": {
         "minimist": {
           "version": "1.2.0",
-          "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
           "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
           "dev": true
         }
@@ -3512,6 +2731,7 @@
       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
       "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
       "dev": true,
+      "optional": true,
       "requires": {
         "arr-diff": "^4.0.0",
         "array-unique": "^0.3.2",
@@ -3569,6 +2789,7 @@
       "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
       "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
       "dev": true,
+      "optional": true,
       "requires": {
         "for-in": "^1.0.2",
         "is-extendable": "^1.0.1"
@@ -3579,6 +2800,7 @@
           "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
           "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-plain-object": "^2.0.4"
           }
@@ -3601,16 +2823,18 @@
       "dev": true
     },
     "nan": {
-      "version": "2.11.0",
-      "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz",
-      "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==",
-      "dev": true
+      "version": "2.13.2",
+      "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
+      "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
+      "dev": true,
+      "optional": true
     },
     "nanomatch": {
       "version": "1.2.13",
       "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
       "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
       "dev": true,
+      "optional": true,
       "requires": {
         "arr-diff": "^4.0.0",
         "array-unique": "^0.3.2",
@@ -3626,9 +2850,9 @@
       }
     },
     "negotiator": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
-      "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
       "dev": true
     },
     "node-gyp": {
@@ -3660,9 +2884,9 @@
       }
     },
     "node-sass": {
-      "version": "4.9.3",
-      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz",
-      "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==",
+      "version": "4.12.0",
+      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
+      "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
       "dev": true,
       "requires": {
         "async-foreach": "^0.1.3",
@@ -3672,15 +2896,13 @@
         "get-stdin": "^4.0.1",
         "glob": "^7.0.3",
         "in-publish": "^2.0.0",
-        "lodash.assign": "^4.2.0",
-        "lodash.clonedeep": "^4.3.2",
-        "lodash.mergewith": "^4.6.0",
+        "lodash": "^4.17.11",
         "meow": "^3.7.0",
         "mkdirp": "^0.5.1",
-        "nan": "^2.10.0",
+        "nan": "^2.13.2",
         "node-gyp": "^3.8.0",
         "npmlog": "^4.0.0",
-        "request": "2.87.0",
+        "request": "^2.88.0",
         "sass-graph": "^2.2.4",
         "stdout-stream": "^1.4.0",
         "true-case-path": "^1.0.2"
@@ -3694,7 +2916,7 @@
         },
         "chalk": {
           "version": "1.1.3",
-          "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
           "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
           "dev": true,
           "requires": {
@@ -3705,6 +2927,12 @@
             "supports-color": "^2.0.0"
           }
         },
+        "nan": {
+          "version": "2.13.2",
+          "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
+          "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
+          "dev": true
+        },
         "supports-color": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
@@ -3723,30 +2951,39 @@
       }
     },
     "normalize-package-data": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
-      "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+      "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
       "dev": true,
       "requires": {
         "hosted-git-info": "^2.1.4",
-        "is-builtin-module": "^1.0.0",
+        "resolve": "^1.10.0",
         "semver": "2 || 3 || 4 || 5",
         "validate-npm-package-license": "^3.0.1"
+      },
+      "dependencies": {
+        "resolve": {
+          "version": "1.10.1",
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
+          "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
+          "dev": true,
+          "requires": {
+            "path-parse": "^1.0.6"
+          }
+        }
       }
     },
     "normalize-path": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
-      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
       "dev": true,
-      "requires": {
-        "remove-trailing-separator": "^1.0.1"
-      }
+      "optional": true
     },
     "normalize.css": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.0.tgz",
-      "integrity": "sha512-iXcbM3NWr0XkNyfiSBsoPezi+0V92P9nj84yVV1/UZxRUrGczgX/X91KMAGM0omWLY2+2Q1gKD/XRn4gQRDB2A=="
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
+      "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
     },
     "npmlog": {
       "version": "4.1.2",
@@ -3767,9 +3004,9 @@
       "dev": true
     },
     "oauth-sign": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
-      "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
       "dev": true
     },
     "object-assign": {
@@ -3778,17 +3015,12 @@
       "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
       "dev": true
     },
-    "object-component": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
-      "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
-      "dev": true
-    },
     "object-copy": {
       "version": "0.1.0",
       "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
       "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
       "dev": true,
+      "optional": true,
       "requires": {
         "copy-descriptor": "^0.1.0",
         "define-property": "^0.2.5",
@@ -3800,6 +3032,7 @@
           "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
           "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-descriptor": "^0.1.0"
           }
@@ -3809,55 +3042,33 @@
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }
         }
       }
     },
-    "object-path": {
-      "version": "0.9.2",
-      "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz",
-      "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=",
-      "dev": true
-    },
     "object-visit": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
       "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
       "dev": true,
+      "optional": true,
       "requires": {
         "isobject": "^3.0.0"
       }
     },
-    "object.omit": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
-      "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
-      "dev": true,
-      "requires": {
-        "for-own": "^0.1.4",
-        "is-extendable": "^0.1.1"
-      }
-    },
     "object.pick": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
       "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
       "dev": true,
+      "optional": true,
       "requires": {
         "isobject": "^3.0.1"
       }
     },
-    "oidc-client": {
-      "version": "1.5.3-beta.1",
-      "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.5.3-beta.1.tgz",
-      "integrity": "sha512-p4EcEuMuVV2mwcH59BSNE/0zNalksELSpOp/r7oH4vGppIwsE1cHvXhHqc4hX7jpfrxU7wYsEZ74ECNXXnZB5g==",
-      "requires": {
-        "babel-polyfill": ">=6.9.1",
-        "jsrsasign": "^8.0.12"
-      }
-    },
     "on-finished": {
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -3876,21 +3087,6 @@
         "wrappy": "1"
       }
     },
-    "openurl": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz",
-      "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=",
-      "dev": true
-    },
-    "opn": {
-      "version": "5.3.0",
-      "resolved": "http://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
-      "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
-      "dev": true,
-      "requires": {
-        "is-wsl": "^1.1.0"
-      }
-    },
     "os-homedir": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
@@ -3899,7 +3095,7 @@
     },
     "os-locale": {
       "version": "1.4.0",
-      "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
       "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
       "dev": true,
       "requires": {
@@ -3933,35 +3129,6 @@
         "mkdirp": "^0.5.1"
       }
     },
-    "parse-glob": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
-      "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
-      "dev": true,
-      "requires": {
-        "glob-base": "^0.3.0",
-        "is-dotfile": "^1.0.0",
-        "is-extglob": "^1.0.0",
-        "is-glob": "^2.0.0"
-      },
-      "dependencies": {
-        "is-extglob": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^1.0.0"
-          }
-        }
-      }
-    },
     "parse-json": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
@@ -3971,35 +3138,18 @@
         "error-ex": "^1.2.0"
       }
     },
-    "parseqs": {
-      "version": "0.0.5",
-      "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
-      "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
-      "dev": true,
-      "requires": {
-        "better-assert": "~1.0.0"
-      }
-    },
-    "parseuri": {
-      "version": "0.0.5",
-      "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
-      "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
-      "dev": true,
-      "requires": {
-        "better-assert": "~1.0.0"
-      }
-    },
     "parseurl": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
-      "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
       "dev": true
     },
     "pascalcase": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
       "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "path-dirname": {
       "version": "1.0.2",
@@ -4073,27 +3223,12 @@
         "pinkie": "^2.0.0"
       }
     },
-    "portscanner": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz",
-      "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=",
-      "dev": true,
-      "requires": {
-        "async": "1.5.2",
-        "is-number-like": "^1.0.3"
-      }
-    },
     "posix-character-classes": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
       "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
-      "dev": true
-    },
-    "preserve": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
-      "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "process-nextick-args": {
       "version": "2.0.0",
@@ -4111,13 +3246,13 @@
       }
     },
     "proxy-addr": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
-      "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+      "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
       "dev": true,
       "requires": {
         "forwarded": "~0.1.2",
-        "ipaddr.js": "1.8.0"
+        "ipaddr.js": "1.9.0"
       }
     },
     "pseudomap": {
@@ -4126,6 +3261,12 @@
       "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
       "dev": true
     },
+    "psl": {
+      "version": "1.1.31",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
+      "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
+      "dev": true
+    },
     "pug": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.3.tgz",
@@ -4291,41 +3432,22 @@
       "integrity": "sha1-wA1cUSi6xYBr7BXSt+fNq+QlMfM=",
       "dev": true
     },
-    "punycode": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
-      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
-      "dev": true
-    },
-    "qs": {
-      "version": "6.2.3",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz",
-      "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=",
-      "dev": true
-    },
-    "randomatic": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
-      "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
-      "dev": true,
-      "requires": {
-        "is-number": "^4.0.0",
-        "kind-of": "^6.0.0",
-        "math-random": "^1.0.1"
-      },
-      "dependencies": {
-        "is-number": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
-          "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
-          "dev": true
-        }
-      }
+    "punycode": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+      "dev": true
+    },
+    "qs": {
+      "version": "6.5.2",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+      "dev": true
     },
     "range-parser": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
-      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
       "dev": true
     },
     "raw-body": {
@@ -4381,6 +3503,7 @@
       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
       "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
       "dev": true,
+      "optional": true,
       "requires": {
         "graceful-fs": "^4.1.11",
         "micromatch": "^3.1.10",
@@ -4400,22 +3523,15 @@
     "regenerator-runtime": {
       "version": "0.11.1",
       "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
-      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
-    },
-    "regex-cache": {
-      "version": "0.4.4",
-      "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
-      "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
-      "dev": true,
-      "requires": {
-        "is-equal-shallow": "^0.1.3"
-      }
+      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+      "dev": true
     },
     "regex-not": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
       "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
       "dev": true,
+      "optional": true,
       "requires": {
         "extend-shallow": "^3.0.2",
         "safe-regex": "^1.1.0"
@@ -4425,13 +3541,15 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
       "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "repeat-element": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
       "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "repeat-string": {
       "version": "1.6.1",
@@ -4449,39 +3567,31 @@
       }
     },
     "request": {
-      "version": "2.87.0",
-      "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
-      "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
+      "version": "2.88.0",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+      "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
       "dev": true,
       "requires": {
         "aws-sign2": "~0.7.0",
-        "aws4": "^1.6.0",
+        "aws4": "^1.8.0",
         "caseless": "~0.12.0",
-        "combined-stream": "~1.0.5",
-        "extend": "~3.0.1",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
         "forever-agent": "~0.6.1",
-        "form-data": "~2.3.1",
-        "har-validator": "~5.0.3",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.0",
         "http-signature": "~1.2.0",
         "is-typedarray": "~1.0.0",
         "isstream": "~0.1.2",
         "json-stringify-safe": "~5.0.1",
-        "mime-types": "~2.1.17",
-        "oauth-sign": "~0.8.2",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
         "performance-now": "^2.1.0",
-        "qs": "~6.5.1",
-        "safe-buffer": "^5.1.1",
-        "tough-cookie": "~2.3.3",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.4.3",
         "tunnel-agent": "^0.6.0",
-        "uuid": "^3.1.0"
-      },
-      "dependencies": {
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true
-        }
+        "uuid": "^3.3.2"
       }
     },
     "require-directory": {
@@ -4496,12 +3606,6 @@
       "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
       "dev": true
     },
-    "requires-port": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
-      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
-      "dev": true
-    },
     "resolve": {
       "version": "1.8.1",
       "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
@@ -4515,23 +3619,15 @@
       "version": "0.2.1",
       "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
       "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
-      "dev": true
-    },
-    "resp-modifier": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz",
-      "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=",
       "dev": true,
-      "requires": {
-        "debug": "^2.2.0",
-        "minimatch": "^3.0.2"
-      }
+      "optional": true
     },
     "ret": {
       "version": "0.1.15",
       "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
       "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "right-align": {
       "version": "0.1.3",
@@ -4543,20 +3639,14 @@
       }
     },
     "rimraf": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
-      "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+      "version": "2.6.3",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
       "dev": true,
       "requires": {
-        "glob": "^7.0.5"
+        "glob": "^7.1.3"
       }
     },
-    "rx": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
-      "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=",
-      "dev": true
-    },
     "safe-buffer": {
       "version": "5.1.2",
       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -4568,6 +3658,7 @@
       "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
       "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
       "dev": true,
+      "optional": true,
       "requires": {
         "ret": "~0.1.10"
       }
@@ -4588,38 +3679,6 @@
         "lodash": "^4.0.0",
         "scss-tokenizer": "^0.2.3",
         "yargs": "^7.0.0"
-      },
-      "dependencies": {
-        "yargs": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
-          "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^3.0.0",
-            "cliui": "^3.2.0",
-            "decamelize": "^1.1.1",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^1.4.0",
-            "read-pkg-up": "^1.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^1.0.2",
-            "which-module": "^1.0.0",
-            "y18n": "^3.2.1",
-            "yargs-parser": "^5.0.0"
-          }
-        },
-        "yargs-parser": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
-          "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^3.0.0"
-          }
-        }
       }
     },
     "scss-tokenizer": {
@@ -4668,29 +3727,6 @@
         "on-finished": "~2.3.0",
         "range-parser": "~1.2.0",
         "statuses": "~1.4.0"
-      },
-      "dependencies": {
-        "statuses": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
-          "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
-          "dev": true
-        }
-      }
-    },
-    "serve-index": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
-      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.4",
-        "batch": "0.6.1",
-        "debug": "2.6.9",
-        "escape-html": "~1.0.3",
-        "http-errors": "~1.6.2",
-        "mime-types": "~2.1.17",
-        "parseurl": "~1.3.2"
       }
     },
     "serve-static": {
@@ -4705,12 +3741,6 @@
         "send": "0.16.2"
       }
     },
-    "server-destroy": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
-      "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=",
-      "dev": true
-    },
     "set-blocking": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
@@ -4722,6 +3752,7 @@
       "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
       "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
       "dev": true,
+      "optional": true,
       "requires": {
         "extend-shallow": "^2.0.1",
         "is-extendable": "^0.1.1",
@@ -4734,6 +3765,7 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
@@ -4752,11 +3784,6 @@
       "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
       "dev": true
     },
-    "simple-line-icons": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/simple-line-icons/-/simple-line-icons-2.4.1.tgz",
-      "integrity": "sha1-t1vFoNh+UwkowszaVzUnS7JW8jQ="
-    },
     "slash": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
@@ -4768,6 +3795,7 @@
       "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
       "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
       "dev": true,
+      "optional": true,
       "requires": {
         "base": "^0.11.1",
         "debug": "^2.2.0",
@@ -4784,6 +3812,7 @@
           "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
           "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-descriptor": "^0.1.0"
           }
@@ -4793,6 +3822,7 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
@@ -4804,6 +3834,7 @@
       "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
       "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
       "dev": true,
+      "optional": true,
       "requires": {
         "define-property": "^1.0.0",
         "isobject": "^3.0.0",
@@ -4815,6 +3846,7 @@
           "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
           "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-descriptor": "^1.0.0"
           }
@@ -4824,6 +3856,7 @@
           "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
           "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^6.0.0"
           }
@@ -4833,6 +3866,7 @@
           "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
           "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^6.0.0"
           }
@@ -4842,6 +3876,7 @@
           "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
           "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-accessor-descriptor": "^1.0.0",
             "is-data-descriptor": "^1.0.0",
@@ -4855,6 +3890,7 @@
       "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
       "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
       "dev": true,
+      "optional": true,
       "requires": {
         "kind-of": "^3.2.0"
       },
@@ -4864,151 +3900,13 @@
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }
         }
       }
     },
-    "socket.io": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
-      "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
-      "dev": true,
-      "requires": {
-        "debug": "~3.1.0",
-        "engine.io": "~3.2.0",
-        "has-binary2": "~1.0.2",
-        "socket.io-adapter": "~1.1.0",
-        "socket.io-client": "2.1.1",
-        "socket.io-parser": "~3.2.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "engine.io-client": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
-          "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
-          "dev": true,
-          "requires": {
-            "component-emitter": "1.2.1",
-            "component-inherit": "0.0.3",
-            "debug": "~3.1.0",
-            "engine.io-parser": "~2.1.1",
-            "has-cors": "1.1.0",
-            "indexof": "0.0.1",
-            "parseqs": "0.0.5",
-            "parseuri": "0.0.5",
-            "ws": "~3.3.1",
-            "xmlhttprequest-ssl": "~1.5.4",
-            "yeast": "0.1.2"
-          }
-        },
-        "isarray": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
-          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
-          "dev": true
-        },
-        "socket.io-client": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
-          "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
-          "dev": true,
-          "requires": {
-            "backo2": "1.0.2",
-            "base64-arraybuffer": "0.1.5",
-            "component-bind": "1.0.0",
-            "component-emitter": "1.2.1",
-            "debug": "~3.1.0",
-            "engine.io-client": "~3.2.0",
-            "has-binary2": "~1.0.2",
-            "has-cors": "1.1.0",
-            "indexof": "0.0.1",
-            "object-component": "0.0.3",
-            "parseqs": "0.0.5",
-            "parseuri": "0.0.5",
-            "socket.io-parser": "~3.2.0",
-            "to-array": "0.1.4"
-          }
-        },
-        "socket.io-parser": {
-          "version": "3.2.0",
-          "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
-          "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
-          "dev": true,
-          "requires": {
-            "component-emitter": "1.2.1",
-            "debug": "~3.1.0",
-            "isarray": "2.0.1"
-          }
-        }
-      }
-    },
-    "socket.io-adapter": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
-      "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=",
-      "dev": true
-    },
-    "socket.io-client": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz",
-      "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=",
-      "dev": true,
-      "requires": {
-        "backo2": "1.0.2",
-        "base64-arraybuffer": "0.1.5",
-        "component-bind": "1.0.0",
-        "component-emitter": "1.2.1",
-        "debug": "~2.6.4",
-        "engine.io-client": "~3.1.0",
-        "has-cors": "1.1.0",
-        "indexof": "0.0.1",
-        "object-component": "0.0.3",
-        "parseqs": "0.0.5",
-        "parseuri": "0.0.5",
-        "socket.io-parser": "~3.1.1",
-        "to-array": "0.1.4"
-      }
-    },
-    "socket.io-parser": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz",
-      "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==",
-      "dev": true,
-      "requires": {
-        "component-emitter": "1.2.1",
-        "debug": "~3.1.0",
-        "has-binary2": "~1.0.2",
-        "isarray": "2.0.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "isarray": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
-          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
-          "dev": true
-        }
-      }
-    },
     "source-map": {
       "version": "0.5.7",
       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -5020,6 +3918,7 @@
       "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
       "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
       "dev": true,
+      "optional": true,
       "requires": {
         "atob": "^2.1.1",
         "decode-uri-component": "^0.2.0",
@@ -5032,12 +3931,13 @@
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
       "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "spdx-correct": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.1.tgz",
-      "integrity": "sha512-hxSPZbRZvSDuOvADntOElzJpenIR7wXJkuoUcUtS0erbgt2fgeaoPIYretfKpslMhfFDY4k0MZ2F5CUzhBsSvQ==",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+      "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
       "dev": true,
       "requires": {
         "spdx-expression-parse": "^3.0.0",
@@ -5045,9 +3945,9 @@
       }
     },
     "spdx-exceptions": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
-      "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+      "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
       "dev": true
     },
     "spdx-expression-parse": {
@@ -5061,9 +3961,9 @@
       }
     },
     "spdx-license-ids": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz",
-      "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==",
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz",
+      "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==",
       "dev": true
     },
     "split-string": {
@@ -5071,14 +3971,15 @@
       "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
       "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
       "dev": true,
+      "optional": true,
       "requires": {
         "extend-shallow": "^3.0.0"
       }
     },
     "sshpk": {
-      "version": "1.14.2",
-      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
-      "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
+      "version": "1.16.1",
+      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+      "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
       "dev": true,
       "requires": {
         "asn1": "~0.2.3",
@@ -5097,6 +3998,7 @@
       "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
       "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
       "dev": true,
+      "optional": true,
       "requires": {
         "define-property": "^0.2.5",
         "object-copy": "^0.1.0"
@@ -5107,6 +4009,7 @@
           "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
           "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-descriptor": "^0.1.0"
           }
@@ -5114,9 +4017,9 @@
       }
     },
     "statuses": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
-      "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+      "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
       "dev": true
     },
     "stdout-stream": {
@@ -5128,16 +4031,6 @@
         "readable-stream": "^2.0.1"
       }
     },
-    "stream-throttle": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz",
-      "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=",
-      "dev": true,
-      "requires": {
-        "commander": "^2.2.0",
-        "limiter": "^1.0.5"
-      }
-    },
     "string-width": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -5205,49 +4098,6 @@
         "inherits": "2"
       }
     },
-    "tfunk": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz",
-      "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=",
-      "dev": true,
-      "requires": {
-        "chalk": "^1.1.1",
-        "object-path": "^0.9.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "to-array": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
-      "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
-      "dev": true
-    },
     "to-fast-properties": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -5259,6 +4109,7 @@
       "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
       "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
       "dev": true,
+      "optional": true,
       "requires": {
         "kind-of": "^3.0.2"
       },
@@ -5268,6 +4119,7 @@
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }
@@ -5279,6 +4131,7 @@
       "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
       "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
       "dev": true,
+      "optional": true,
       "requires": {
         "define-property": "^2.0.2",
         "extend-shallow": "^3.0.2",
@@ -5291,6 +4144,7 @@
       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
       "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
       "dev": true,
+      "optional": true,
       "requires": {
         "is-number": "^3.0.0",
         "repeat-string": "^1.6.1"
@@ -5303,12 +4157,21 @@
       "dev": true
     },
     "tough-cookie": {
-      "version": "2.3.4",
-      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
-      "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+      "version": "2.4.3",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+      "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
       "dev": true,
       "requires": {
+        "psl": "^1.1.24",
         "punycode": "^1.4.1"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+          "dev": true
+        }
       }
     },
     "trim-newlines": {
@@ -5345,25 +4208,35 @@
       "version": "0.14.5",
       "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
       "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
-      "dev": true,
-      "optional": true
+      "dev": true
     },
     "type-is": {
-      "version": "1.6.16",
-      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
-      "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
+      "version": "1.6.18",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
       "dev": true,
       "requires": {
         "media-typer": "0.3.0",
-        "mime-types": "~2.1.18"
+        "mime-types": "~2.1.24"
+      },
+      "dependencies": {
+        "mime-db": {
+          "version": "1.40.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+          "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
+          "dev": true
+        },
+        "mime-types": {
+          "version": "2.1.24",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+          "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+          "dev": true,
+          "requires": {
+            "mime-db": "1.40.0"
+          }
+        }
       }
     },
-    "ua-parser-js": {
-      "version": "0.7.17",
-      "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz",
-      "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==",
-      "dev": true
-    },
     "uglify-js": {
       "version": "2.8.29",
       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
@@ -5419,17 +4292,12 @@
       "dev": true,
       "optional": true
     },
-    "ultron": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
-      "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
-      "dev": true
-    },
     "union-value": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
       "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
       "dev": true,
+      "optional": true,
       "requires": {
         "arr-union": "^3.1.0",
         "get-value": "^2.0.6",
@@ -5442,6 +4310,7 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
@@ -5451,6 +4320,7 @@
           "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
           "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
           "dev": true,
+          "optional": true,
           "requires": {
             "extend-shallow": "^2.0.1",
             "is-extendable": "^0.1.1",
@@ -5460,12 +4330,6 @@
         }
       }
     },
-    "universalify": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
-      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
-      "dev": true
-    },
     "unpipe": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -5477,6 +4341,7 @@
       "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
       "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
       "dev": true,
+      "optional": true,
       "requires": {
         "has-value": "^0.3.1",
         "isobject": "^3.0.0"
@@ -5487,6 +4352,7 @@
           "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
           "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "get-value": "^2.0.3",
             "has-values": "^0.1.4",
@@ -5498,6 +4364,7 @@
               "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
               "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
               "dev": true,
+              "optional": true,
               "requires": {
                 "isarray": "1.0.0"
               }
@@ -5508,28 +4375,40 @@
           "version": "0.1.4",
           "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
           "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
-          "dev": true
+          "dev": true,
+          "optional": true
         }
       }
     },
     "upath": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
-      "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
+      "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
       "dev": true,
       "optional": true
     },
+    "uri-js": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+      "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+      "dev": true,
+      "requires": {
+        "punycode": "^2.1.0"
+      }
+    },
     "urix": {
       "version": "0.1.0",
       "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
       "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "use": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
       "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "util-deprecate": {
       "version": "1.0.2",
@@ -5606,12 +4485,6 @@
         "string-width": "^1.0.2 || 2"
       }
     },
-    "window-size": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
-      "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=",
-      "dev": true
-    },
     "with": {
       "version": "5.1.1",
       "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz",
@@ -5630,7 +4503,7 @@
     },
     "wrap-ansi": {
       "version": "2.1.0",
-      "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
       "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
       "dev": true,
       "requires": {
@@ -5644,23 +4517,6 @@
       "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
       "dev": true
     },
-    "ws": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
-      "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
-      "dev": true,
-      "requires": {
-        "async-limiter": "~1.0.0",
-        "safe-buffer": "~5.1.0",
-        "ultron": "~1.1.0"
-      }
-    },
-    "xmlhttprequest-ssl": {
-      "version": "1.5.5",
-      "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
-      "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
-      "dev": true
-    },
     "y18n": {
       "version": "3.2.1",
       "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
@@ -5674,9 +4530,9 @@
       "dev": true
     },
     "yargs": {
-      "version": "6.4.0",
-      "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz",
-      "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=",
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+      "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
       "dev": true,
       "requires": {
         "camelcase": "^3.0.0",
@@ -5690,25 +4546,34 @@
         "set-blocking": "^2.0.0",
         "string-width": "^1.0.2",
         "which-module": "^1.0.0",
-        "window-size": "^0.2.0",
         "y18n": "^3.2.1",
-        "yargs-parser": "^4.1.0"
+        "yargs-parser": "^5.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+          "dev": true
+        }
       }
     },
     "yargs-parser": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
-      "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+      "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
       "dev": true,
       "requires": {
         "camelcase": "^3.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+          "dev": true
+        }
       }
-    },
-    "yeast": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
-      "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
-      "dev": true
     }
   }
 }
diff --git a/package.json b/package.json
index 9d65ac5d4ae5516470ce042b873a17cc57da9f8a..637731c00fc479faa1b6d4a16e321c052be1319d 100644
--- a/package.json
+++ b/package.json
@@ -1,21 +1,20 @@
 {
-  "name": "hd-app",
+  "name": "sib-app",
   "version": "1.0.0",
-  "license": "ISC",
+  "license": "MIT",
+  "scripts": {
+    "serve": "node server.js",
+    "postinstall": "node postinstall.js"
+  },
   "devDependencies": {
-    "@babel/core": "^7.1.0",
-    "@babel/cli": "^7.1.0",
-    "node-sass": "^4.9.3",
+    "@babel/core": "^7.4.4",
+    "@babel/cli": "^7.4.4",
+    "node-sass": "^4.12.0",
     "pug-cli": "^1.0.0-alpha6",
-    "browser-sync": "^2.24.7",
-    "express": "^4.16.3"
+    "express": "^4.16.4"
   },
   "dependencies": {
-    "@webcomponents/html-imports": "^1.2.0",
-    "@webcomponents/webcomponentsjs": "^1.2.7",
     "include-media": "^1.4.9",
-    "normalize.css": "^8.0.0",
-    "oidc-client": "^1.5.3-beta.1",
-    "simple-line-icons": "^2.4.1"
+    "normalize.css": "^8.0.1"
   }
 }
diff --git a/postinstall.js b/postinstall.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff2fe590b0f6bdd25ce18cb41c3fa8977b1759c7
--- /dev/null
+++ b/postinstall.js
@@ -0,0 +1,8 @@
+const fs = require('fs');
+const { exec } = require('child_process');
+
+if (!fs.existsSync('src/config.json')) {
+  const cmd = `rsync -ru src/config.sample.json src/config.json`;
+  console.log(cmd);
+  exec(cmd);
+}
\ No newline at end of file
diff --git a/server.js b/server.js
index 7b0f15646c86abf3e02456c5f4f0665a4ea6ed1a..f525bc34e44b1ea44d0c7039c1c5a2cc1f2d6472 100644
--- a/server.js
+++ b/server.js
@@ -1,5 +1,4 @@
-const port = 9000;
-const browserSyncPort = 3000;
+const port = 3000;
 const distPath = 'www';
 
 // express server
@@ -8,19 +7,5 @@ const express = require('express');
 const app = express();
 app
   .use(express.static(distPath))
-  // .use('/src', express.static(join(__dirname, 'src')))
-  .get(/^[^.]*$/, (req, rep) =>
-    rep.sendFile(join(__dirname, distPath, '/index.html')),
-  )
+  .get(/^[^.]*$/, (req, rep) => rep.sendFile(join(__dirname, distPath, '/index.html')))
   .listen(port);
-
-// browser sync
-const bs = require('browser-sync').create();
-bs.init({
-  files: [distPath + '/**/*'],
-  proxy: `http://localhost:${port}`,
-  open: false,
-  notify: false,
-  port: browserSyncPort
-  // tunnel: true,
-});
diff --git a/src/dependencies.pug b/src/dependencies.pug
index 102a0c9c7ee2140ceae4895d0eadd2c69aa9a6f5..f1c82fd2c7e77b31140050df7f55e79665d6b2bc 100644
--- a/src/dependencies.pug
+++ b/src/dependencies.pug
@@ -1,32 +1,24 @@
-// Scripts
-//- script(src="https://unpkg.com/@webcomponents/webcomponentsjs@1.2.7/webcomponents-loader.js")
-//script(src="/lib/webcomponentsjs/webcomponents-loader.js")
-//- script(src="lib/html-imports.js")
-
 script(type="module" src="https://unpkg.com/@startinblox/oidc@0.6.0")
-
 script(src="/scripts/index.js")
 
-// Stylesheets
-link(rel='stylesheet', href='/lib/normalize.css')
+//- Stylesheets
 link(rel='stylesheet', href='/styles/index.css')
 link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,400i,600,700&amp;subset=latin-ext')
 link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i')
 
-// Web components
-
 //- local
-//script(type="module" src="/lib/sib-core/sib-display.js")
-//script(type="module" src="/lib/sib-router/sib-router.js")
-//script(type="module" src="/lib/sib-core/sib-form.js")
-
-//link(rel='import', href='/lib/sib-chat/sib-chat.html')
-
-//- cdn
+//- script(type="module" src="/lib/sib-core/src/index.js")
+//- script(type="module" src="/lib/sib-router/src/index.js")
+//- script(type="module" src="/lib/sib-chat/sib-chat.js")
+//- script(type="module" src="/lib/sib-notifications/sib-notifications.js")
+//- script(type="module" src="/lib/sib-conversation/sib-conversation.js")
+//- script(type="module" src="/lib/sib-directory/sib-directory.js")
+
+//- CDN
 script(type="module" src="https://unpkg.com/@startinblox/core@0.7")
 script(type="module" src="https://unpkg.com/@startinblox/router@0.7.2")
 script(type="module" src="https://unpkg.com/@startinblox/component-chat@0.1.7")
 script(type="module" src="https://unpkg.com/@startinblox/component-notifications@0.1.12")
 script(type="module" src="https://unpkg.com/@startinblox/component-conversation@0.2.1")
-script(type="module" src="https://unpkg.com/@startinblox/component-directory@0.1.11")
+script(type="module" src="https://unpkg.com/@startinblox/component-directory@0.1.15")
 
diff --git a/src/get_config.pug b/src/get_config.pug
index befcb19ac4dbca463fe625ac3efc5defc6fb6830..5a04ca785b9572bbd2e96358ee936022e2193197 100644
--- a/src/get_config.pug
+++ b/src/get_config.pug
@@ -1,6 +1,5 @@
-- var __env = locals[process.env.ENV]
-
 -
+  var __env = locals[process.env.ENV]
   for(k in __env){
     eval(`var ${k} = __env[${JSON.stringify(k)}]`);
   }
\ No newline at end of file
diff --git a/src/header.pug b/src/header.pug
index 6aced934afa9b3aa754c0d2deabb754872ca8c83..9099c889b83161d883999b6b849d9739144997c7 100644
--- a/src/header.pug
+++ b/src/header.pug
@@ -1,4 +1,3 @@
-#button-toggle
 #logo
   img(src="/images/logo.png" width=111 height=32)
 
diff --git a/src/index.pug b/src/index.pug
index eb5b1eea59d56ad2eab34b14c92b4c266f2e47a5..0a96eec1a60731b8ab85faf71b7ccaec6613e610 100644
--- a/src/index.pug
+++ b/src/index.pug
@@ -9,33 +9,33 @@ html(lang="en")
     link(rel="icon" type="image/png" href="/images/favicon.png")
     include dependencies.pug
   body
-    div.layer
-      header#header.row(role='banner')
-        include header.pug
-      .content.row
-        include menu-left.pug
-        
-        main#mainContainer
-          //- #dashboard(hidden)
-            include page-dashboard.pug
-          #members(hidden)
-            include page-members.pug
-          #member-chat(hidden)
-            include page-member-chat.pug
-          #job-offers(hidden)
-            include page-job-offers.pug
-          #job-offer-create(hidden)
-            include page-job-offer-create.pug
-          #project(hidden)
-            include page-project.pug
-          #user-profile(hidden)
-          #user-settings(hidden)
-          #user-admin(hidden)
-          //- #client-creation(hidden)
-            include page-client-creation.pug
-          //-#groups(hidden)
-            include page-groups.pug
-          #circle(hidden)
-            include page-group.pug
-          //- #search(hidden)
-            include page-search.pug
+    header#header(role='banner')
+      include header.pug
+    main
+      include menu-left.pug
+      div#viewport
+
+        #members(hidden).no-sidebar
+          include page-members-directory.pug
+
+        #job-offers(hidden).no-sidebar
+          include page-job-offers.pug
+
+        #job-offer-create(hidden).no-sidebar
+          sib-link(class="backlink", next="job-offers") Back
+          include page-job-offer-create.pug
+
+        #project(hidden).with-sidebar
+          include page-project.pug
+
+        #circle(hidden).with-sidebar
+          include page-circle.pug
+
+        #member-chat(hidden).with-sidebar
+          include page-member-chat.pug
+
+        #user-profile(hidden)
+
+        #user-settings(hidden)
+
+        #user-admin(hidden)
diff --git a/src/menu-left.pug b/src/menu-left.pug
index cb22b65856f634fad87ba00813d897dcb7dd6c46..beb5cfcde0c2f369b36d57782b0faa12a65c6316 100644
--- a/src/menu-left.pug
+++ b/src/menu-left.pug
@@ -1,22 +1,10 @@
-nav#navbar
+nav#main__menu
   sib-router#navbar-router(default-route='members')
     sib-route.menu(name='members')
-      div.menu-notification
-        sib-display(
-        data-src=`${sdn}/members/`,
-        data-fields='-',
-        counter-template='${counter}'
-        )
       div.menu-label Members
       div.menu-icon.icon-people
     div.divider
     sib-route.menu(name='job-offers', rdf-type='hd:joboffer')
-      div.menu-notification
-        sib-display(
-        data-src=`${sdn}/job-offers/`,
-        data-fields='-',
-        counter-template='${counter}'
-        )
       div.menu-label Job offers
       div.menu-icon.icon-briefcase
     sib-route(hidden, name='job-offer-create')
diff --git a/src/page-chat.pug b/src/page-chat.pug
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/page-group-chat.pug b/src/page-circle-chat.pug
similarity index 83%
rename from src/page-group-chat.pug
rename to src/page-circle-chat.pug
index 72bb999ff84ddd842c3ff9bb4cef6d7b52709864..606e5a7327d19b5e2a4778545643aecc9a3dcbb9 100644
--- a/src/page-group-chat.pug
+++ b/src/page-circle-chat.pug
@@ -1,4 +1,4 @@
-.chat-view
+.content-box.full-width.chat-view
   sib-chat(
     data-authentication='login',
     data-auto-login='true',
diff --git a/src/page-circle-create.pug b/src/page-circle-create.pug
new file mode 100644
index 0000000000000000000000000000000000000000..e7eeb59b0a7eec67865824f5ee9d8a722fb942c6
--- /dev/null
+++ b/src/page-circle-create.pug
@@ -0,0 +1,26 @@
+.content-box.with-form.full-width
+  h1 New group
+  p Here you can create a new group according to your interests, what you want to share, etc.
+
+  sib-form(
+    data-src=`${sdn}/circles/`,
+    range-owner=`${sdn}/users/`, 
+    range-team=`${sdn}/members/`
+    
+    data-fields='name, description, description-text, owner, owner-text, team, team-text, jabberRoom, foaf:jabberID',
+
+    label-name="Channel's name",
+    label-description='Description',
+    label-owner='Owner of this channel',
+    label-foaf:jabberID='Chatroom id',
+    label-team='Member(s) of this channel',
+
+    value-description-text='You can write a short description like "Here, we are like Pinky and the Brain, we talk about strategy to conquer the world".',
+    value-owner-text='The one who will admin this channel',
+    value-team-text='Add any members as you want.',
+
+
+    widget-description='sib-form-textarea',
+    widget-jabberRoom='sib-form-checkbox',
+    widget-team='sib-form-multiple-dropdown'
+  )
diff --git a/src/page-circle-edit.pug b/src/page-circle-edit.pug
new file mode 100644
index 0000000000000000000000000000000000000000..008bc6d3ae2d5dc6e76eb72938593953ebfb12fd
--- /dev/null
+++ b/src/page-circle-edit.pug
@@ -0,0 +1,9 @@
+#circle-edit.content-box.with-form.full-width
+  h1 Edit group
+  sib-form.block(
+    range-owner=`${sdn}/members/`,
+    data-fields="name, description, owner, team, jabberID, jabberRoom"
+    range-team=`${sdn}/members/`,
+    widget-team='sib-form-multiple-dropdown',
+    bind-resources
+  )
diff --git a/src/page-group-profile.pug b/src/page-circle-profile.pug
similarity index 96%
rename from src/page-group-profile.pug
rename to src/page-circle-profile.pug
index 55114d3d5801706f9ab06e3074e5d083e9ba4dc3..7784abfeab123add0c3832e80daf27ea6a30f4bb 100644
--- a/src/page-group-profile.pug
+++ b/src/page-circle-profile.pug
@@ -1,4 +1,4 @@
-.frame
+.content-box.full-width
   h2 Channel's name:
   sib-display(
     data-fields='name',
diff --git a/src/page-group.pug b/src/page-circle.pug
similarity index 53%
rename from src/page-group.pug
rename to src/page-circle.pug
index 2c1cb896c6096dbc1e6d4da8cb8c87cffc795228..a8fd84d4ce9e5b0145a5d1543d723366801760a0 100644
--- a/src/page-group.pug
+++ b/src/page-circle.pug
@@ -1,3 +1,12 @@
+.views-container
+  #circle-chat
+    include page-circle-chat.pug
+  #circle-profile
+    include page-circle-profile.pug
+  #circle-edit
+    include page-circle-edit.pug
+  #circle-create
+    include page-circle-create.pug
 nav.jsRightMenu(role='navigation')
   sib-router(default-route='circle-chat')
     ul
@@ -8,20 +17,10 @@ nav.jsRightMenu(role='navigation')
           a Chat
       sib-route(name='circle-profile')
         li
-          a Info
-      sib-ac-checker(permission='change' bind-resources)
-        sib-route(name='circle-edit')
-          li
-            a Edit
+          a Information
+      sib-route(name='circle-edit')
+        li
+          a Edit
       sib-route(name='circle-create')
         li
-          a Add new
-#views-container
-  #circle-chat
-    include page-group-chat.pug
-  #circle-profile
-    include page-group-profile.pug
-  #circle-edit
-    include page-group-edit.pug
-  #circle-create
-    include page-group-create.pug
+          a Add new
\ No newline at end of file
diff --git a/src/page-group-create.pug b/src/page-group-create.pug
deleted file mode 100644
index 922bd3a3495ac122476bc3a02c977b6e63711613..0000000000000000000000000000000000000000
--- a/src/page-group-create.pug
+++ /dev/null
@@ -1,26 +0,0 @@
-.frame-form
-  h1 New group
-  p.form-goal Here you can create a new group according to your interests, what you want to share, etc.
-  .form-view
-    sib-form(
-      data-src=`${sdn}/circles/`,
-      range-owner=`${sdn}/users/`, 
-      range-team=`${sdn}/members/`
-      
-      data-fields='name, description, description-text, owner, owner-text, team, team-text, jabberRoom, foaf:jabberID',
-
-      label-name="Channel's name",
-      label-description='Description',
-      label-owner='Owner of this channel',
-      label-foaf:jabberID='Chatroom id',
-      label-team='Member(s) of this channel',
-
-      value-description-text='You can write a short description like "Here, we are like Pinky and the Brain, we talk about strategy to conquer the world".',
-      value-owner-text='The one who will admin this channel',
-      value-team-text='Add any members as you want.',
-
-
-      widget-description='sib-form-textarea',
-      widget-jabberRoom='sib-form-checkbox',
-      widget-team='sib-form-multiple-dropdown'
-    )
diff --git a/src/page-group-edit.pug b/src/page-group-edit.pug
deleted file mode 100644
index edcfa1cdd7fadc2b2e44320323a173f4f830d2bb..0000000000000000000000000000000000000000
--- a/src/page-group-edit.pug
+++ /dev/null
@@ -1,10 +0,0 @@
-#circle-edit
-  h1 Edit group
-  .form-view
-    sib-form.block(
-      range-owner=`${sdn}/members/`,
-      data-fields="name, description, owner, team, jabberID, jabberRoom"
-      range-team=`${sdn}/members/`,
-      widget-team='sib-form-multiple-dropdown',
-      bind-resources
-    )
diff --git a/src/page-groups.pug b/src/page-groups.pug
deleted file mode 100644
index 68885fb059d09fec0564dcd0a206c597c6b58fd5..0000000000000000000000000000000000000000
--- a/src/page-groups.pug
+++ /dev/null
@@ -1,7 +0,0 @@
-#circles
-  sib-display#circles-list(
-    data-src=`${sdn}/circles/`,
-    data-fields='name, description',
-    search-fields='name, description',
-    next='group'
-  )
diff --git a/src/page-job-offer-create.pug b/src/page-job-offer-create.pug
index 14f93886ac0dabed1936a6df21c325e72a8f7804..f15bf1a93e0ad85f1c3c9423ad11d51ffd69626a 100644
--- a/src/page-job-offer-create.pug
+++ b/src/page-job-offer-create.pug
@@ -1,5 +1,7 @@
-.frame-form
-
+.content-box.with-form
+  h1 Post a new job offer
+  p.center This form allows you to share an offer to all members of the network.
+    
   sib-widget(name='title-text')
     template
       p Be clear and specific with the name of your offer. You can indicate which skill is important, the start date or the name of the client. Ex: "Looking for a plumber for planet Mars ASAP".
@@ -8,24 +10,20 @@
     template
       p Be specific and exhaustive to avoid answering too many questions later. Indicate what is the best way to fill the offer, the prerequisites...'
   
-  sib-link(next='job-offers' class='back') Back
-  h1 Post a new job offer
-  p.form-goal This form allows you to share an offer to all members of the network.
-  .form-view
-    sib-form.block(
-      data-src=`${sdn}/job-offers/`,
-      range-skills= `${sdn}/skills/`,
-      range-author= `${sdn}/users/`,
+  sib-form.block(
+    data-src=`${sdn}/job-offers/`,
+    range-skills= `${sdn}/skills/`,
+    range-author= `${sdn}/users/`,
 
-      data-fields='title, title-text, description, description-text, skills',
+    data-fields='title, title-text, description, description-text, skills',
 
-      label-title='Title*',
-      label-description='Description*',
-      label-skills='The required skills for this mission:*',
-      
-      widget-title-text='title-text',
-      widget-description-text='description-text',
-      widget-skills='sib-form-auto-completion',
-      
-      next="job-offers"
-    )
+    label-title='Title*',
+    label-description='Description*',
+    label-skills='The required skills for this mission:*',
+    
+    widget-title-text='title-text',
+    widget-description-text='description-text',
+    widget-skills='sib-form-auto-completion',
+    
+    next="job-offers"
+  )
diff --git a/src/page-job-offers.pug b/src/page-job-offers.pug
index 219599d4fd768f8a96705f2470262f274de10a87..f648a42a47e306cb86464c32ddfc491568c21ab8 100644
--- a/src/page-job-offers.pug
+++ b/src/page-job-offers.pug
@@ -1,11 +1,11 @@
-div.grid-layer
+div.job-offers__main
 
   include templates/template-groups.pug
   include templates/template-skills.pug
   include templates/template-joboffers-filter.pug
 
-  div.grid-layer-main.containerV
-    h2 New offers
+  div.job-offers__content
+    h1 New offers
       span Here you can find and post offers
     sib-display#offers-list(
       data-src=`${sdn}/job-offers/`,
@@ -35,15 +35,9 @@ div.grid-layer
       search-widget-open='joboffers-filter'
     )
     
-  div.grid-layer-links.containerV
+  div.job-offers__newoffer
     template#groups-list-template
       p ${value}
-    sib-link(next="job-offer-create").containerH.containerCenter.action-link
+    sib-link(next="job-offer-create").plus-button
       div.icon-plus
       div Post a new offer
-    //-sib-link().containerH.containerCenter.how-link
-      div.icon-idea
-      div.grow How To find a new offer?
-    //-sib-link().containerH.containerCenter.how-link
-      div.icon-idea
-      div.grow How to set notification?
diff --git a/src/page-member-chat.pug b/src/page-member-chat.pug
index a082cf02c7ae653f150f59b4be92084f7b1c9858..fdc62b265c8c2633ca05edb40e20e8b4566d940b 100644
--- a/src/page-member-chat.pug
+++ b/src/page-member-chat.pug
@@ -1,10 +1,9 @@
-div
-  .chat-view
-    sib-chat(
-      data-authentication='login',
-      data-auto-login='true',
-      data-bosh-service-url=xmpp,
-      data-debug='false',
-      data-locales-url='en',
-      bind-resources
-    )
+.content-box.full-width.chat-view
+  sib-chat(
+    data-authentication='login',
+    data-auto-login='true',
+    data-bosh-service-url=xmpp,
+    data-debug='false',
+    data-locales-url='en',
+    bind-resources
+  )
diff --git a/src/page-member-edit.pug b/src/page-member-edit.pug
deleted file mode 100644
index 31aaa9e39e4b8225b6fd692f404dccd155d64067..0000000000000000000000000000000000000000
--- a/src/page-member-edit.pug
+++ /dev/null
@@ -1,96 +0,0 @@
-.form-view
-  sib-form.block(
-    data-fields='user.first_name, user.last_name, user.account.picture, bio, groups, phone, skills, website',
-    widget-user='hdapp-usereditinfo',
-    range-groups=`${sdn}/groups/`, widget-skills='sib-form-multiple-dropdown',
-    range-skills=`${sdn}/skills/`,
-    bind-resources
-  )
-
-  #crop-modal
-    .crop-wrapper
-      img#crop-preview(src='')
-    .control-bar
-      button#cancel-img-cropping.btn.btn-link Annuler
-      i#rotate-img.fa.fa-undo(aria-hidden='true')
-      button#crop-img.btn.btn-link Valider
-
-
-//-script.
-  class LDPFormImgUpload extends SIBWidget {
-    get template() {
-      return `<label for="${this.name}"><img id="${this.name}-preview" src="${this.value}"/></label>
-        <input id="${this.name}" type="file" name="${this.name}" value="${this.value}" />`;
-    }
-
-    render() {
-      store.get(this.value).then( (value) => {
-        this._value = value;
-        this.innerHTML = this.template;
-      });
-    }
-  }
-  customElements.define("ldp-form-img-upload", LDPFormImgUpload);
-  widget-avatar="ldp-form-img-upload"
-
-
-//-script.
-  // Constant declaration
-  const avatarPreview = document.querySelector("#avatar-preview");
-  const avatarInput   = document.querySelector("#avatar-input");
-  const cropModal     = document.querySelector("#crop-modal");
-  const cropPreview   = cropModal.querySelector("#crop-preview");
-  const $cropPreview  = $(cropPreview);
-
-  // Triggers cropping on image upload
-  avatarInput.addEventListener("change", function(e) {
-    var img     = avatarInput.files[0];
-    var reader  = new FileReader();
-
-    reader.onloadend = function () {
-      cropPreview.src = reader.result;
-      cropModal.classList.add("cropping-mode");
-    }
-
-    if (img) {
-      reader.readAsDataURL(img);//reads the data as a URL
-    } 
-  });
-  cropPreview.addEventListener("load", () => {
-    $cropPreview.cropper({
-      aspectRatio:  1/1,
-      viewMode:     3,
-      zoomable:     false,
-    });
-  });
-
-
-  // Rotate image 
-  cropModal.querySelector("#rotate-img").addEventListener("click", () => {
-    $cropPreview.cropper("rotate", -90);
-  });
-
-
-  // Cancel cropping
-  cropModal.querySelector("#cancel-img-cropping").addEventListener("click", () => {
-    closeCropping();
-  });
-
-  // Shortcut
-  document.querySelector("body").addEventListener("keydown", function(e) {
-    // Escape key
-    if (e.keyCode == 27 && cropModal.classList.contains("cropping-mode")) {
-      closeCropping();
-    }
-  });
-  function closeCropping() {
-    cropModal.classList.remove("cropping-mode");
-    avatarInput.value = null;
-  }
-
-
-  // Validating cropping 
-  cropModal.querySelector("#crop-img").addEventListener("click", () => {
-    avatarPreview.src = $cropPreview.cropper("getCroppedCanvas").toDataURL()
-    closeCropping();
-  });
diff --git a/src/page-members.pug b/src/page-members-directory.pug
similarity index 100%
rename from src/page-members.pug
rename to src/page-members-directory.pug
diff --git a/src/page-project-chat.pug b/src/page-project-chat.pug
index 59730e711d2840f00195fe6ff9cc359657e6a781..fdc62b265c8c2633ca05edb40e20e8b4566d940b 100644
--- a/src/page-project-chat.pug
+++ b/src/page-project-chat.pug
@@ -1,4 +1,4 @@
-.chat-view
+.content-box.full-width.chat-view
   sib-chat(
     data-authentication='login',
     data-auto-login='true',
diff --git a/src/page-project-create.pug b/src/page-project-create.pug
index 7e8fc7ebc21444b96db857c62bc4006ffc81b19a..e954c5ad867e65317f8d3e7237af75f4c5e967e9 100644
--- a/src/page-project-create.pug
+++ b/src/page-project-create.pug
@@ -1,33 +1,33 @@
-.frame-form
+.content-box.with-form.full-width
   h1 New project
-  p.form-goal Here you can create your project, add members and assign them a job.
-  .form-view
-    sib-form.block(
-      data-src=`${sdn}/projects/`,
-      range-members=`${sdn}/members/`,
-      range-team=`${sdn}/users/`,
+  p Here you can create your project, add members and assign them a job.
+  
+  sib-form.block(
+    data-src=`${sdn}/projects/`,
+    range-members=`${sdn}/members/`,
+    range-team=`${sdn}/users/`,
 
-      data-fields='block-project__info, block-project__fee, block-project__customer',
+    data-fields='block-project__info, block-project__fee, block-project__customer',
 
-      set-block-project__info='customer.name, name, customer.logo, description',
-      label-customer.name='Customer\'s name',
-      label-name='Project\'s name',
-      label-customer.logo='Customer\'s logo',
-      label-description='Project description',
-      
-      set-block-project__fee='fieldset-fee, businessProvider, businessProviderFee',
-      widget-fieldset-fee='template-legend-fee',
-      label-businessProvider='Business provider',
-      label-businessProviderFee='Amount of the contribution',
-      
-      set-block-project__customer='fieldset-customer, customer.companyRegister, customer.address, customer.firstName, customer.lastName, customer.role, customer.email, customer.phone',
-      widget-fieldset-customer='template-legend-customer',
-      label-customer.companyRegister='Company register',
-      label-customer.address='Address',
-      label-customer.firstName='Name of the contact at the customer\'s premises',
-      label-customer.lastName='Firstname of the contact at the customer\'s premises',
-      label-customer.role='Role within the company',
-      label-customer.email='Email',
-      label-customer.phone='Phone'
-    )
+    set-block-project__info='customer.name, name, customer.logo, description',
+    label-customer.name='Customer\'s name',
+    label-name='Project\'s name',
+    label-customer.logo='Customer\'s logo',
+    label-description='Project description',
+    
+    set-block-project__fee='fieldset-fee, businessProvider, businessProviderFee',
+    widget-fieldset-fee='hd-template-project-title',
+    label-businessProvider='Business provider',
+    label-businessProviderFee='Amount of the contribution',
+    
+    set-block-project__customer='fieldset-customer, customer.companyRegister, customer.address, customer.firstName, customer.lastName, customer.role, customer.email, customer.phone',
+    widget-fieldset-customer='hd-template-project-title',
+    label-customer.companyRegister='Company register',
+    label-customer.address='Address',
+    label-customer.firstName='Name of the contact at the customer\'s premises',
+    label-customer.lastName='Firstname of the contact at the customer\'s premises',
+    label-customer.role='Role within the company',
+    label-customer.email='Email',
+    label-customer.phone='Phone'
+  )
     
\ No newline at end of file
diff --git a/src/page-project-edit.pug b/src/page-project-edit.pug
index f15b79b3d003923e6533e1db0eae2a59ee2e6ed7..3038890e225c4d2f292b93a5ec79baaf4b99af47 100644
--- a/src/page-project-edit.pug
+++ b/src/page-project-edit.pug
@@ -1,59 +1,59 @@
 
-sib-widget(name='template-legend-team')
-  template
-    span ${label}
-
-sib-widget(name='template-members')
-  template
-
-    sib-form.team.is-horizontal(
-      naked,
-      data-src='${id}',
-      data-fields='user.name, name',
-      range-user.name=`${sdn}/users/`,
-      class-name='field',
-      class-user.name='field',
-      label-name='Role',
-      label-user.name='Member(s)',
-    )
-
-.frame-form
+
+.content-box.with-form.full-width
   h1 Edit your project
-  p.form-goal Here you can edit your projet's details
-  .form-view
-    sib-form.block(
-      data-fields='block-project__info, block-project__fee, block-project__customer, block-project__team',
-
-      set-block-project__info='customer.name, name, customer.logo, description',
-      label-customer.name='Customer\'s name',
-      label-name='Project\'s name',
-      label-customer.logo='Customer\'s logo',
-      label-description='Project description',
-      
-      set-block-project__fee='fieldset-fee, businessProvider, businessProvider.fee',
-      range-businessProvider=`${sdn}/businessproviders/`,
-      label-businessProvider='Business provider',
-      label-businessProvider.fee='Amount of the contribution (%)',
-      widget-fieldset-fee='template-legend-team',
-      widget-businessProvider.fee='sib-form-number',
-      label-fieldset-fee='Fee',
-      
-      set-block-project__customer='fieldset-customer, customer.companyRegister, customer.address, customer.firstName, customer.lastName, customer.role, customer.email, customer.phone',
-      label-customer.companyRegister='Company registration number',
-      label-customer.address='Address',
-      label-customer.firstName='Name of the contact at the customer\'s premises',
-      label-customer.lastName='Firstname of the contact at the customer\'s premises',
-      label-customer.role='Role within the company',
-      label-customer.email='Email',
-      label-customer.phone='Phone',
-      widget-fieldset-customer='template-legend-team',
-      label-fieldset-customer='Customer information',
-
-      set-block-project__team='fieldset-team, members',
-      label-fieldset-team='The team',
-      widget-fieldset-team='template-legend-team',
-      widget-members='template-members',
-      multiple-members,
-
-      bind-resources
-    )
+  p Here you can edit your projet's details
+
+  sib-widget(name='hd-template-project-title')
+    template
+      span ${label}
+
+  sib-widget(name='template-members')
+    template
+      sib-form.team.is-horizontal(
+        naked,
+        data-src='${id}',
+        data-fields='user.name, name',
+        range-user.name=`${sdn}/users/`,
+        class-name='field',
+        class-user.name='field',
+        label-name='Role',
+        label-user.name='Member(s)',
+      )
+
+  sib-form.block(
+    data-fields='block-project__info, block-project__fee, block-project__customer, block-project__team',
+
+    set-block-project__info='customer.name, name, customer.logo, description',
+    label-customer.name='Customer\'s name',
+    label-name='Project\'s name',
+    label-customer.logo='Customer\'s logo',
+    label-description='Project description',
+
+    set-block-project__fee='fieldset-fee, businessProvider, businessProvider.fee',
+    range-businessProvider=`${sdn}/businessproviders/`,
+    label-businessProvider='Business provider',
+    label-businessProvider.fee='Amount of the contribution (%)',
+    widget-fieldset-fee='hd-template-project-title',
+    widget-businessProvider.fee='sib-form-number',
+    label-fieldset-fee='Fee',
+
+    set-block-project__customer='fieldset-customer, customer.companyRegister, customer.address, customer.firstName, customer.lastName, customer.role, customer.email, customer.phone',
+    label-customer.companyRegister='Company registration number',
+    label-customer.address='Address',
+    label-customer.firstName='Name of the contact at the customer\'s premises',
+    label-customer.lastName='Firstname of the contact at the customer\'s premises',
+    label-customer.role='Role within the company',
+    label-customer.email='Email',
+    label-customer.phone='Phone',
+    widget-fieldset-customer='hd-template-project-title',
+    label-fieldset-customer='Customer information',
+
+    set-block-project__team='fieldset-team, members',
+    label-fieldset-team='The team',
+    widget-fieldset-team='hd-template-project-title',
+    widget-members='template-members',
+    multiple-members,
+
+    bind-resources
+  )
diff --git a/src/page-project-profile.pug b/src/page-project-profile.pug
index 5dbd56af35bdf5ba91927a95925638fd84fe75ca..fb8cf934e1c28ed62fcd63ace06e0ae1a4597993 100644
--- a/src/page-project-profile.pug
+++ b/src/page-project-profile.pug
@@ -1,4 +1,4 @@
-.frame
+.content-box.full-width
 
   include templates/template-business-provider.pug
   include templates/template-customer.pug
diff --git a/src/page-project.pug b/src/page-project.pug
index ed32ffe4afa6c913c83da13727d3ac5ed44e4a5a..ec2e276ddef10686a5662f26a476c649c10b03f6 100644
--- a/src/page-project.pug
+++ b/src/page-project.pug
@@ -1,3 +1,12 @@
+.views-container
+  #project-chat
+    include page-project-chat.pug
+  #project-profile
+    include page-project-profile.pug
+  #project-edit
+    include page-project-edit.pug
+  #project-create
+    include page-project-create.pug
 nav.jsRightMenu(role='navigation')
   sib-router(default-route='project-chat')
     ul
@@ -14,13 +23,4 @@ nav.jsRightMenu(role='navigation')
           a Edit
       sib-route(name='project-create', use-id)
         li
-          a Add new
-#views-container
-  #project-chat
-    include page-project-chat.pug
-  #project-profile
-    include page-project-profile.pug
-  #project-edit
-    include page-project-edit.pug
-  #project-create
-    include page-project-create.pug
+          a Add new
\ No newline at end of file
diff --git a/src/page-projects.pug b/src/page-projects.pug
deleted file mode 100644
index 4490ae255c62e8ca11ae7f2615efe4c03a9527ce..0000000000000000000000000000000000000000
--- a/src/page-projects.pug
+++ /dev/null
@@ -1,10 +0,0 @@
-//#projects
-div
-  h1 Projects
-  sib-display(
-    data-src=`${sdn}/projects/`,
-    data-fields='phone, customer, name',
-    widget-customer='hdapp-client',
-    search-fields='phone, name',
-    next='project'
-  )
diff --git a/src/scripts/hd-app.js b/src/scripts/hd-app.js
deleted file mode 100644
index 1fe90ce18b88541ffd482f28f7814c8a955e0f09..0000000000000000000000000000000000000000
--- a/src/scripts/hd-app.js
+++ /dev/null
@@ -1,63 +0,0 @@
-document.addEventListener("DOMContentLoaded", function (event) {
-  // Constants declaration
-  const navBar = document.querySelector("#navbar");
-  const searchBar = document.querySelector("#search-bar");
-  const searchView = document.querySelector("#search-view");
-  const searchInput = searchBar.querySelector("#search-input");
-  const btnToggle = document.querySelector("#button-toggle");
-
-
-  // Shortcuts
-  window.addEventListener("keydown", function (e) {
-    // CTRL + K triggers the search feature
-    if ((e.keyCode == 75 || e.keyCode == 80) && (e.ctrlKey === true || e.metaKey === true)) {
-      e.preventDefault();
-      e.stopPropagation();
-      openSearchBar();
-    }
-
-    // Escape key
-    else if (e.keyCode == 27 && navBar.classList.contains("search-mode")) {
-      closeSearchBar();
-    }
-  });
-
-  searchBar.querySelector("#close-search-icon").addEventListener("click", emptySearchBar);
-
-  function openSearchBar(e) {
-    navBar.classList.add("search-mode");
-    searchBar.querySelector("#search-input").focus();
-    searchView.classList.add("search-mode");
-  }
-
-  function closeSearchBar(e) {
-    navBar.classList.remove("search-mode");
-    searchView.classList.remove("search-mode");
-  }
-
-  function emptySearchBar(e) {
-    searchInput.value = '';
-    openSearchBar();
-    searchInput.focus;
-  }
-
-
-  // Synchronizes the search input with the <ldp-form>s 
-  searchInput.addEventListener("keyup", (e) => {
-    searchView.querySelectorAll("ldp-form input[type=text]").forEach((el) => {
-      el.value = searchInput.value;
-    });
-  });
-
-
-  btnToggle.addEventListener('click', e => {
-    navBar.classList.toggle('open');
-    e.stopPropagation();
-  });
-
-  window.addEventListener('click', e => {
-    navBar.classList.remove('open');
-  });
-
-
-});
diff --git a/src/scripts/index.js b/src/scripts/index.js
index 9b4fac6b787c70da1e0fe18a5e6db0bd04c0834b..7146e971d7e0fc133f88575b912ac70c7eb52d18 100644
--- a/src/scripts/index.js
+++ b/src/scripts/index.js
@@ -1,35 +1,9 @@
 document.addEventListener('DOMContentLoaded', function (event) {
-  const navBar = document.querySelector('#navbar');
-  const btnToggle = document.querySelector('#button-toggle');
   const menuWrappers = Array.from(document.querySelectorAll('.menu-wrapper'));
   const rightMenus = Array.from(document.querySelectorAll('nav.jsRightMenu'));
-  
-  if (!navBar || !btnToggle) return;
+  const viewsContainer = Array.from(document.querySelectorAll('.views-container'));
 
-  btnToggle.addEventListener('click', e => {
-    navBar.classList.toggle('open');
-    e.stopPropagation();
-  });
-
-  window.addEventListener('click', e => {
-    navBar.classList.remove('open');
-  });
-
-  function resize() {
-    setTimeout(() =>
-      Array.from(document.querySelectorAll('.chat-view')).forEach(elm => {
-        if (!elm.offsetParent) return;
-        elm.style.setProperty('--pos-top', elm.offsetTop + 'px');
-      }));
-  }
-  window.addEventListener('resize', resize);
-  window.addEventListener('navigate', resize);
-  window.addEventListener('popstate', resize);
-  document.addEventListener('load', resize);
-  document.addEventListener('WebComponentsReady', resize);
-  resize();
-
-  // Toggle sub-menus
+  //- Toggle sub-menus
   menuWrappers.forEach(menuWrapper => {
     const menu = menuWrapper.querySelector('.menu');
     menu.addEventListener('click', e => {
@@ -37,12 +11,14 @@ document.addEventListener('DOMContentLoaded', function (event) {
     });
   });
 
-  // Open/close menu on the right
+  //- Open/close menu on the right
   rightMenus.forEach(rightMenu => {
     const btnRightMenu = rightMenu.querySelector("li.jsOffsiteToggle");
-    
+
     btnRightMenu.addEventListener('click', e => {
-      rightMenu.classList.toggle('offsite-is-closed');
+      rightMenus.forEach(rM => rM.classList.toggle('offsite-is-closed'));
+      viewsContainer.forEach(vC => vC.classList.toggle('sidebar-is-closed'));
     })
-  })
-});
+  });
+
+});
\ No newline at end of file
diff --git a/src/styles/_index.scss b/src/styles/_index.scss
new file mode 100644
index 0000000000000000000000000000000000000000..7da580214bb4a5b74cfe210701ebc25d38863856
--- /dev/null
+++ b/src/styles/_index.scss
@@ -0,0 +1,21 @@
+@charset "UTF-8";
+
+@import '../../node_modules/include-media/dist/include-media';
+@import '../../node_modules/normalize.css/normalize';
+
+@import 'abstracts/variables';
+@import 'abstracts/mixins';
+@import 'components/icons/index';
+@import 'base/main';
+
+div#viewport {
+    display: flex;
+    flex-grow: 1;
+    flex-shrink: 1;
+    overflow-y: auto;
+    @import 'components/index';
+    @import 'layout/members/index';
+    @import 'layout/job-offers/index';
+    @import 'layout/project-profile/index';
+    @import 'layout/circle-profile/index';
+}
diff --git a/src/styles/abstracts/_mixins.scss b/src/styles/abstracts/_mixins.scss
new file mode 100644
index 0000000000000000000000000000000000000000..741219e31331057b1547a2dc770bf07e939f4aae
--- /dev/null
+++ b/src/styles/abstracts/_mixins.scss
@@ -0,0 +1,4 @@
+@mixin window-style-modal($background: $color-0-0-100, $shadow: hsla(212, 7%, 55%, 0.19)) {
+  box-shadow: 0 0 8px 0 $shadow;
+  background-color: $background;
+}
\ No newline at end of file
diff --git a/src/styles/abstracts/_variables.scss b/src/styles/abstracts/_variables.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e63db81aec093d3d221b0a1f4e18d1dae4f1f552
--- /dev/null
+++ b/src/styles/abstracts/_variables.scss
@@ -0,0 +1,25 @@
+// Color Variables
+$color-43-100-50: hsl(43, 100%, 50%);
+$color-45-95-54: hsl(45, 95%, 54%);
+$color-46-100-67: hsl(46, 100%, 67%);
+$color-46-100-50: hsl(46, 100%, 50%);
+$color-0-0-100: hsl(0, 0%, 100%);
+$color-210-17-91: hsl(210, 17%, 91%);
+$color-222-52-90: hsl(222, 52%, 90%);
+$color-210-25-95: hsl(210, 25%, 95%);
+$color-222-57-95: hsl(222, 57%, 95%);
+$color-213-20-91: hsl(213, 20%, 91%);
+$color-221-51-90: hsl(221, 51%, 90%);
+$color-0-0-85: hsl(0, 0%, 85%);
+$color-229-25-79: hsl(229, 25%, 79%);
+$color-215-9-73: hsl(215, 9%, 73%);
+$color-244-10-70: hsl(244, 10%, 70%);
+$color-215-6-63: hsl(215, 6%, 63%);
+$color-210-5-56: hsl(210, 5%, 56%);
+$color-210-4-50: hsl(210, 4%, 50%);
+$color-213-4-50: hsl(213, 4%, 50%);
+$color-213-13-86: hsla(213, 13%, 86%, 0.2);
+$color-0-0-29: hsl(0, 0%, 29%);
+$color-233-18-29: hsl(233, 18%, 29%);
+$color-216-4-22: hsl(216, 4%, 22%);
+$color-244-73-62: hsl(244, 73%, 62%);
diff --git a/src/styles/base/_compat.scss b/src/styles/base/_compat.scss
new file mode 100644
index 0000000000000000000000000000000000000000..4a5b3451252b7c4a7ad93ada305255d04182bd28
--- /dev/null
+++ b/src/styles/base/_compat.scss
@@ -0,0 +1,34 @@
+%grid-layer {
+    display: grid;
+    font-size: 16px;
+    grid-template-columns: [start]auto[middle]25%[end];
+    grid-template-rows: [start]7em[middle]auto[end];
+}
+
+%flex-grid-layer {
+    display: flex;
+    flex-direction: column;
+    align-items: stretch;
+}
+
+%grid-layer-main {
+    @extend %flex-grid-layer;
+    grid-column-start: start;
+    grid-column-end: end;
+    grid-row-start: start;
+    grid-row-end: end;
+}
+
+%grid-layer-links {
+    @extend %flex-grid-layer;
+    grid-column-start: middle;
+    grid-column-end: end;
+    grid-row-start: start;
+    grid-row-end: middle;
+}
+
+%containerV {
+    display: flex;
+    flex-direction: column;
+    align-items: stretch;
+}
\ No newline at end of file
diff --git a/src/styles/base/form.scss b/src/styles/base/form.scss
new file mode 100644
index 0000000000000000000000000000000000000000..526555151c8fb310c23002ae671c60569a2d4a69
--- /dev/null
+++ b/src/styles/base/form.scss
@@ -0,0 +1,294 @@
+.content-box {
+
+  &.with-form {
+
+    hd-template-project-title {
+      border-bottom: 1px solid $color-221-51-90;
+      color: $color-233-18-29;
+      font-size: 1.8rem;
+      font-weight: 600;
+      padding-bottom: 1rem;
+    }
+
+    sib-form {
+      border-bottom: 1px solid $color-210-17-91;
+      padding-bottom: 2.55rem;
+    }
+
+    h1 {
+      color: $color-233-18-29;
+      font-weight: bold;
+      font-size: 2rem;
+      text-align: center;
+    }
+
+    p.center {
+      margin-bottom: 6.8rem;
+      text-align: center;
+    }
+
+    [name$='-text'] {
+      font-size: 1.5rem;
+      margin-bottom: 2em;
+    }
+
+    div[name^='block-'] {
+      display: flex;
+      flex-direction: column;
+    }
+
+    input {
+      -webkit-appearance: none;
+      align-items: center;
+      background: $color-222-57-95;
+      border: none;
+      color: $color-233-18-29;
+      display: inline-flex;
+      justify-content: flex-start;
+      line-height: 1.5;
+      vertical-align: top;
+    }
+
+    sib-form-auto-completion,
+    sib-form-checkbox,
+    sib-form-dropdown,
+    sib-form-label-text,
+    sib-form-multiple-dropdown,
+    sib-form-number,
+    sib-form-textarea {
+      display: flex;
+      flex-direction: column;
+
+      >label {
+        color: $color-244-10-70;
+        font-weight: 600;
+        margin: 2em 0 0.5em;
+        text-transform: uppercase;
+
+        >div {
+          padding-bottom: 1rem;
+        }
+      }
+
+      select,
+      textarea {
+        background: $color-222-57-95;
+        border: none;
+        color: $color-233-18-29;
+        line-height: 1.5;
+        width: 100%;
+
+      }
+
+      select,
+      textarea {
+        padding: 1.7rem;
+      }
+
+      select {
+        margin-bottom: 1.7rem;
+      }
+    }
+
+    sib-form-auto-completion,
+    sib-form-checkbox,
+    sib-form-multiple-dropdown {
+
+      label {
+        color: $color-216-4-22;
+        font-weight: 600;
+        text-transform: initial;
+      }
+    }
+
+    sib-form-auto-completion {
+
+      div.choices__inner {
+        background-color: inherit;
+        border: none;
+        display: flex;
+        flex-direction: column-reverse;
+        padding-left: 0;
+
+        div.choices__list {
+          margin-top: 1.7rem;
+
+          div.choices__item {
+
+            button.choices__button {
+              border-left: 1px solid $color-43-100-50;
+              opacity: 1;
+              padding-left: 0;
+            }
+          }
+        }
+
+        input[type='text'].choices__input {
+          max-width: 27.2rem;
+          min-width: 27.2rem;
+        }
+      }
+    }
+
+    sib-form-checkbox {
+      flex-direction: row;
+
+      [type='checkbox'] {
+        position: relative;
+        margin-top: 2em;
+
+        &:before {
+          border: 2px solid $color-210-5-56;
+          content: '';
+          height: 1rem;
+          left: 0;
+          margin-left: 1rem;
+          padding-bottom: 0.2rem;
+          position: absolute;
+          width: 1.2rem;
+          z-index: 1;
+        }
+
+        &:checked {
+          &:before {
+            border: 2px solid $color-210-5-56;
+            color: $color-244-73-62;
+            height: 1rem;
+            left: 0;
+            margin-left: 1rem;
+            padding-bottom: 0.2rem;
+            position: absolute;
+            width: 1.2rem;
+            z-index: 1;
+            @include mdi('check');
+          }
+        }
+
+        &:after {
+          background: $color-0-0-100;
+          content: '';
+          height: 1rem;
+          position: absolute;
+          width: 1rem;
+        }
+      }
+    }
+
+    sib-form-dropdown {
+
+      select {
+        appearance: none;
+        -moz-appearance: none;
+        -webkit-appearance: none;
+        background-image: url("/images/chevron-down.png");
+        background-position: right 12px top 60%;
+        background-repeat: no-repeat;
+        background-size: 14px 9px;
+        box-sizing: border-box;
+      }
+    }
+
+    /* A REFACTORISER. PAS ENCORE UTILISE SUR L'APPLI */
+
+    sib-form-multiple-dropdown {
+
+      button {
+        appearance: none;
+        background-color: $color-0-0-100;
+        border: 1px solid;
+        border-radius: 100%;
+        color: $color-244-73-62;
+        font-size: 2.55rem;
+        height: 1em;
+        line-height: 0;
+        margin: 0.34rem;
+        padding: 0 0.04em 0.08em;
+        vertical-align: middle;
+        width: 1em;
+      }
+    }
+
+    sib-form-textarea {
+      align-items: stretch;
+    }
+
+    sib-multiple-form {
+
+      >label {
+        display: none;
+      }
+    }
+
+    input[type='submit'] {
+      margin-top: 6rem;
+      background-color: $color-233-18-29;
+      color: $color-0-0-100;
+      float: right;
+      font-weight: bold;
+      text-transform: uppercase;
+    }
+  }
+
+  .is-horizontal {
+    display: flex;
+  }
+
+  sib-multiple-form[name='members'] {
+
+    >div {
+      align-items: center;
+      display: flex;
+    }
+
+    >div:not(:nth-child(-n + 2)) {
+
+      label {
+
+        >div {
+          display: none;
+        }
+      }
+    }
+
+    button {
+      appearance: none;
+      background-color: $color-0-0-100;
+      border: 1px solid;
+      border-radius: 100%;
+      color: $color-244-73-62;
+      font-size: 2.55rem;
+      height: 1em;
+      line-height: 0;
+      margin: 0.34rem;
+      padding: 0 0.04em 0.08em;
+      vertical-align: middle;
+      width: 1em;
+
+      &::after {
+        content: Add;
+      }
+    }
+  }
+}
+sib-form {
+
+  form > * {
+    margin-top: 0.85rem;
+  }
+
+  // button like
+  input[type='color'],
+  input[type='file'],
+  input[type='reset'],
+  input[type='submit'] {
+    display: inline-block;
+    padding: 0.85rem 2.55rem;
+    border: none;
+    border-radius: 100em;
+    font-weight: normal;
+  }
+
+  input[type='reset'] {
+    display: none;
+  }
+}
\ No newline at end of file
diff --git a/src/styles/header.scss b/src/styles/base/header.scss
similarity index 84%
rename from src/styles/header.scss
rename to src/styles/base/header.scss
index 8b448dadfedbe3f4a75630d88a2b3b6070a2c313..c9bafca851c55e23e2b775dcd8ef6b70430a5e9f 100644
--- a/src/styles/header.scss
+++ b/src/styles/base/header.scss
@@ -1,8 +1,9 @@
-
 #header {
+  max-height: 51px;
+  height: 51px;
   align-items: center;
-  background-color: $color-white;
-  color: $color-dark-lava;
+  background-color: $color-0-0-100;
+  color: $color-216-4-22;
   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.09);
   display: flex;
   flex-shrink: 0;
@@ -15,15 +16,6 @@
   }
 }
 
-#button-toggle {
-  color: $color-dark-lava;
-  cursor: pointer;
-  display: none;
-  font-size: 3.2rem;
-  padding: 2.3rem;
-  @include icon('menu');
-}
-
 #logo {
   flex: 1 1 0;
 }
@@ -34,14 +26,14 @@
   #search-input {
     border-radius: 10em;
     padding: 0.64rem 1.28rem;
-    border: 1px solid $color-bombay;
+    border: 1px solid $color-215-9-73;
     height: 3.8rem;
     width: 28rem;
     -webkit-appearance: textfield;
   
     & ~ #close-search-icon,
     & ~ #search-icon {
-      color: $color-bombay;
+      color: $color-215-9-73;
       display: block;
       font-size: 1.7rem;
       margin: auto;
@@ -49,7 +41,7 @@
       right: 3.7rem;
       top: 50%;
       transform: translateY(-50%);
-      -webkit-text-stroke: 1px $color-bombay;
+      -webkit-text-stroke: 1px $color-215-9-73;
     }
   
     & ~ #close-search-icon {
@@ -115,8 +107,8 @@ details {
 details#user-controls {
 
   summary:focus {
-    background-color: $color-purple-dark;
-    color: $color-white;
+    background-color: $color-233-18-29;
+    color: $color-0-0-100;
     outline: none;
   }
 
@@ -160,7 +152,7 @@ details#user-controls {
     z-index: 1;
     
     > nav {
-      background-color: $color-white;
+      background-color: $color-0-0-100;
       box-shadow: 0 7px 8px 0 rgba(0, 0, 0, 0.16);
       position: absolute;
       right: 0;
@@ -178,14 +170,14 @@ details#user-controls {
           padding: 1.6rem 1.3rem;
 
           a {
-            color: $color-text-base;
+            color: $color-213-4-50;
             text-decoration: none;
           }
         }
       }
 
       button {
-        color: $color-text-base;
+        color: $color-213-4-50;
         padding: 1.6rem 1.3rem;
         text-align: left;
         width: 100%;
@@ -194,8 +186,8 @@ details#user-controls {
   }
 
   &[open] {
-    background-color: $color-purple-dark;
-    color: $color-white;
+    background-color: $color-233-18-29;
+    color: $color-0-0-100;
 
     #user-controls__profile {
 
diff --git a/src/styles/base/main.scss b/src/styles/base/main.scss
new file mode 100644
index 0000000000000000000000000000000000000000..c8274c4b7d84781f7040d315b8de7ff65af0e7ee
--- /dev/null
+++ b/src/styles/base/main.scss
@@ -0,0 +1,147 @@
+$breakpoints: (phone: 480px,
+  tablet: 768px,
+  desktop: 1024px) !default;
+
+[hidden],
+.hidden {
+  display: none !important;
+}
+
+* {
+  outline: none;
+}
+
+:root {
+  font-size: 10px;
+  font-family: Open Sans, sans-serif;
+  --sib-notifications-theme: #{$color-46-100-50};
+
+  body {
+    background-color: $color-210-25-95;
+    color: $color-213-4-50;
+    font-size: 1.6rem;
+    overflow: hidden;
+    overflow-wrap: break-word;
+    display: flex;
+    flex-direction: column;
+    height: 100vh;
+    overflow: hidden;
+  }
+
+  main {
+    display: flex;
+    flex-direction: row;
+    height: 100%;
+    max-width: 100%;
+    overflow: hidden;
+  }
+}
+
+img {
+  max-height: 100%;
+  max-width: 100%;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  color: $color-216-4-22;
+  font-weight: 600;
+  padding: 0;
+
+  span {
+    font-weight: 400;
+    padding-left: 0.85rem;
+
+    &:before {
+      content: '// ';
+    }
+  }
+}
+
+h1 {
+  font-size: 2.1rem;
+}
+
+h2 {
+  font-size: 2rem;
+}
+
+h3 {
+  font-size: 1.6rem;
+}
+
+h4 {
+  font-size: 1.2rem;
+}
+
+h5 {
+  font-size: 2rem;
+}
+
+button {
+  background: none;
+  border: none;
+  padding: 0;
+}
+
+sib-route,
+sib-link,
+button,
+input,
+a {
+  cursor: pointer;
+  &:hover,
+  &:link,
+  &:active {
+    cursor: pointer;
+  }
+}
+
+%padding-main {
+  padding: 5rem;
+}
+
+.content-box {
+  @include window-style-modal();
+  @extend %padding-main;
+  display: flex;
+  flex-direction: column;
+  flex-grow: 1;
+  margin: 2rem 1rem 5rem 2rem;
+
+  &.full-width {
+    background: $color-0-0-100;
+    flex: 1;
+    font-size: 1.5rem;
+    margin: 0 auto;
+    min-height: calc(100vh - 84px);
+  }
+}
+
+.backlink {
+  font-size: 1.5rem;
+  margin: 2rem 0 0 2rem;
+  @include icon('arrow-left-circle');
+  color: #3d4057;
+  text-decoration: underline;
+
+  &::before {
+    text-decoration: none;
+  }
+
+  &::before {
+    font-size: 2rem;
+    margin-right: 1rem;
+  }
+}
+
+// Compatibility layer for non-updated components
+@import 'compat';
+// Other base components
+@import 'form';
+@import 'header';
+@import 'menu-left';
\ No newline at end of file
diff --git a/src/styles/menu-left.scss b/src/styles/base/menu-left.scss
similarity index 56%
rename from src/styles/menu-left.scss
rename to src/styles/base/menu-left.scss
index 223051cfc0fec13c78c23444e6ef8d48178b19fc..4f10076e9d57cd4ae3ff6e0700217a07ad3cfb40 100644
--- a/src/styles/menu-left.scss
+++ b/src/styles/base/menu-left.scss
@@ -1,14 +1,10 @@
-#navbar {
-  background-color: $color-purple-dark;
-  color: $color-white;
+#main__menu {
+  background-color: $color-233-18-29;
+  color: $color-0-0-100;
   display: block;
-  flex: 0 0 16em;
-  flex-direction: column;
   overflow: auto;
+  flex: 0 0 16em;
   transition: flex-basis 0.5s ease-in-out;
-  // max-width: 16rem;
-  // position: relative;
-  // min-height: 100%;
 
   &.open {
     transform: translateX(0);
@@ -35,18 +31,17 @@
       padding: 1.6rem;
   
       &[active] {
-        background-color: $color-mustard;
-        color: $color-purple-dark;
+        background-color: $color-46-100-67;
+        color: $color-233-18-29;
   
         .menu-icon:before {
-          background-color: $color-purple-dark;
-          color: $color-white;
-          // transform: perspective(1000px) translateZ(1px) scale(0.8);
+          background-color: $color-233-18-29;
+          color: $color-0-0-100;
         }
   
         .menu-notification > sib-display > div:first-child {
-          background-color: $color-purple-dark;
-          color: $color-mustard;
+          background-color: $color-233-18-29;
+          color: $color-46-100-67;
         }
       }
   
@@ -64,9 +59,6 @@
           height: 1.9em;
           line-height: 1.9em;
           width: 1.9em;
-          // transform: perspective(1000px) translateZ(1px) scale(1);
-          // will-change: transform;
-          // transition: all 0.3s ease, transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.4);
         }
       }
       
@@ -81,27 +73,10 @@
         text-transform: uppercase;
         width: 8em;
       }
-      
-      /*Fix: presque doublon avec main.scss ligne 71 qui gère le nombre de notifications sur la cloche */
-      .menu-notification {
-        align-self: center;
-        display: flex;
-        flex-grow: 0;
-        flex-shrink: 0;
-        justify-content: center;
-        width: 2em;
-  
-        > sib-display {
-          
-          > div:first-of-type {
-            @extend %notification;
-          }
-        }
-      }
 
       .menu-chevron {
         align-items: center;
-        color: $color-spun-pearl;
+        color: $color-244-10-70;
         display: flex;
         flex-grow: 0;
         flex-shrink: 0;
@@ -118,7 +93,7 @@
       padding-left: 2.88rem;
       
       div {
-        color: $color-spun-pearl;
+        color: $color-244-10-70;
         cursor: pointer;
         padding-bottom: 1.12rem;
   
@@ -138,24 +113,8 @@
 
     .divider {
       height: 1px;
-      background-color: $color-gainsboro-a02;
+      background-color: $color-213-13-86;
     }
   }
 }
 
-@include media('width<phone') {
-  #button-toggle {
-    display: block;
-  }
-
-  #navbar {
-    //transform: translateX(-120%);
-    transition: flex-basis 0.5s ease-in-out;
-    flex-basis: 0;
-    //position: absolute;
-    //top: auto;
-    //display: none;
-    //z-index: 1;
-  }
-}
-
diff --git a/src/styles/components/_index.scss b/src/styles/components/_index.scss
new file mode 100644
index 0000000000000000000000000000000000000000..ee78562b8a04541a6eff878a327abcab492dd4bd
--- /dev/null
+++ b/src/styles/components/_index.scss
@@ -0,0 +1,6 @@
+@import 'chat';
+@import 'filters';
+@import 'howto';
+@import 'sidebar';
+@import 'skills';
+@import 'user-role';
\ No newline at end of file
diff --git a/src/styles/components/chat.scss b/src/styles/components/chat.scss
new file mode 100644
index 0000000000000000000000000000000000000000..26407aff844f2e7d1c6fb980bd1aa7ac7d2bc619
--- /dev/null
+++ b/src/styles/components/chat.scss
@@ -0,0 +1,19 @@
+
+// chat
+
+.chat-view {
+  padding: 0;
+  height: calc(100vh - 84px);
+  position: relative;
+
+  > sib-chat {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    max-height: calc(100vh - 84px);
+    z-index: 0;
+  }
+}
+
diff --git a/src/styles/filters.scss b/src/styles/components/filters.scss
similarity index 94%
rename from src/styles/filters.scss
rename to src/styles/components/filters.scss
index d97dc63e79094cb84d616d590877562f906aa98e..03faa2e71d9005a52828441b04dd3340c7e59a27 100644
--- a/src/styles/filters.scss
+++ b/src/styles/components/filters.scss
@@ -14,7 +14,7 @@
     -webkit-appearance: none;
     border-style: none;
     box-shadow: 0 0 5px 0 rgba(133, 140, 148, 0.09);
-    color: $color-taupe-gray;
+    color: $color-210-5-56;
     font-size: 1.36rem;
     line-height: 1.80;
     margin-top: 1.36rem;
@@ -27,7 +27,7 @@
   }
 
   select {
-    background: $color-white;
+    background: $color-0-0-100;
     background-image: url("/images/chevron-down.png");
     background-position: right 12px top 60%;
     background-repeat: no-repeat;
diff --git a/src/styles/components/howto.scss b/src/styles/components/howto.scss
new file mode 100644
index 0000000000000000000000000000000000000000..391e9ba25b3f51f2cc6333189fd015d29507cc5a
--- /dev/null
+++ b/src/styles/components/howto.scss
@@ -0,0 +1,17 @@
+.howto {
+  padding: 0.85rem;
+  margin-bottom: 1.7rem;
+  margin-left: 8.5rem;
+  flex-basis: auto;
+  border-radius: 2em;
+
+  div[class*="icon-"] {
+    align-items: center;
+    display: flex;
+    flex-grow: 0;
+    flex-shrink: 0;
+  }
+}
+
+
+
diff --git a/src/styles/components/icons/_index.scss b/src/styles/components/icons/_index.scss
new file mode 100644
index 0000000000000000000000000000000000000000..37259f7c96b6425071948013058d66bdb7b3b140
--- /dev/null
+++ b/src/styles/components/icons/_index.scss
@@ -0,0 +1,3 @@
+@import 'custom-icons';
+@import 'icons';
+@import 'material-design-icons';
\ No newline at end of file
diff --git a/src/styles/icons/custom-icons.scss b/src/styles/components/icons/custom-icons.scss
similarity index 100%
rename from src/styles/icons/custom-icons.scss
rename to src/styles/components/icons/custom-icons.scss
diff --git a/src/styles/icons/icons.scss b/src/styles/components/icons/icons.scss
similarity index 100%
rename from src/styles/icons/icons.scss
rename to src/styles/components/icons/icons.scss
diff --git a/src/styles/icons/material-design-icons.scss b/src/styles/components/icons/material-design-icons.scss
similarity index 100%
rename from src/styles/icons/material-design-icons.scss
rename to src/styles/components/icons/material-design-icons.scss
diff --git a/src/styles/components/sidebar.scss b/src/styles/components/sidebar.scss
new file mode 100644
index 0000000000000000000000000000000000000000..ed30795d51612d7285898cf9614cf64b4cc1a53a
--- /dev/null
+++ b/src/styles/components/sidebar.scss
@@ -0,0 +1,107 @@
+.no-sidebar {
+  flex: 1;
+  @extend %padding-main;
+}
+
+.with-sidebar {
+  flex-grow: 1;
+  display: flex;
+  flex-direction: row;
+  align-items: stretch;
+  overflow-x: hidden;
+
+  .views-container {
+    flex: 1 0 0;
+    overflow-y: auto;
+    -webkit-backface-visibility: hidden;
+
+    &.sidebar-is-closed {
+      margin-left: -15.5rem;
+      transform: translate(15.5rem);
+    }
+  }
+
+  >div {
+    transition: all 0.5s;
+  }
+
+  nav {
+    transition: all 0.5s;
+
+    >sib-router {
+      background-color: $color-222-52-90;
+      color: $color-233-18-29;
+      flex: 0 0 auto;
+      font-weight: 600;
+
+      >ul {
+        cursor: pointer;
+        list-style: none;
+        margin: 0;
+        padding-left: 0;
+
+        li {
+          align-items: center;
+          border-bottom: 1px solid $color-229-25-79;
+          display: flex;
+          margin: 0;
+          padding: 2.55rem 2.55rem;
+          position: relative;
+          width: 12em;
+
+          &::before {
+            float: left;
+            font-size: 4rem;
+            margin-left: 0;
+            margin-right: 2.55rem;
+          }
+        }
+
+        >li {
+          @include icon('arrow-right-circle');
+        }
+
+        >sib-route {
+
+          &[active] {
+            background-color: $color-233-18-29;
+            color: $color-46-100-67;
+            display: inline-block;
+          }
+
+          &[name^='circle'],
+          &[name^='project'] {
+
+            >li::before {
+              font-size: 4rem;
+            }
+          }
+
+          &[name$='chat']>li {
+            @include ci('chat');
+          }
+
+          &[name$='create']>li {
+            @include ci('offer');
+          }
+
+          &[name$='edit']>li {
+            @include ci('list');
+          }
+
+          &[name$='profile']>li {
+            @include ci('information');
+          }
+        }
+      }
+    }
+
+    &.offsite-is-closed {
+      transform: translate(15.5rem);
+
+      & .jsOffsiteToggle::before {
+        transform: rotate(180deg);
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/styles/components/skills.scss b/src/styles/components/skills.scss
new file mode 100644
index 0000000000000000000000000000000000000000..a5265489f1578b263b163ce0f8b74ee02141ef35
--- /dev/null
+++ b/src/styles/components/skills.scss
@@ -0,0 +1,16 @@
+sib-multiple[name*='skills'] {
+    display: flex;
+    flex-wrap: wrap;
+}
+
+.skill {
+    background-color: $color-43-100-50;
+    border: 1px solid $color-43-100-50;
+    border-radius: 2em;
+    color: $color-0-0-100;
+    display: block;
+    font-size: 1.4rem;
+    font-weight: bold;
+    margin: 0.4rem 1rem 0.4rem 0;
+    padding: 0.5rem 2rem;
+}
\ No newline at end of file
diff --git a/src/styles/components/user-role.scss b/src/styles/components/user-role.scss
new file mode 100644
index 0000000000000000000000000000000000000000..fed7680d90ab9e1a3fc2ec2608c76f60357c803e
--- /dev/null
+++ b/src/styles/components/user-role.scss
@@ -0,0 +1,9 @@
+%user-role {
+    border: 1px solid $color-45-95-54;
+    border-radius: 3px;
+    color: $color-210-4-50;
+    font-size: 1.4rem;
+    font-weight: 400;
+    margin-right: 0.4rem;
+    padding: calc(1.6rem - 0.8em) 0.7em;
+  }
\ No newline at end of file
diff --git a/src/styles/content.scss b/src/styles/content.scss
deleted file mode 100644
index 4d66ca73537ac718e45ae4e6294fab0107b770f8..0000000000000000000000000000000000000000
--- a/src/styles/content.scss
+++ /dev/null
@@ -1,191 +0,0 @@
-// job offers
-// .new-job-offer {
-//   @extend %button;
-//   text-transform: uppercase;
-//   margin-left: 1em;
-//   margin-bottom: 1em
-//   //float: right;
-// }
-
-// skills
-
-/*#member-profile sib-display-lookuplist {
-  display: flex;
-
-  ul {
-    display: flex;
-    flex-wrap: wrap;
-    list-style: none;
-  }
-
-  li[name*='skills'] {
-    padding: 0.3em 1.2em;
-    border: 1px solid;
-    border-radius: 2em;
-    margin: 0.25em;
-    background-color: $color-selective-yellow;
-    color: $color-white;
-    font-weight: bold;
-  }
-}
-*/
-// group
-
-#group-profile {
-  sib-display-div[name='name'] div {
-    @extend h1;
-  }
-
-  sib-display-div[name='label-description'] div {
-    @extend h2;
-  }
-}
-// chat
-
-.chat-view {
-  padding: 1.7rem;
-  position: relative;
-  z-index: 0;
-  @extend %frame;
-  height: calc(100vh - 104px);
-
-  > sib-chat {
-    @include pos();
-  }
-}
-// member-profile && members
-
-/*.members-list-condensed {
-  img {
-    width: 50px;
-    height: 100px;
-    border-radius: 100%;
-    object-fit: cover;
-    object-position: top;
-  }
-
-  label {
-    display: none;
-  }
-
-  > div > sib-display > div {
-    display: grid;
-    grid-template-columns: 0.5fr 2fr;
-    grid-template-rows: repeat(3, auto);
-    grid-column-gap: 3rem;
-    align-items: center;
-
-    div[name="teammate-img"] {
-      background: blue;
-      grid-row: 1 / -1;
-    }
-      
-    }
-
-
-    ul{
-      margin-top: 0px;
-      margin-bottom: 0px;
-      list-style-type: none;
-    }
-    >[name$="user"]{
-      color: $color-dark-lava;
-    }
-    >[name$="avatar"]{
-      grid-column-start: first;
-      grid-column-end: middle;
-      grid-row-start: first;
-      grid-row-end: end;
-    }
-  }
-
-  // ul {
-  //   padding-left: 1em;
-  // }
-}*/
-
-hdapp-available {
-  display: block;
-  text-align: right;
-
-  strong {
-    @extend %button;
-  }
-}
-
-/*#member-profile {
-  ul {
-    @include list-reset();
-  }
-}*/
-
-#member-profile {
-  @include media('width>tablet') {
-    div[name='header'] {
-      float: left;
-      width: 50%;
-    }
-  }
-
-  div[name='name'] {
-    @extend h1;
-
-    div {
-      display: inline-block;
-      margin-right: 0.7rem;
-    }
-  }
-
-  sib-link[next='member-chat'] {
-    border-style: solid;
-    display: flex;
-    border-radius: 25px;
-    border-style: solid;
-    border-color: $color-majorelle-blue;
-    color: $color-majorelle-blue;
-    padding: 1.7rem;
-    text-decoration:none;
-  }
-
-  div[name='pseudonym'] {
-    margin-top: -1.7rem;
-    margin-bottom: 1.7rem;
-  }
-
-  #member-info {
-    &:after {
-      content: '';
-      display: block;
-      clear: both;
-    }
-  }
-}
-
-sib-form {
-
-  form > * {
-    margin-top: 0.85rem;
-  }
-
-  // button like
-  input[type='color'],
-  input[type='file'],
-  input[type='reset'],
-  input[type='submit'] {
-    @extend %button;
-  }
-
-  input[type='reset'] {
-    display: none;
-  }
-}
-
-/*
-label {
-  @extend h2;
-  &:after {
-    content: ':';
-  }
-}
-*/
-
diff --git a/src/styles/form.scss b/src/styles/form.scss
deleted file mode 100644
index 17cfa25ca43cfd21c556e75d51d78fa6e907c538..0000000000000000000000000000000000000000
--- a/src/styles/form.scss
+++ /dev/null
@@ -1,291 +0,0 @@
-.frame-form {
-  display: flex;
-  flex-direction: column;
-  margin: 0 auto;
-  min-height: 100vh;
-  padding: 6.8rem 8.5rem 10.2rem;
-  @extend %frame;
-  
-  .form-view {
-    border-bottom: 1px solid $color-platinum;
-    padding-bottom: 2.55rem;
-  }
-}
-
-@include styleTemplateFieldset('fee');
-@include styleTemplateFieldset('customer');
-@include styleTemplateFieldset('team');
-
-#circle-create,
-#circle-edit,
-#job-offer-create,
-#project-create,
-#project-edit {
-  flex: 1;
-  font-size: 1.5rem;
-
-  h1 {
-    color: $color-purple-dark;
-    font-weight: bold;
-    font-size: 2rem;
-    text-align: center;
-  }
-
-  p.form-goal {
-    margin-bottom: 6.8rem;
-    text-align: center;
-  }
-
-  [name$='-text'] {
-    font-size: 1.5rem;
-    margin-bottom: 2em;
-  }
-
-  div[name^='block-'] {
-    display: flex;
-    flex-direction: column;
-  }
-
-  input {
-    -webkit-appearance: none;
-    align-items: center;
-    background: $color-glitter;
-    border: none;
-    color: $color-purple-dark;
-    display: inline-flex;
-    justify-content: flex-start;
-    line-height: 1.5;
-    vertical-align: top;
-  }
-  
-  sib-form-auto-completion,
-  sib-form-checkbox,
-  sib-form-dropdown,
-  sib-form-label-text,
-  sib-form-multiple-dropdown,
-  sib-form-number,
-  sib-form-textarea {
-    display: flex;
-    flex-direction: column;
-
-    > label {
-      @extend %label;
-    }
-
-    select,
-    textarea {
-      background: $color-glitter;
-      border: none;
-      color: $color-purple-dark;
-      line-height: 1.5;
-      width: 100%;
-      
-    }
-
-    select,
-    textarea {
-      padding: 1.7rem;
-    }
-
-    select {
-      margin-bottom: 1.7rem;
-    }
-  }
-
-  sib-form-auto-completion,
-  sib-form-checkbox,
-  sib-form-multiple-dropdown {
-
-    label {
-      color: $color-dark-lava;
-      font-weight: 600;
-      text-transform: initial;
-    }
-  }
-
-  sib-form-auto-completion {
-
-    div.choices__inner {
-      background-color: inherit;
-      border: none;
-      display: flex;
-      flex-direction: column-reverse;
-      padding-left: 0;
-
-      div.choices__list {
-        margin-top: 1.7rem;
-
-        div.choices__item {
-          /*@extend %skill;*/
-
-          button.choices__button {
-            border-left: 1px solid $color-selective-yellow;
-            opacity: 1;
-            padding-left: 0;
-          }
-        }
-      }
-
-      input[type='text'].choices__input {
-        max-width: 27.2rem;
-        min-width: 27.2rem;
-      }
-    }
-  }
-
-  sib-form-checkbox {
-    flex-direction: row;
-
-    [type='checkbox'] {
-      cursor: pointer;
-      position: relative;
-      margin-top: 2em;
-      
-      &:before {
-        border: 2px solid $color-taupe-gray; 
-        content: '';
-        height: 1rem;
-        left: 0;
-        margin-left: 1rem;
-        padding-bottom: 0.2rem;
-        position: absolute;
-        width: 1.2rem;
-        z-index: 1;
-      }
-      
-      &:checked {
-        &:before {
-          border: 2px solid $color-taupe-gray; 
-          color: $color-majorelle-blue;
-          height: 1rem;
-          left: 0;
-          margin-left: 1rem;
-          padding-bottom: 0.2rem;
-          position: absolute;
-          width: 1.2rem;
-          z-index: 1;
-          @include mdi('check');
-        } 
-      }
-      
-      &:after {
-        background: $color-white;
-        content: '';
-        height: 1rem;
-        position: absolute;
-        width: 1rem;
-      }
-    }
-  }
-
-  sib-form-dropdown {
-
-    select {
-      appearance: none;
-      -moz-appearance: none;
-      -webkit-appearance: none;
-      background-image: url("/images/chevron-down.png");
-      background-position: right 12px top 60%;
-      background-repeat: no-repeat;
-      background-size: 14px 9px;
-      box-sizing: border-box;
-    }
-  }
-
-  /* A REFACTORISER. PAS ENCORE UTILISE SUR L'APPLI */
-  
-  sib-form-multiple-dropdown {
-
-    button {
-      appearance: none;
-      background-color: $color-white;
-      border: 1px solid;
-      border-radius: 100%;
-      color: $color-majorelle-blue;
-      cursor: pointer;
-      font-size: 2.55rem;
-      height: 1em;
-      line-height: 0;
-      margin: 0.34rem;
-      padding: 0 0.04em 0.08em;
-      vertical-align: middle;
-      width: 1em;
-    }
-  }
-
-  sib-form-textarea {
-    align-items: stretch;
-  }
-
-  sib-multiple-form {
-
-    > label {
-      display: none;
-    }
-  }
-
-  input[type='submit'] {
-    margin-top: 6rem;
-    @extend %submit-form;
-  }
-}
-
-#project-create,
-#project-edit {
-
-  input,
-  textarea {
-    margin-bottom: 3.4rem;
-  }
-}
-
-.is-horizontal {
-  display: flex;
-}
-
-.field {
-  margin-right: 0.75rem;
-  max-width: 50%;
-}
-
-.is-expanded {
-  flex-grow: 1;
-}
-
-sib-multiple-form[name='members'] {
-
-  > div {
-    align-items: center;
-    display: flex;
-  }
-
-  > div:not(:nth-child(-n + 2)) {
-
-    label {
-      
-      > div {
-        display: none;
-      }
-    }
-  }
-
-  button {
-    appearance: none;
-    background-color: $color-white;
-    border: 1px solid;
-    border-radius: 100%;
-    color: $color-majorelle-blue;
-    cursor: pointer;
-    font-size: 2.55rem;
-    height: 1em;
-    line-height: 0;
-    margin: 0.34rem;
-    padding: 0 0.04em 0.08em;
-    vertical-align: middle;
-    width: 1em;
-
-    &::after {
-      content: Add;
-    }
-  }
-}
diff --git a/src/styles/index.scss b/src/styles/index.scss
deleted file mode 100644
index 14a79e8d271ecf0ad029a8b2a71f98de27f8ff81..0000000000000000000000000000000000000000
--- a/src/styles/index.scss
+++ /dev/null
@@ -1,28 +0,0 @@
-@charset "UTF-8";
-
-@import '../../node_modules/include-media/dist/include-media';
-@import 'https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css';
-@import 'icons/custom-icons';
-@import 'icons/icons';
-@import 'icons/material-design-icons';
-
-@import 'variables';
-@import 'mixins';
-@import 'main';
-@import 'form';
-@import 'content';
-
-@import 'filters';
-@import 'right-panel';
-
-@import 'group-profile';
-@import 'job-offers';
-@import 'member-profile';
-@import 'members';
-@import 'project-profile';
-@import 'member-chat';
-
-// @import 'members';
-@import 'header';
-@import 'menu-left';
-@import 'menu-right';
\ No newline at end of file
diff --git a/src/styles/job-offers.scss b/src/styles/job-offers.scss
deleted file mode 100644
index d23731a2809163e39a1cf947e6f2db430b6ed810..0000000000000000000000000000000000000000
--- a/src/styles/job-offers.scss
+++ /dev/null
@@ -1,134 +0,0 @@
-#offers-list {
-  @extend .grid-layer;
-  
-  > sib-form {
-    grid-column-start: start;
-    grid-column-end: middle;
-    grid-row-start: start;
-    grid-row-end: middle;
-  }
-  
-  > div {
-    grid-column-start: start;
-    grid-column-end: end;
-    grid-row-start: middle;
-    grid-row-end: end;
-    
-    &:first-of-type {
-      margin-top: 5rem;
-    }
-    
-    > sib-display {
-      @extend %frame;
-      display: block;
-      font-size: 1.5rem;
-      margin: 1.7rem 0;
-      padding: 3.4rem;
-      /*&:nth-child(odd) {
-        background-color: $color-anti-flash-white;
-      }*/
-      
-      [name='user-thumb'] {
-        align-items: center;
-        display: flex;
-        margin: -0.25em;
-      
-        > * {
-          margin: 0.25em;
-        }
-  
-        [name='author.first_name'] {
-          color: $color-quartz;
-          font-weight: 600;
-        }
-
-        sib-multiple[name$='groups'] {
-          display: flex;
-
-          label {
-            display: none;
-          }
-
-          > * {
-            @extend %group;
-          }
-        }
-      
-        sib-display-img {
-          background-color: $color-white;
-          border-radius: 50%;
-          height: 4.25rem;
-          overflow: hidden;
-          position: relative;
-          width: 4.25rem;
-
-          img {
-            height: 100%;
-            left: 0;
-            object-fit: cover;
-            position: absolute;
-            top: 0;
-            width: 100%;
-          }
-        }
-      }
-      
-      [name='creationDate'] {
-        display: block;
-        margin-bottom: 0.7rem;
-        margin-top: 2rem;
-      }
-
-      [name='title'] {
-        @extend h3;
-        display: block;
-        font-weight: bold;
-        line-height: 19px;
-      }
-      
-      [name='description'] {
-        display: block;
-        line-height: 1.6;
-        margin-bottom: 1.6rem;
-      }
-
-      [name='skills'] {
-        label {
-          display: none;
-        }
-      }
-      
-      [name='send'] {
-        color: $color-majorelle-blue;
-        font-size: 1.3rem;
-        float: right;
-      
-        > sib-link {
-          cursor: pointer;
-          @include icon('speech');
-      
-          &::before {
-            font-size: 1.5rem;
-            margin-right: 1.2rem;
-          }
-        }
-      }
-      
-      [name='status'] {
-        float: right;
-        display: flex;
-        align-items: center;
-        margin: -0.25em;
-        
-        > * {
-          margin: 0.25em;
-        }
-        
-        strong {
-          @extend %status-open;
-        }
-      } 
-    }
-  }
-}
-
diff --git a/src/styles/layout/circle-profile/_index.scss b/src/styles/layout/circle-profile/_index.scss
new file mode 100644
index 0000000000000000000000000000000000000000..293bc89d18edef441868c87a50263f92dec8d61b
--- /dev/null
+++ b/src/styles/layout/circle-profile/_index.scss
@@ -0,0 +1 @@
+@import 'circle-profile';
\ No newline at end of file
diff --git a/src/styles/group-profile.scss b/src/styles/layout/circle-profile/circle-profile.scss
similarity index 92%
rename from src/styles/group-profile.scss
rename to src/styles/layout/circle-profile/circle-profile.scss
index ddc1f87fe309d39a1774a0333e0726bf16733cb0..94d0bbf04d9652b7584070e2796f02655c9f94c8 100644
--- a/src/styles/group-profile.scss
+++ b/src/styles/layout/circle-profile/circle-profile.scss
@@ -1,5 +1,4 @@
 #circle-profile {
-  min-height: 100%;
 
   .block-group > div {
     display: flex;
@@ -31,7 +30,7 @@
       }
 
       > div[name='teammate-img'] {
-        background-color: $color-bombay;
+        background-color: $color-215-9-73;
         border-radius: 50%;
         grid-column: 1 / span 2;
         grid-row: 1 / span 2;
@@ -61,7 +60,7 @@
       }
 
       > sib-display-value[name='teammate-profile'] {
-        color: $color-dark-lava;
+        color: $color-216-4-22;
         display: block;
         font-size: 1.2rem;
         grid-column: 1 / span 2;
@@ -69,7 +68,7 @@
       }
 
       > sib-display-value[name='teammate-contact'] {
-        color: $color-majorelle-blue;
+        color: $color-244-73-62;
         font-size: 1.2rem;
         justify-self: stretch;
         grid-column: 3 / span 2;
diff --git a/src/styles/layout/job-offers/_index.scss b/src/styles/layout/job-offers/_index.scss
new file mode 100644
index 0000000000000000000000000000000000000000..07a4c0ecc412a9a4624cdd45f136bd98d8fcd9a0
--- /dev/null
+++ b/src/styles/layout/job-offers/_index.scss
@@ -0,0 +1 @@
+@import 'job-offers.scss';
\ No newline at end of file
diff --git a/src/styles/layout/job-offers/job-offers.scss b/src/styles/layout/job-offers/job-offers.scss
new file mode 100644
index 0000000000000000000000000000000000000000..186b44658e85d81bbd2f8614b9e94089b044b24d
--- /dev/null
+++ b/src/styles/layout/job-offers/job-offers.scss
@@ -0,0 +1,174 @@
+.job-offers__main {
+  @extend %grid-layer;
+}
+
+.job-offers__content {
+  @extend %grid-layer-main;
+  @extend %containerV;
+}
+
+.job-offers__newoffer {
+  @extend %grid-layer-links;
+  @extend %containerV;
+}
+
+#job-offers {
+
+  .plus-button {
+    @extend .howto;
+    background-color: $color-43-100-50;
+    color: $color-0-0-100;
+    font-weight: bold;
+    text-transform: uppercase;
+    cursor: pointer;
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: center;
+    align-items: center;
+
+    .icon-plus {
+      font-size: 20px;
+      justify-content: center;
+      margin: 0.5rem 0.5rem 0.5rem 0;
+
+    }
+  }
+
+  #offers-list {
+    @extend %grid-layer;
+
+    >sib-form {
+      grid-column-start: start;
+      grid-column-end: middle;
+      grid-row-start: start;
+      grid-row-end: middle;
+    }
+
+    >div {
+      grid-column-start: start;
+      grid-column-end: end;
+      grid-row-start: middle;
+      grid-row-end: end;
+
+      &:first-of-type {
+        margin-top: 5rem;
+      }
+
+      >sib-display {
+        @include window-style-modal();
+        display: block;
+        font-size: 1.5rem;
+        margin: 1.7rem 0;
+        padding: 3.4rem;
+
+        [name='user-thumb'] {
+          align-items: center;
+          display: flex;
+          margin: -0.25em;
+
+          >* {
+            margin: 0.25em;
+          }
+
+          [name='author.first_name'] {
+            color: $color-0-0-29;
+            font-weight: 600;
+          }
+
+          sib-multiple[name$='groups'] {
+            display: flex;
+
+            label {
+              display: none;
+            }
+
+            >* {
+              @extend %user-role;
+            }
+          }
+
+          sib-display-img {
+            background-color: $color-0-0-100;
+            border-radius: 50%;
+            height: 4.25rem;
+            overflow: hidden;
+            position: relative;
+            width: 4.25rem;
+
+            img {
+              height: 100%;
+              left: 0;
+              object-fit: cover;
+              position: absolute;
+              top: 0;
+              width: 100%;
+            }
+          }
+        }
+
+        [name='creationDate'] {
+          display: block;
+          margin-bottom: 0.7rem;
+          margin-top: 2rem;
+        }
+
+        [name='title'] {
+          @extend h3;
+          display: block;
+          font-weight: bold;
+          line-height: 19px;
+        }
+
+        [name='description'] {
+          display: block;
+          line-height: 1.6;
+          margin-bottom: 1.6rem;
+        }
+
+        [name='skills'] {
+          label {
+            display: none;
+          }
+        }
+
+        [name='send'] {
+          color: $color-244-73-62;
+          font-size: 1.3rem;
+          float: right;
+
+          >sib-link {
+            cursor: pointer;
+            @include icon('speech');
+
+            &::before {
+              font-size: 1.5rem;
+              margin-right: 1.2rem;
+            }
+          }
+        }
+
+        [name='status'] {
+          float: right;
+          display: flex;
+          align-items: center;
+          margin: -0.25em;
+
+          >* {
+            margin: 0.25em;
+          }
+
+          strong {
+            background-color: $color-244-73-62;
+            border: none;
+            border-radius: 100em;
+            color: $color-0-0-100;
+            display: inline-block;
+            font-weight: normal;
+            padding: 0.85rem 1.7rem;
+          }
+        }
+      }
+    }
+  }
+
+}
\ No newline at end of file
diff --git a/src/styles/layout/members/_index.scss b/src/styles/layout/members/_index.scss
new file mode 100644
index 0000000000000000000000000000000000000000..2450f36d56a9af223545685799008319a8357362
--- /dev/null
+++ b/src/styles/layout/members/_index.scss
@@ -0,0 +1,2 @@
+@import 'members';
+@import 'member-profile';
diff --git a/src/styles/member-profile.scss b/src/styles/layout/members/member-profile.scss
similarity index 84%
rename from src/styles/member-profile.scss
rename to src/styles/layout/members/member-profile.scss
index f8c946614be342099565675145ddcaf4a873d2b3..183a6e9715b078b1490d9d35f4e34a2cf31b1b88 100644
--- a/src/styles/member-profile.scss
+++ b/src/styles/layout/members/member-profile.scss
@@ -3,25 +3,14 @@
   flex-direction: column;
   flex-grow: 1;
 
-  .backlink {
-    font-size: 1.5rem;
-    margin: 2rem 0 0 2rem;
-    @extend %backlink; 
-
-    &::before {
-      font-size: 2rem;
-      margin-right: 1rem;
-    }
-  }
-
   #member-info {
-    background-color: $color-white;
+    background-color: $color-0-0-100;
     box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.14);
     margin: 2rem 1rem 5rem 2rem;
     min-height: 100vh;
 
     div[name='member-profile__bio'] {
-      border-bottom: 1px solid $color-link-water;
+      border-bottom: 1px solid $color-221-51-90;
       display: grid;
       grid-template-areas: "avatar name status"
                            "avatar pseudo status"
@@ -49,7 +38,7 @@
         grid-area: name;
   
         > sib-display-value[name^='user.'] {
-          color: $color-dark-lava;
+          color: $color-216-4-22;
           font-weight: bold;
           @extend h1;
         }
@@ -80,7 +69,7 @@
 
       member-status[name$='available']{
         align-self: flex-end;
-        color: $color-majorelle-blue;
+        color: $color-244-73-62;
         grid-area: status;
         justify-self: flex-end;
 
@@ -97,7 +86,7 @@
           @include ci('awareness');
 
           &::before {
-            border-bottom: 2px solid $color-selective-yellow;
+            border-bottom: 2px solid $color-43-100-50;
             font-size: 7.3rem;
             padding-bottom: 1.5rem;
           }
@@ -107,7 +96,7 @@
           @include ci('armor');
 
           &::before {
-            border-bottom: 2px solid $color-selective-yellow;
+            border-bottom: 2px solid $color-43-100-50;
             font-size: 7.3rem;
             padding-bottom: 1.5rem;
           }
@@ -122,9 +111,9 @@
       
       [next=member-chat] {
         @include icon('speech');
-        border: 1px solid $color-majorelle-blue;
+        border: 1px solid $color-244-73-62;
         border-radius: 2em;
-        color: $color-majorelle-blue;
+        color: $color-244-73-62;
         font-size: 18px;
         font-weight: bold;
         justify-self: end;
diff --git a/src/styles/members.scss b/src/styles/layout/members/members.scss
similarity index 76%
rename from src/styles/members.scss
rename to src/styles/layout/members/members.scss
index 07c3fa4ab0b90df61d68194f9a56c156b51f41c6..e430fbb95385ce392152f924221ba39606d92f5a 100644
--- a/src/styles/members.scss
+++ b/src/styles/layout/members/members.scss
@@ -1,8 +1,45 @@
+%member-info {
+
+  sib-multiple[name^='user.'],
+  > member-info > div,
+  > sib-display-value {
+    display: flex;
+    flex-wrap: wrap;
+    margin-bottom: 0;
+    margin-top: 1.7rem;
+
+    &::before {
+      color: $color-43-100-50;
+      padding: 0 0.6em 0 0;
+    }
+  }
+  
+  [name$='city'] * {
+    @include mdi('atom');
+  }
+
+  [name$='email'] * {
+    @include mdi('email-outline');
+  }
+
+  [name$='phone'] * {
+    @include mdi('cellphone-iphone');
+  }
+
+  [name="foaf:homepage"]:not(:empty) {
+    @include mdi('link-variant');
+  }
+}
+
+member-info-groups {
+  @extend %user-role;
+}
+
 #members-list {
-  @extend .grid-layer;
+  @extend %grid-layer;
 
   #members-list__content {
-    @extend .grid-layer;
+    @extend %grid-layer;
 
     nav {
       align-items: center;
@@ -11,15 +48,15 @@
       justify-content: center;
 
       button {
-        color: $color-anti-flash-white;
+        color: $color-210-25-95;
         
         &:before {
-          color: $color-dark-lava;
+          color: $color-216-4-22;
           @include icon('arrow-left-circle');
         }
 
         &:disabled::before {
-          color: $color-manatee;
+          color: $color-215-6-63;
         }
       }
 
@@ -53,14 +90,14 @@
       justify-content: space-between;
 
       &:first-of-type {
-        color: $color-quartz;
+        color: $color-0-0-29;
         font-weight: bold;
         justify-content: center;
         margin: 3.75rem 0;
         position: relative;
 
         &::before {
-          border-top: 1px solid $color-timberwolf;
+          border-top: 1px solid $color-0-0-85;
           bottom: 0;
           content: '';
           left: 0;
@@ -73,7 +110,7 @@
         }
 
         span {
-          background-color: $color-anti-flash-white;
+          background-color: $color-210-25-95;
           padding: 0 60px;
         }
       }
@@ -81,7 +118,7 @@
       > sib-display {
         background-color: white;
         box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.14);
-        color: $color-rolling-stone;
+        color: $color-210-4-50;
         cursor: pointer;
         display: flex;
         flex-flow: column wrap;
@@ -110,7 +147,7 @@
         }
 
         div[name='header'] {
-          border-bottom: 1px solid $color-anti-flash-white;
+          border-bottom: 1px solid $color-210-25-95;
           display: flex;
           flex-direction: column;
           padding: 0.85rem 0 3.4rem;
@@ -122,7 +159,7 @@
           }
 
           member-picture {
-            background-color: $color-white;
+            background-color: $color-0-0-100;
             border-radius: 50%;
             height: 28vh;
             margin: 1.7rem auto;
@@ -142,7 +179,6 @@
 
           [name='user.name'] {
             font-weight: bold;
-            margin: 0;
             @extend h1;
           }
 
@@ -157,9 +193,9 @@
           
           [next=member-chat] {
             align-self: center;
-            border: 1px solid $color-majorelle-blue;
+            border: 1px solid $color-244-73-62;
             border-radius: 3.4rem;
-            color: $color-majorelle-blue;
+            color: $color-244-73-62;
             font-size: 1.8rem;
             font-weight: bold;
             padding: 1rem 2.55rem 0.7rem;
diff --git a/src/styles/layout/project-profile/_index.scss b/src/styles/layout/project-profile/_index.scss
new file mode 100644
index 0000000000000000000000000000000000000000..c00467b7680edaaf48966a837320a1b3abfe0f63
--- /dev/null
+++ b/src/styles/layout/project-profile/_index.scss
@@ -0,0 +1 @@
+@import 'project-profile'
\ No newline at end of file
diff --git a/src/styles/layout/project-profile/project-profile.scss b/src/styles/layout/project-profile/project-profile.scss
new file mode 100644
index 0000000000000000000000000000000000000000..67adc47c95d6dc12358ecea64f041bef8d3b8f2b
--- /dev/null
+++ b/src/styles/layout/project-profile/project-profile.scss
@@ -0,0 +1,240 @@
+#project-profile {
+
+  [name^='block-']:not([name='block-title']) {
+    margin-top: 5.1rem;
+
+    [name^='label-'] {
+      display: block;
+      font-weight: bold;
+      margin-bottom: 1.4rem;
+      text-transform: uppercase;
+      @extend h2;
+    }
+
+    sib-display-value:not(:first-of-type),
+    ul,
+    [name*='job'] {
+      font-size: 1.5rem;
+    }
+  }
+
+  [name='block-title'] {
+    border-bottom: 1px solid $color-221-51-90;
+    display: flex;
+    padding-bottom: 3.4rem;
+
+    >* {
+      color: $color-216-4-22;
+      font-size: 2rem;
+      font-weight: bold;
+      padding-right: 0.85rem;
+      text-transform: uppercase;
+    }
+
+    >[name^='const-'] {
+      padding: 0;
+    }
+
+    >sib-display-value[name='name'] {
+      padding-left: 0.85rem;
+    }
+
+    > :nth-child(5) {
+      color: $color-233-18-29;
+      font-weight: normal;
+      text-transform: none;
+    }
+
+    [name='entitled'] {
+      margin-left: auto;
+    }
+
+    > :nth-last-child(-n+2) {
+      color: $color-213-4-50;
+      font-size: 1.6rem;
+      font-weight: normal;
+      text-transform: none;
+    }
+  }
+
+  [name='infos'] {
+    display: flex;
+    justify-content: space-between;
+
+    [name='description'] {
+      display: flex;
+      flex-direction: column;
+      width: 90%;
+    }
+
+    [name='block-logo'] {
+      box-sizing: border-box;
+      display: block;
+      height: 8.5vh;
+      position: relative;
+      text-align: end;
+      width: 15vw;
+    }
+  }
+
+  [name='businessProvider'] {
+
+    ul {
+      list-style: none;
+      padding-left: 0;
+
+      li {
+
+        &:first-child {
+          margin-bottom: 0.5em;
+        }
+
+        span {
+          font-weight: bold;
+        }
+      }
+    }
+  }
+
+  #clientBox {
+    display: flex;
+    margin-left: auto;
+    margin-right: auto;
+    margin-top: 1.7rem;
+    max-width: 100%;
+
+    >* {
+      border: 1px solid $color-221-51-90;
+      flex: 1 1 auto;
+      justify-content: space-between;
+      margin: 0 -0.1rem -0.1rem 0;
+      min-width: 25vw;
+      padding: 0;
+
+      h5 {
+        margin-left: 2rem;
+        margin-top: 2rem;
+      }
+
+      ul {
+        font-size: 1.5rem;
+        list-style: none;
+        margin: -2.04rem 0 3.74rem -2.04rem;
+
+        li {
+
+          span {
+            font-weight: bold;
+          }
+        }
+      }
+
+      &:first-child {
+        li {
+
+          span {
+            margin-right: 0.3em;
+          }
+
+          &:first-child {
+            margin-bottom: 0.5em;
+          }
+
+          &:last-child {
+            margin-top: 2.4em;
+          }
+        }
+      }
+
+      &:not(:first-child) {
+        padding-left: 5.1rem;
+
+        li {
+          margin-bottom: 1.7rem;
+
+          &:last-child {
+            margin-top: 2.2rem;
+          }
+
+          &::before {
+            color: $color-43-100-50;
+            font-size: 2.2rem;
+            padding: 0 1rem 0 0;
+          }
+        }
+      }
+    }
+  }
+
+  [name='block-team'] {
+
+    >sib-multiple {
+
+      label {
+        display: none;
+      }
+
+      >team-template[name='members'] {
+        display: grid;
+        grid-column-gap: 1.6rem;
+        grid-template-columns: 7vh auto;
+        grid-template-rows: repeat(2, 5.2vh);
+
+        >sib-display:first-child {
+          align-self: center;
+          grid-column: 1 / span 1;
+          grid-row: 1 / span 2;
+
+          div {
+            background-color: $color-0-0-100;
+            border-radius: 50%;
+            height: 7vh;
+            overflow: hidden;
+            position: relative;
+            width: 7vh;
+
+            img {
+              height: 100%;
+              left: 0;
+              object-fit: cover;
+              position: absolute;
+              top: 0;
+              width: 100%;
+            }
+          }
+        }
+
+        >div:nth-child(2) {
+          align-self: end;
+          display: flex;
+          grid-column: 2 / span 1;
+          grid-row: 1 / span 1;
+
+          span {
+            align-self: center;
+            font-weight: 600;
+          }
+
+          span~sib-display {
+
+            >div {
+              display: flex;
+              margin-left: 1rem;
+
+              sib-multiple [name='name'] {
+                @extend %user-role;
+              }
+            }
+          }
+        }
+
+        >span:nth-child(3) {
+          align-self: start;
+          grid-column: 2 / span 1;
+          grid-row: 2 / span 1;
+        }
+      }
+    }
+  }
+
+}
\ No newline at end of file
diff --git a/src/styles/main.scss b/src/styles/main.scss
deleted file mode 100644
index 3901cbb4d56aa80b7c5242aab97876281fce56ad..0000000000000000000000000000000000000000
--- a/src/styles/main.scss
+++ /dev/null
@@ -1,332 +0,0 @@
-[hidden],
-.hidden,
-.is-hidden {
-  display: none !important;
-}
-
-:root {
-  font-size: 62.5%;
-  font-family: Open Sans, sans-serif;
-  --sib-notifications-theme: #{$color-46-100-50};
-  
-  body {
-    /*Will help to make .content fit your height screen size. Part.1*/
-    background-color: $color-anti-flash-white;
-    color: $color-text-base;
-    display: flex;
-    flex-direction: column;
-    font-size: 1.6rem;
-    height: 100vh;
-    margin: 0;
-    overflow: hidden;
-    overflow-wrap: break-word;
-  }
-}
-
-img {
-  max-width: 100%;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  color: $color-dark-lava;
-  font-weight: 600;
-  padding: 0;
-  /*margin: 0.67em 0;*/
-
-  span {
-    font-weight: 400;
-    padding-left: 0.85rem;
-
-    &:before {
-      content: '// ';
-    }
-  }
-}
-
-h1 {
-  font-size: 2.1rem;
-}
-
-h2 {  font-size: 2rem;
-}
-
-h3 {
-  font-size: 1.6rem;
-}
-
-h4 {
-  font-size: 1.2rem;
-}
-
-h5 {
-  font-size: 2rem;
-}
-
-.debug {
-  outline: 2px dotted red;
-}
-
-button {
-  background: none;
-  border: none;
-  cursor: pointer;
-  margin: 0;
-  padding: 0;
-  text-decoration: none;
-  -webkit-appearance: none;
-}
-
-li {
-  list-style: none;
-  margin-right: 0.4rem;
-  padding-left: 0;
-}
-
-#job-offers,
-#members {
-  @extend %content-padding;
-}
-
-.frame {
-  @extend %frame;
-  padding: 5rem;
-}
-
-.layer {
-  position: absolute;
-  bottom: 0;
-  top: 0;
-  right: 0;
-  left: 0;
-  display: flex;
-  flex-direction: column;
-  align-items: stretch;
-  overflow-x: hidden;
-}
-
-/*
-#content {
-  display: flex;
-  overflow: hidden;
-}
-*/
-
-#mainContainer {
-  flex-grow: 1;
-  flex-shrink: 1;
-  overflow-y: auto;
-}
-
-.limiter {
-  display: block;
-  max-width: 650px;
-}
-/* sub menu (right menu) */
-#mainContainer {
-  display: flex;
-  > div#project,
-  > div#circle {
-    flex-grow: 1;
-    display: flex;
-    flex-direction: row-reverse;
-    align-items: stretch;
-    overflow-x: hidden;
-
-    > div {
-      transition: all 0.5s;
-    }
-  }
-}
-
-sib-route,
-sib-link {
-  cursor: pointer;
-}
-
-sib-link.back {
-  color: $color-purple-dark;
-  display: block;
-  font-size: 2rem;
-  font-weight: bold;
-  text-align: right;
-}
-
-.containerH {
-  display: flex;
-  flex-wrap: wrap;
-}
-
-.containerV {
-  display: flex;
-  flex-direction: column;
-  align-items: stretch;
-}
-
-.grow {
-  flex-grow: 1;
-  flex-shrink: 1;
-}
-
-.fix {
-  flex-grow: 0;
-  flex-shrink: 0;
-}
-
-.containerCenter {
-  justify-content: center;
-  align-items: center;
-}
-
-.reverse {
-  flex-direction: row-reverse;
-}
-
-#views-container {
-  flex: 1 0 0;
-  overflow-y: auto;
-}
-
-.grid-layer{
-  display: grid;
-  font-size: 16px;
-  grid-template-columns: [start]auto[middle]25%[end];
-  grid-template-rows: [start]7em[middle]auto[end];
-}
-.grid-layer-main {
-  grid-column-start: start;
-  grid-column-end: end;
-  grid-row-start: start;
-  grid-row-end: end;
-}
-.grid-layer-links {
-  grid-column-start: middle;
-  grid-column-end: end;
-  grid-row-start: start;
-  grid-row-end: middle;
-}
-
-
-/* TEMPLATE SKILLS*/
-
-sib-multiple[name*='skills'] {
-  display: flex;
-  flex-wrap: wrap;
-}
-
-.skill {
-  background-color: $color-selective-yellow;
-  border: 1px solid $color-selective-yellow;
-  border-radius: 2em;
-  color: $color-white;
-  display: block;
-  font-size: 1.4rem;
-  font-weight: bold;
-  margin: 0.4rem 1rem 0.4rem 0;
-  padding: 0.5rem 2rem;
-}
-
-member-info-groups {
-  @extend %group;
-}
-
-
-/* NEW RESPONSIVE */
-
-.right-sidebar {
-  overflow: hidden;
-  transition: width 0.3s;
-}
-
-.right-sidebar.js-right-sidebar-expanded {
-  width: 130px;
-}
-
-.right-sidebar.js-right-sidebar-collapsed {
-  width: 62px;
-}
-
-/*Define the basic row-column properties that construct the foundation*/
-.row {
-  display: flex;
-  max-width: 100%;
-}
-
-.content {
-  /*Will help to make .content fit your height screen size. Part 2*/
-  flex-direction: row;
-  height: 100%;
-  overflow: hidden;
-}
-
-.col {
-  min-width: 0;
-}
-
-.block-grid {
-  display: flex;
-  flex-wrap: nowrap;
-  height: 100%;
-}
-
-/* Dividing into columns */
-@mixin respond-to($breakpoint) {
-  
-  @if map-has-key($breakpoints, $breakpoint) {
-
-    @media (min-width: map-get($breakpoints, $breakpoint)) {
-      @content;
-    }
-  }
-
-  @else {
-    @warn "Sorry, no value could be retrieved from `#{$breakpoint}`."
-      + "Available breakpoints are: #{map-keys($breakpoints)}.";
-  }
-}
-
-.small-2 {
-
-  @include respond-to('phone'){
-    display: block;
-    flex: 0 1 calc(100% / 12 * 2);
-  }
-}
-
-.small-shrink {
-
-  @include respond-to('phone') {
-    display: block;
-    flex: 0 1 auto;
-  }
-}
-
-.medium-auto {
-
-  @include respond-to('tablet') {
-    display: block;
-    flex: 1;
-    overflow: auto;
-  }
-}
-
-.small-12 {
-
-  @include respond-to('phone') {
-    display: block;
-    flex: 0 1 calc(100% / 12 * 12);
-  }
-}
-
-.small-auto {
-
-  @include respond-to ('phone') {
-    display: block;
-    flex: 1;
-    overflow: auto;
-  }
-}
diff --git a/src/styles/member-chat.scss b/src/styles/member-chat.scss
deleted file mode 100644
index bd679dc7a59f64247feaebfae4d9996d0051587b..0000000000000000000000000000000000000000
--- a/src/styles/member-chat.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-#member-chat {
-  width: 100%;
-}
\ No newline at end of file
diff --git a/src/styles/menu-right.scss b/src/styles/menu-right.scss
deleted file mode 100644
index 4d4003463101dcaf85258ebe99076c6a2c63a8d9..0000000000000000000000000000000000000000
--- a/src/styles/menu-right.scss
+++ /dev/null
@@ -1,90 +0,0 @@
-#mainContainer {
-  
-  > div {
-
-    nav {
-      transition: all 0.5s;
-
-      > sib-router {
-        background-color: $color-222-52-90;
-        color: $color-purple-dark;
-        flex: 0 0 auto;
-        font-weight: 600;
-
-        > ul {  
-          cursor: pointer;
-          list-style: none;
-          margin: 0;
-          padding-left: 0;
-
-          li {
-            align-items: center;
-            border-bottom: 1px solid $color-lavender-gray;
-            display: flex;
-            margin: 0;
-            padding: 2.55rem 2.55rem;
-            position: relative;
-            width: 12em;
-
-            &::before {
-              float: left;
-              font-size: 4rem;
-              margin-left: 0;
-              margin-right: 2.55rem;
-            }
-          }
-
-          > li {
-            @include icon('arrow-right-circle');
-          }
-          
-          > sib-route {
-            
-            &[active] {
-              background-color: $color-purple-dark;
-              color: $color-mustard;
-              display: inline-block;
-            }
-
-            &[name^='circle'],
-            &[name^='project'] {
-              
-              > li::before {
-                font-size: 4rem;
-              }
-            }
-            
-            &[name$='chat'] > li {
-              @include ci('chat');
-            }
-            
-            &[name$='create'] > li {
-              @include ci('offer');
-            }
-            
-            &[name$='edit'] > li {
-              @include ci('list');
-            }
-            
-            &[name$='profile'] > li {
-              @include ci('information');
-            }          
-          }
-        }
-      }
-      
-      &.offsite-is-closed {
-        transform: translate(15.5rem);
-        
-        & .jsOffsiteToggle::before {
-          transform: rotate(180deg);
-        }
-
-        & ~ #views-container {
-          margin-left: -15.5rem;
-          transform: translate(15.5rem);
-        }
-      }
-    }
-  }
-}
diff --git a/src/styles/mixins.scss b/src/styles/mixins.scss
deleted file mode 100644
index d8d0b6efe0c43abd99f5e56932f8bdaf8e1c8184..0000000000000000000000000000000000000000
--- a/src/styles/mixins.scss
+++ /dev/null
@@ -1,160 +0,0 @@
-@charset "UTF-8";
-@mixin debug {
-  $hsla: hsla(random(360), 100%, 50%, 0.3);
-  background-color: $hsla;
-}
-@mixin log($v) {
-  font-family: '__log__:#{$v}';
-}
-
-@mixin offset($corner: 1, $x: 0, $y: 0) {
-  // corner:
-  // 1-----2
-  // |     |
-  // |     |
-  // 3-----4
-  position: absolute;
-  @if ($corner == 1) {
-    top: $y;
-    left: $x;
-  }
-  @if ($corner == 2) {
-    top: $y;
-    right: $x;
-  }
-  @if ($corner == 3) {
-    bottom: $y;
-    left: $x;
-  }
-  @if ($corner == 4) {
-    bottom: $y;
-    right: $x;
-  }
-}
-
-@mixin position($top: 0, $right: null, $bottom: null, $left: null) {
-  //  --1--
-  // |     |
-  // 4     2
-  // |     |
-  //  --3--
-  @if ($right == null) {
-    $right: $top;
-  }
-
-  @if ($bottom == null) {
-    $bottom: $top;
-  }
-
-  @if ($left == null) {
-    $left: $right;
-  }
-
-  position: absolute;
-  top: $top;
-  left: $left;
-  right: $right;
-  bottom: $bottom;
-}
-
-@mixin pos($pos: 5, $position: absolute) {
-  // ╔═──┐ ╔═══╗ ┌──═╗
-  // │ 1 │ │ 2 │ │ 3 │
-  // └───┘ └───┘ └───┘
-  // ╔═──┐ ╔═══╗ ┌──═╗
-  // ║ 4 │ ║ 5 ║ │ 6 ║
-  // ╚═──┘ ╚═══╝ └──═╝
-  // ┌───┐ ┌───┐ ┌───┐
-  // │ 7 │ │ 8 │ │ 9 │
-  // ╚═──┘ ╚═══╝ └──═╝
-
-  $mod: ($pos - 1) % 3;
-
-  position: $position;
-  @if ($pos <= 6) {
-    top: 0;
-  }
-  @if ($mod <= 1) {
-    left: 0;
-  }
-  @if ($mod >= 1) {
-    right: 0;
-  }
-  @if ($pos >= 4) {
-    bottom: 0;
-  }
-}
-
-// @mixin border-shadow($border: top, $size: 4px, $opacity: 0.05, $color: black) {
-//   &:after {
-//     content: '';
-//     position: absolute;
-//     top: if(($border == bottom), auto, 0);
-//     left: if(($border == right), auto, 0);
-//     right: if(($border == left), auto, 0);
-//     bottom: if(($border == top), auto, 0);
-//     background-image: linear-gradient(to #{$border}, $color, transparent);
-//     #{$border}: -$size;
-//     opacity: $opacity;
-//     @if ($border == top or $border == bottom) {
-//       height: $size;
-//     } @else {
-//       width: $size;
-//     }
-//   }
-// }
-
-@mixin align($horizontal: center, $vertical: middle) {
-  text-align: $horizontal;
-  white-space: nowrap;
-  &:after,
-  > * {
-    display: inline-block;
-    vertical-align: $vertical;
-  }
-  &:after {
-    content: '';
-    height: 100%;
-    width: 0;
-    visibility: hidden;
-  }
-  > * {
-    //text-align:left;
-    white-space: normal;
-  }
-}
-
-@mixin list-reset($deep: 0) {
-  padding: 0;
-  margin: 0;
-  display: block;
-  list-style: none;
-  @if ($deep == 0) {
-    > li {
-      padding: 0;
-      margin: 0;
-      display: block;
-      list-style: none;
-    }
-  } @else {
-    ul,
-    ol,
-    li {
-      padding: 0;
-      margin: 0;
-      display: block;
-      list-style: none;
-    }
-  }
-}
-
-@mixin styleTemplateFieldset($name) {
-  template-legend-#{$name} {
-    border-bottom: 1px solid $color-link-water;
-    color: $color-purple-dark;
-    font-size: 1.8rem;
-    font-weight: 600;
-    padding-bottom: 1rem;
-  }
-}
-
diff --git a/src/styles/project-profile.scss b/src/styles/project-profile.scss
deleted file mode 100644
index 7e321fa35bba0eddb2c71ae3c4082f99543928f5..0000000000000000000000000000000000000000
--- a/src/styles/project-profile.scss
+++ /dev/null
@@ -1,239 +0,0 @@
-#project-profile {
-  
-  [name^='block-']:not([name='block-title']) {
-    margin-top: 5.1rem;
-  
-    [name^='label-'] {
-      display: block;
-      font-weight: bold;
-      margin-bottom: 1.4rem;
-      text-transform: uppercase;
-      @extend h2;
-    }
-  
-    sib-display-value:not(:first-of-type),
-    ul,
-    [name*='job'] {
-      font-size: 1.5rem;
-    }
-  }
-
-  [name='block-title'] {
-    border-bottom: 1px solid $color-link-water;
-    display: flex;
-    padding-bottom: 3.4rem;
-  
-    > * {
-      color: $color-dark-lava;
-      font-size: 2rem;
-      font-weight: bold;
-      padding-right: 0.85rem;
-      text-transform: uppercase;
-    }
-  
-    > [name^='const-'] {
-      padding: 0;
-    }
-
-    > sib-display-value[name='name'] {
-      padding-left: 0.85rem;
-    }
-    
-    > :nth-child(5) {
-      color: $color-purple-dark;
-      font-weight: normal;
-      text-transform: none;
-    }
-
-    [name='entitled'] {
-      margin-left: auto;
-    }
-
-    > :nth-last-child(-n+2) {
-      color: $color-text-base;
-      font-size: 1.6rem;
-      font-weight: normal;
-      text-transform: none;
-    }
-  }
-
-  [name='infos'] {
-    display: flex;
-    justify-content: space-between;
-
-    [name='description'] {
-      display: flex;
-      flex-direction: column;
-      width: 90%;
-    }
-    
-    [name='block-logo'] {
-      box-sizing: border-box;
-      display: block;
-      height: 8.5vh;
-      position: relative;
-      text-align: end;
-      width: 15vw;
-    }
-  }
-
-  [name='businessProvider'] {
-    
-    ul {
-      list-style: none;
-      padding-left: 0;
-
-      li {
-        
-        &:first-child {
-          margin-bottom: 0.5em;
-        }
-        
-        span {
-          font-weight: bold;
-        }
-      }
-    }
-  }
-}
-
-#clientBox {
-  display: flex;
-  margin-left: auto;
-  margin-right: auto;
-  margin-top: 1.7rem;
-  max-width: 100%;
-
-  > * {
-    border: 1px solid $color-link-water;
-    flex: 1 1 auto;
-    justify-content: space-between;
-    margin: 0 -0.1rem -0.1rem 0;
-    min-width: 25vw;
-    padding: 0;
-
-    h5 {
-      margin-left: 2rem;
-      margin-top: 2rem;
-    }
-
-    ul {
-      font-size: 1.5rem;
-      list-style: none;
-      margin: -2.04rem 0 3.74rem -2.04rem;
-
-      li {
-
-        span {
-          font-weight: bold;
-        }
-      }
-    }
-
-    &:first-child {
-      li {
-      
-        span {
-          margin-right: 0.3em;
-        }
-
-        &:first-child {
-          margin-bottom: 0.5em;
-        }
-
-        &:last-child {
-          margin-top: 2.4em;
-        }
-      }
-    }
-
-    &:not(:first-child) {
-      padding-left: 5.1rem;
-
-      li {
-        margin-bottom: 1.7rem;
-
-        &:last-child {
-          margin-top: 2.2rem;
-        }
-
-        &::before {
-          color: $color-selective-yellow;
-          font-size: 2.2rem;
-          padding: 0 1rem 0 0;
-        }
-      }
-    }
-  }
-}
-
-[name='block-team'] {
-  
-  > sib-multiple {
-
-    label {
-      display: none;
-    }
-
-    > team-template[name='members'] {
-      display: grid;
-      grid-column-gap: 1.6rem;
-      grid-template-columns: 7vh auto;
-      grid-template-rows: repeat(2, 5.2vh);
-
-      > sib-display:first-child {
-        align-self: center; 
-        grid-column: 1 / span 1;
-        grid-row: 1 / span 2;
-
-        div {
-          background-color: $color-white;
-          border-radius: 50%;
-          height: 7vh;
-          overflow: hidden;
-          position: relative;
-          width: 7vh;
-
-          img {
-            height: 100%;
-            left: 0;
-            object-fit: cover;
-            position: absolute;
-            top: 0;
-            width: 100%;
-          }
-        }
-      }
-
-      > div:nth-child(2) {
-        align-self: end;
-        display: flex;
-        grid-column: 2 / span 1;
-        grid-row: 1 / span 1;
-
-        span {
-          align-self: center;
-          font-weight: 600;
-        }
-
-        span ~ sib-display {
-          
-          > div {
-            display: flex;
-            margin-left: 1rem;
-            
-            sib-multiple [name='name'] {
-              @extend %group;
-            }
-          }
-        }
-      }
-
-      > span:nth-child(3) {
-        align-self: start;
-        grid-column: 2 / span 1;
-        grid-row: 2 / span 1;
-      }
-    }
-  }
-}
diff --git a/src/styles/right-panel.scss b/src/styles/right-panel.scss
deleted file mode 100644
index 8f8ff5b84f65c5bf6364adb6e81867629309d538..0000000000000000000000000000000000000000
--- a/src/styles/right-panel.scss
+++ /dev/null
@@ -1,50 +0,0 @@
-.right-link {
-  padding: 0.85rem;
-  margin-bottom: 1.7rem;
-  margin-left: 8.5rem;
-  flex-basis: auto;
-  border-radius: 2em;
-
-  div[class*="icon-"] {
-    align-items: center;
-    display: flex;
-    flex-grow: 0;
-    flex-shrink: 0;
-  }
-}
-
-.how-link {
-  @extend .right-link;
-  background-color: $color-white;
-  color: $color-dark-lava;
-  flex-wrap: nowrap;
-  .icon-idea {
-    background-color: $color-mustard;
-    border-radius: 100%;
-    justify-content: center;
-    margin-right: 1.2rem;
-    //flex-direction: column;
-    width: 1.8em;
-    height: 1.8em;
-    //margin-right: 1em;
-  }
-}
-
-.action-link {
-  @extend .right-link;
-  background-color: $color-selective-yellow;
-  color: $color-white;
-  font-weight: bold;
-  text-transform: uppercase;
-  cursor: pointer;
-
-  .icon-plus {
-    font-size: 20px;
-    justify-content: center;
-    margin: 0.5rem 0.5rem 0.5rem 0;
-
-    &:before {
-      //font-size: 1.3em;
-    }
-  }
-}
\ No newline at end of file
diff --git a/src/styles/variables.scss b/src/styles/variables.scss
deleted file mode 100644
index b9d7b22347beb8982b945c3951e4c9d935b39d3a..0000000000000000000000000000000000000000
--- a/src/styles/variables.scss
+++ /dev/null
@@ -1,150 +0,0 @@
-//Color Variables
-$color-quartz:           hsl(0, 0%, 29%);
-$color-timberwolf:       hsl(0, 0%, 85%);
-$color-white:            hsl(0, 0%,100%);
-
-$color-selective-yellow: hsl(43, 100%, 50%);
-$color-mikado-yellow:    hsl(45, 95%, 54%);
-$color-mustard:          hsl(46, 100%, 67%);
-$color-46-100-50:        hsl(46, 100%, 50%);
-
-$color-rolling-stone:    hsl(210, 4%, 50%);
-$color-taupe-gray:       hsl(210, 5%, 56%);
-$color-platinum:         hsl(210, 17%, 91%);
-$color-anti-flash-white: hsl(210, 25%, 95%);
-$color-text-base:        hsl(213, 4%, 50%);
-$color-gainsboro:        hsl(213, 13%, 86%);
-$color-gainsboro-a02:    hsla(213, 13%, 86%, 0.2);
-$color-213-20-91:        hsl(213, 20%, 91%);
-$color-bombay:           hsl(215, 9%, 73%);
-$color-manatee:          hsl(215, 6%, 63%);
-$color-dark-lava:        hsl(216, 4%, 22%);
-$color-link-water:       hsl(221, 51%, 90%);
-$color-222-52-90:        hsl(222, 52%, 90%);
-$color-glitter:          hsl(222, 57%, 95%);
-$color-lavender-gray:    hsl(229, 25%, 79%);
-$color-purple-dark:      hsl(233, 18%, 29%);
-$color-spun-pearl:       hsl(244, 10%, 70%);
-$color-majorelle-blue:   hsl(244, 73%, 62%);
-
-%backlink {
-  @include icon('arrow-left-circle');
-  color: #3d4057;
-  text-decoration: underline;
-
-  &::before {
-    text-decoration: none;
-  }
-}
-
-%button {
-  display: inline-block;
-  padding: 0.85rem 2.55rem;
-  border: none;
-  border-radius: 100em;
-  font-weight: normal;
-}  
-
-%content-padding {
-  flex: 1;
-  padding: 4.4rem;
-}
-
-%frame {
-  @extend %shadow;
-  background-color: $color-white;
-}
-
-%group {
-  border: 1px solid $color-mikado-yellow;
-  border-radius: 3px;
-  color: $color-rolling-stone;
-  font-size: 1.4rem;
-  font-weight: 400;
-  margin-right: 0.4rem;
-  padding: calc(1.6rem - 0.8em) 0.7em;
-}
-
-%member-info {
-
-  sib-multiple[name^='user.'],
-  > member-info > div,
-  > sib-display-value {
-    display: flex;
-    flex-wrap: wrap;
-    margin-bottom: 0;
-    margin-top: 1.7rem;
-
-    &::before {
-      color: $color-selective-yellow;
-      padding: 0 0.6em 0 0;
-    }
-  }
-  
-  [name$='city'] * {
-    @include mdi('atom');
-  }
-
-  [name$='email'] * {
-    @include mdi('email-outline');
-  }
-
-  [name$='phone'] * {
-    @include mdi('cellphone-iphone');
-  }
-
-  [name="foaf:homepage"]:not(:empty) {
-    @include mdi('link-variant');
-  }
-}
-
-%label {
-  color: $color-spun-pearl;
-  font-weight: 600;
-  margin: 2em 0 0.5em;
-  text-transform: uppercase;
-
-  > div {
-    padding-bottom: 1rem;
-  }
-}
-
-%notification {
-  align-items: center;
-  background-color: $color-mustard;
-  border-radius: 100%;
-  color: $color-dark-lava;
-  display: flex !important;
-  font-size: 1.3rem;
-  height: 1.7em;
-  justify-content: center;
-  width: 1.7em;
-}
-
-%shadow {
-  box-shadow: 0 0 8px 0 hsla(212, 7%, 55%, 0.19);
-}
-
-%status-open {
-  background-color: $color-majorelle-blue;
-  border: none;
-  border-radius: 100em;
-  color: $color-white;
-  display: inline-block;
-  font-weight: normal;
-  padding: 0.85rem 1.7rem;
-}
-
-%submit-form {
-  background-color: $color-purple-dark;
-  color: $color-white;
-  float: right;
-  font-weight: bold;
-  text-transform: uppercase;
-}
-
-$breakpoints: (
-  phone: 480px,
-  tablet: 768px,
-  desktop: 1024px
-) !default;