diff --git a/docs/Gemfile b/docs/Gemfile
deleted file mode 100644
index fa75df1..0000000
--- a/docs/Gemfile
+++ /dev/null
@@ -1,3 +0,0 @@
-source 'https://rubygems.org'
-
-gemspec
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
deleted file mode 100644
index 03414cb..0000000
--- a/docs/Gemfile.lock
+++ /dev/null
@@ -1,60 +0,0 @@
-PATH
-  remote: .
-  specs:
-    jekyll-theme-cayman (0.1.0)
-      jekyll (~> 3.5)
-      jekyll-seo-tag (~> 2.0)
-
-GEM
-  remote: https://rubygems.org/
-  specs:
-    addressable (2.5.2)
-      public_suffix (>= 2.0.2, < 4.0)
-    colorator (1.1.0)
-    ffi (1.9.18)
-    forwardable-extended (2.6.0)
-    jekyll (3.5.2)
-      addressable (~> 2.4)
-      colorator (~> 1.0)
-      jekyll-sass-converter (~> 1.0)
-      jekyll-watch (~> 1.1)
-      kramdown (~> 1.3)
-      liquid (~> 4.0)
-      mercenary (~> 0.3.3)
-      pathutil (~> 0.9)
-      rouge (~> 1.7)
-      safe_yaml (~> 1.0)
-    jekyll-sass-converter (1.5.0)
-      sass (~> 3.4)
-    jekyll-seo-tag (2.3.0)
-      jekyll (~> 3.3)
-    jekyll-watch (1.5.0)
-      listen (~> 3.0, < 3.1)
-    kramdown (1.14.0)
-    liquid (4.0.0)
-    listen (3.0.8)
-      rb-fsevent (~> 0.9, >= 0.9.4)
-      rb-inotify (~> 0.9, >= 0.9.7)
-    mercenary (0.3.6)
-    pathutil (0.14.0)
-      forwardable-extended (~> 2.6)
-    public_suffix (3.0.0)
-    rb-fsevent (0.10.2)
-    rb-inotify (0.9.10)
-      ffi (>= 0.5.0, < 2)
-    rouge (1.11.1)
-    safe_yaml (1.0.4)
-    sass (3.5.1)
-      sass-listen (~> 4.0.0)
-    sass-listen (4.0.0)
-      rb-fsevent (~> 0.9, >= 0.9.4)
-      rb-inotify (~> 0.9, >= 0.9.7)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  jekyll-theme-cayman!
-
-BUNDLED WITH
-   1.15.4
diff --git a/docs/README.md b/docs/README.md
deleted file mode 100644
index 3de37a2..0000000
--- a/docs/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Son-emu Website
-
-Based on:  [GitHub Pages Cayman Theme](https://github.com/pages-themes/cayman).
-
-Serve locally: `bundle exec jekyll serve`
diff --git a/docs/_config.yml b/docs/_config.yml
deleted file mode 100644
index a94be72..0000000
--- a/docs/_config.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-title: son-emu
-description: SONATA's multi-PoP NFV infrastructure emulation platform.
-show_downloads: true
-google_analytics:
-theme: jekyll-theme-cayman
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html
deleted file mode 100644
index 29b8672..0000000
--- a/docs/_layouts/default.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<html lang="{{ site.lang | default: "en-US" }}">
-  <head>
-    <meta charset="UTF-8">
-
-{% seo %}
-    <meta name="description" content="{{ page.description | default: site.description | default: site.github.project_tagline }}"/>
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="theme-color" content="#157878">
-    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
-  </head>
-  <body>
-    <section class="page-header">
-      <h1 class="project-name">{{ site.title | default: site.github.repository_name }}</h1>
-      <h2 class="project-tagline">{{ site.description | default: site.github.project_tagline }}</h2>
-      <a href="#overview" class="btn">Overview</a>
-      <a href="#get-started" class="btn">Get started</a>
-      <a href="#installation" class="btn">Installation</a>
-      <a href="#references" class="btn">References</a>
-      <a href="#contact" class="btn">Contact</a>
-      <a href="https://github.com/containernet/containernet" class="btn">GitHub</a>
-      <!--
-      {% if site.github.is_project_page %}
-        <a href="{{ site.github.repository_url }}" class="btn">View on GitHub</a>
-      {% endif %}
-      {% if site.show_downloads %}
-        <a href="{{ site.github.zip_url }}" class="btn">Download .zip</a>
-        <a href="{{ site.github.tar_url }}" class="btn">Download .tar.gz</a>
-      {% endif %}
-       -->
-    </section>
-
-    <section class="main-content">
-      {{ content }}
-
-      <footer class="site-footer">
-        {% if site.github.is_project_page %}
-          <span class="site-footer-owner"><a href="{{ site.github.repository_url }}">{{ site.github.repository_name }}</a> is maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a>.</span>
-        {% endif %}
-        <span class="site-footer-credits">This page was generated by <a href="https://pages.github.com">GitHub Pages</a>.</span>
-      </footer>
-    </section>
-
-    {% if site.google_analytics %}
-      <script type="text/javascript">
-        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-        ga('create', '{{ site.google_analytics }}', 'auto');
-        ga('send', 'pageview');
-      </script>
-    {% endif %}
-  </body>
-</html>
diff --git a/docs/_sass/jekyll-theme-cayman.scss b/docs/_sass/jekyll-theme-cayman.scss
deleted file mode 100644
index 8f29bdd..0000000
--- a/docs/_sass/jekyll-theme-cayman.scss
+++ /dev/null
@@ -1,345 +0,0 @@
-@import "normalize";
-@import "rouge-github";
-@import "variables";
-
-@mixin large {
-  @media screen and (min-width: #{$large-breakpoint}) {
-    @content;
-  }
-}
-
-@mixin medium {
-  @media screen and (min-width: #{$medium-breakpoint}) and (max-width: #{$large-breakpoint}) {
-    @content;
-  }
-}
-
-@mixin small {
-  @media screen and (max-width: #{$medium-breakpoint}) {
-    @content;
-  }
-}
-
-* {
-  box-sizing: border-box;
-}
-
-body {
-  padding: 0;
-  margin: 0;
-  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 16px;
-  line-height: 1.5;
-  color: $body-text-color;
-}
-
-a {
-  color: $body-link-color;
-  text-decoration: none;
-
-  &:hover {
-    text-decoration: underline;
-  }
-}
-
-.btn {
-  display: inline-block;
-  margin-bottom: 1rem;
-  color: rgba(255, 255, 255, 0.7);
-  background-color: rgba(255, 255, 255, 0.08);
-  border-color: rgba(255, 255, 255, 0.2);
-  border-style: solid;
-  border-width: 1px;
-  border-radius: 0.3rem;
-  transition: color 0.2s, background-color 0.2s, border-color 0.2s;
-
-  &:hover {
-    color: rgba(255, 255, 255, 0.8);
-    text-decoration: none;
-    background-color: rgba(255, 255, 255, 0.2);
-    border-color: rgba(255, 255, 255, 0.3);
-  }
-
-  + .btn {
-    margin-left: 1rem;
-  }
-
-  @include large {
-    padding: 0.75rem 1rem;
-  }
-
-  @include medium {
-    padding: 0.6rem 0.9rem;
-    font-size: 0.9rem;
-  }
-
-  @include small {
-    display: block;
-    width: 100%;
-    padding: 0.75rem;
-    font-size: 0.9rem;
-
-    + .btn {
-      margin-top: 1rem;
-      margin-left: 0;
-    }
-  }
-}
-
-.page-header {
-  color: $header-heading-color;
-  text-align: center;
-  background-color: $header-bg-color;
-  background-image: linear-gradient(120deg, $header-bg-color-secondary, $header-bg-color);
-
-  @include large {
-    padding: 5rem 6rem;
-  }
-
-  @include medium {
-    padding: 3rem 4rem;
-  }
-
-  @include small {
-    padding: 2rem 1rem;
-  }
-}
-
-.project-name {
-  margin-top: 0;
-  margin-bottom: 0.1rem;
-
-  @include large {
-    font-size: 3.25rem;
-  }
-
-  @include medium {
-    font-size: 2.25rem;
-  }
-
-  @include small {
-    font-size: 1.75rem;
-  }
-}
-
-.project-tagline {
-  margin-bottom: 2rem;
-  font-weight: normal;
-  opacity: 0.7;
-
-  @include large {
-    font-size: 1.25rem;
-  }
-
-  @include medium {
-    font-size: 1.15rem;
-  }
-
-  @include small {
-    font-size: 1rem;
-  }
-}
-
-.main-content {
-  word-wrap: break-word;
-
-  :first-child {
-    margin-top: 0;
-  }
-
-  @include large {
-    max-width: 64rem;
-    padding: 2rem 6rem;
-    margin: 0 auto;
-    font-size: 1.1rem;
-  }
-
-  @include medium {
-    padding: 2rem 4rem;
-    font-size: 1.1rem;
-  }
-
-  @include small {
-    padding: 2rem 1rem;
-    font-size: 1rem;
-  }
-
-  img {
-    max-width: 100%;
-  }
-
-  h1,
-  h2,
-  h3,
-  h4,
-  h5,
-  h6 {
-    margin-top: 2rem;
-    margin-bottom: 1rem;
-    font-weight: normal;
-    color: $section-headings-color;
-  }
-
-  p {
-    margin-bottom: 1em;
-  }
-
-  code {
-    padding: 2px 4px;
-    font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
-    font-size: 0.9rem;
-    color: $code-text-color;
-    background-color: $code-bg-color;
-    border-radius: 0.3rem;
-  }
-
-  pre {
-    padding: 0.8rem;
-    margin-top: 0;
-    margin-bottom: 1rem;
-    font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace;
-    color: $code-text-color;
-    word-wrap: normal;
-    background-color: $code-bg-color;
-    border: solid 1px $border-color;
-    border-radius: 0.3rem;
-
-    > code {
-      padding: 0;
-      margin: 0;
-      font-size: 0.9rem;
-      color: $code-text-color;
-      word-break: normal;
-      white-space: pre;
-      background: transparent;
-      border: 0;
-    }
-  }
-
-  .highlight {
-    margin-bottom: 1rem;
-
-    pre {
-      margin-bottom: 0;
-      word-break: normal;
-    }
-  }
-
-  .highlight pre,
-  pre {
-    padding: 0.8rem;
-    overflow: auto;
-    font-size: 0.9rem;
-    line-height: 1.45;
-    border-radius: 0.3rem;
-    -webkit-overflow-scrolling: touch;
-  }
-
-  pre code,
-  pre tt {
-    display: inline;
-    max-width: initial;
-    padding: 0;
-    margin: 0;
-    overflow: initial;
-    line-height: inherit;
-    word-wrap: normal;
-    background-color: transparent;
-    border: 0;
-
-    &:before,
-    &:after {
-      content: normal;
-    }
-  }
-
-  ul,
-  ol {
-    margin-top: 0;
-  }
-
-  blockquote {
-    padding: 0 1rem;
-    margin-left: 0;
-    color: $blockquote-text-color;
-    border-left: 0.3rem solid $border-color;
-
-    > :first-child {
-      margin-top: 0;
-    }
-
-    > :last-child {
-      margin-bottom: 0;
-    }
-  }
-
-  table {
-    display: block;
-    width: 100%;
-    overflow: auto;
-    word-break: normal;
-    word-break: keep-all; // For Firefox to horizontally scroll wider tables.
-    -webkit-overflow-scrolling: touch;
-
-    th {
-      font-weight: bold;
-    }
-
-    th,
-    td {
-      padding: 0.5rem 1rem;
-      border: 1px solid $table-border-color;
-    }
-  }
-
-  dl {
-    padding: 0;
-
-    dt {
-      padding: 0;
-      margin-top: 1rem;
-      font-size: 1rem;
-      font-weight: bold;
-    }
-
-    dd {
-      padding: 0;
-      margin-bottom: 1rem;
-    }
-  }
-
-  hr {
-    height: 2px;
-    padding: 0;
-    margin: 1rem 0;
-    background-color: $hr-border-color;
-    border: 0;
-  }
-}
-
-.site-footer {
-  padding-top: 2rem;
-  margin-top: 2rem;
-  border-top: solid 1px $hr-border-color;
-
-  @include large {
-    font-size: 1rem;
-  }
-
-  @include medium {
-    font-size: 1rem;
-  }
-
-  @include small {
-    font-size: 0.9rem;
-  }
-}
-
-.site-footer-owner {
-  display: block;
-  font-weight: bold;
-}
-
-.site-footer-credits {
-  color: $blockquote-text-color;
-}
diff --git a/docs/_sass/normalize.scss b/docs/_sass/normalize.scss
deleted file mode 100644
index 30366a6..0000000
--- a/docs/_sass/normalize.scss
+++ /dev/null
@@ -1,424 +0,0 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
-
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- *    user zoom.
- */
-
-html {
-  font-family: sans-serif; /* 1 */
-  -ms-text-size-adjust: 100%; /* 2 */
-  -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/**
- * Remove default margin.
- */
-
-body {
-  margin: 0;
-}
-
-/* HTML5 display definitions
-   ========================================================================== */
-
-/**
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
- * Correct `block` display not defined for `details` or `summary` in IE 10/11
- * and Firefox.
- * Correct `block` display not defined for `main` in IE 11.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
-  display: block;
-}
-
-/**
- * 1. Correct `inline-block` display not defined in IE 8/9.
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
- */
-
-audio,
-canvas,
-progress,
-video {
-  display: inline-block; /* 1 */
-  vertical-align: baseline; /* 2 */
-}
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-
-audio:not([controls]) {
-  display: none;
-  height: 0;
-}
-
-/**
- * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
- */
-
-[hidden],
-template {
-  display: none;
-}
-
-/* Links
-   ========================================================================== */
-
-/**
- * Remove the gray background color from active links in IE 10.
- */
-
-a {
-  background-color: transparent;
-}
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-
-a:active,
-a:hover {
-  outline: 0;
-}
-
-/* Text-level semantics
-   ========================================================================== */
-
-/**
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
- */
-
-abbr[title] {
-  border-bottom: 1px dotted;
-}
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
- */
-
-b,
-strong {
-  font-weight: bold;
-}
-
-/**
- * Address styling not present in Safari and Chrome.
- */
-
-dfn {
-  font-style: italic;
-}
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari, and Chrome.
- */
-
-h1 {
-  font-size: 2em;
-  margin: 0.67em 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-mark {
-  background: #ff0;
-  color: #000;
-}
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-
-small {
-  font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-
-sub,
-sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline;
-}
-
-sup {
-  top: -0.5em;
-}
-
-sub {
-  bottom: -0.25em;
-}
-
-/* Embedded content
-   ========================================================================== */
-
-/**
- * Remove border when inside `a` element in IE 8/9/10.
- */
-
-img {
-  border: 0;
-}
-
-/**
- * Correct overflow not hidden in IE 9/10/11.
- */
-
-svg:not(:root) {
-  overflow: hidden;
-}
-
-/* Grouping content
-   ========================================================================== */
-
-/**
- * Address margin not present in IE 8/9 and Safari.
- */
-
-figure {
-  margin: 1em 40px;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- */
-
-hr {
-  box-sizing: content-box;
-  height: 0;
-}
-
-/**
- * Contain overflow in all browsers.
- */
-
-pre {
-  overflow: auto;
-}
-
-/**
- * Address odd `em`-unit font size rendering in all browsers.
- */
-
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace, monospace;
-  font-size: 1em;
-}
-
-/* Forms
-   ========================================================================== */
-
-/**
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
- * styling of `select`, unless a `border` property is set.
- */
-
-/**
- * 1. Correct color not being inherited.
- *    Known issue: affects color of disabled elements.
- * 2. Correct font properties not being inherited.
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
- */
-
-button,
-input,
-optgroup,
-select,
-textarea {
-  color: inherit; /* 1 */
-  font: inherit; /* 2 */
-  margin: 0; /* 3 */
-}
-
-/**
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
- */
-
-button {
-  overflow: visible;
-}
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
- * Correct `select` style inheritance in Firefox.
- */
-
-button,
-select {
-  text-transform: none;
-}
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- *    and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- *    `input` and others.
- */
-
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
-  -webkit-appearance: button; /* 2 */
-  cursor: pointer; /* 3 */
-}
-
-/**
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled],
-html input[disabled] {
-  cursor: default;
-}
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  border: 0;
-  padding: 0;
-}
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-
-input {
-  line-height: normal;
-}
-
-/**
- * It's recommended that you don't attempt to style these elements.
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
- *
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
- * 2. Remove excess padding in IE 8/9/10.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
-  box-sizing: border-box; /* 1 */
-  padding: 0; /* 2 */
-}
-
-/**
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
- * `font-size` values of the `input`, it causes the cursor style of the
- * decrement button to change from `default` to `text`.
- */
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
-  height: auto;
-}
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
- *    (include `-moz` to future-proof).
- */
-
-input[type="search"] {
-  -webkit-appearance: textfield; /* 1 */ /* 2 */
-  box-sizing: content-box;
-}
-
-/**
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
- * Safari (but not Chrome) clips the cancel button when the search input has
- * padding (and `textfield` appearance).
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
-
-/**
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
-  border: 1px solid #c0c0c0;
-  margin: 0 2px;
-  padding: 0.35em 0.625em 0.75em;
-}
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-
-legend {
-  border: 0; /* 1 */
-  padding: 0; /* 2 */
-}
-
-/**
- * Remove default vertical scrollbar in IE 8/9/10/11.
- */
-
-textarea {
-  overflow: auto;
-}
-
-/**
- * Don't inherit the `font-weight` (applied by a rule above).
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
- */
-
-optgroup {
-  font-weight: bold;
-}
-
-/* Tables
-   ========================================================================== */
-
-/**
- * Remove most spacing between table cells.
- */
-
-table {
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-
-td,
-th {
-  padding: 0;
-}
diff --git a/docs/_sass/rouge-github.scss b/docs/_sass/rouge-github.scss
deleted file mode 100644
index daf76ad..0000000
--- a/docs/_sass/rouge-github.scss
+++ /dev/null
@@ -1,209 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight .cm {
-  color: #999988;
-  font-style: italic;
-}
-.highlight .cp {
-  color: #999999;
-  font-weight: bold;
-}
-.highlight .c1 {
-  color: #999988;
-  font-style: italic;
-}
-.highlight .cs {
-  color: #999999;
-  font-weight: bold;
-  font-style: italic;
-}
-.highlight .c, .highlight .cd {
-  color: #999988;
-  font-style: italic;
-}
-.highlight .err {
-  color: #a61717;
-  background-color: #e3d2d2;
-}
-.highlight .gd {
-  color: #000000;
-  background-color: #ffdddd;
-}
-.highlight .ge {
-  color: #000000;
-  font-style: italic;
-}
-.highlight .gr {
-  color: #aa0000;
-}
-.highlight .gh {
-  color: #999999;
-}
-.highlight .gi {
-  color: #000000;
-  background-color: #ddffdd;
-}
-.highlight .go {
-  color: #888888;
-}
-.highlight .gp {
-  color: #555555;
-}
-.highlight .gs {
-  font-weight: bold;
-}
-.highlight .gu {
-  color: #aaaaaa;
-}
-.highlight .gt {
-  color: #aa0000;
-}
-.highlight .kc {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kd {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kn {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kp {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kr {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kt {
-  color: #445588;
-  font-weight: bold;
-}
-.highlight .k, .highlight .kv {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .mf {
-  color: #009999;
-}
-.highlight .mh {
-  color: #009999;
-}
-.highlight .il {
-  color: #009999;
-}
-.highlight .mi {
-  color: #009999;
-}
-.highlight .mo {
-  color: #009999;
-}
-.highlight .m, .highlight .mb, .highlight .mx {
-  color: #009999;
-}
-.highlight .sb {
-  color: #d14;
-}
-.highlight .sc {
-  color: #d14;
-}
-.highlight .sd {
-  color: #d14;
-}
-.highlight .s2 {
-  color: #d14;
-}
-.highlight .se {
-  color: #d14;
-}
-.highlight .sh {
-  color: #d14;
-}
-.highlight .si {
-  color: #d14;
-}
-.highlight .sx {
-  color: #d14;
-}
-.highlight .sr {
-  color: #009926;
-}
-.highlight .s1 {
-  color: #d14;
-}
-.highlight .ss {
-  color: #990073;
-}
-.highlight .s {
-  color: #d14;
-}
-.highlight .na {
-  color: #008080;
-}
-.highlight .bp {
-  color: #999999;
-}
-.highlight .nb {
-  color: #0086B3;
-}
-.highlight .nc {
-  color: #445588;
-  font-weight: bold;
-}
-.highlight .no {
-  color: #008080;
-}
-.highlight .nd {
-  color: #3c5d5d;
-  font-weight: bold;
-}
-.highlight .ni {
-  color: #800080;
-}
-.highlight .ne {
-  color: #990000;
-  font-weight: bold;
-}
-.highlight .nf {
-  color: #990000;
-  font-weight: bold;
-}
-.highlight .nl {
-  color: #990000;
-  font-weight: bold;
-}
-.highlight .nn {
-  color: #555555;
-}
-.highlight .nt {
-  color: #000080;
-}
-.highlight .vc {
-  color: #008080;
-}
-.highlight .vg {
-  color: #008080;
-}
-.highlight .vi {
-  color: #008080;
-}
-.highlight .nv {
-  color: #008080;
-}
-.highlight .ow {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .o {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .w {
-  color: #bbbbbb;
-}
-.highlight {
-  background-color: #f8f8f8;
-}
diff --git a/docs/_sass/variables.scss b/docs/_sass/variables.scss
deleted file mode 100644
index bf56450..0000000
--- a/docs/_sass/variables.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-// Breakpoints
-$large-breakpoint: 64em !default;
-$medium-breakpoint: 42em !default;
-
-// Headers
-$header-heading-color: #fff !default;
-$header-bg-color: #159957 !default;
-$header-bg-color-secondary: #155799 !default;
-
-// Text
-$section-headings-color: #159957 !default;
-$body-text-color: #606c71 !default;
-$body-link-color: #1e6bb8 !default;
-$blockquote-text-color: #819198 !default;
-
-// Code
-$code-bg-color: #f3f6fa !default;
-$code-text-color: #567482 !default;
-
-// Borders
-$border-color: #dce6f0 !default;
-$table-border-color: #e9ebec !default;
-$hr-border-color: #eff0f1 !default;
diff --git a/docs/_site/CODE_OF_CONDUCT.md b/docs/_site/CODE_OF_CONDUCT.md
deleted file mode 100644
index 2a6dc65..0000000
--- a/docs/_site/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-In the interest of fostering an open and welcoming environment, we as
-contributors and maintainers pledge to making participation in our project and
-our community a harassment-free experience for everyone, regardless of age, body
-size, disability, ethnicity, gender identity and expression, level of experience,
-nationality, personal appearance, race, religion, or sexual identity and
-orientation.
-
-## Our Standards
-
-Examples of behavior that contributes to creating a positive environment
-include:
-
-* Using welcoming and inclusive language
-* Being respectful of differing viewpoints and experiences
-* Gracefully accepting constructive criticism
-* Focusing on what is best for the community
-* Showing empathy towards other community members
-
-Examples of unacceptable behavior by participants include:
-
-* The use of sexualized language or imagery and unwelcome sexual attention or
-advances
-* Trolling, insulting/derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or electronic
-  address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
-  professional setting
-
-## Our Responsibilities
-
-Project maintainers are responsible for clarifying the standards of acceptable
-behavior and are expected to take appropriate and fair corrective action in
-response to any instances of unacceptable behavior.
-
-Project maintainers have the right and responsibility to remove, edit, or
-reject comments, commits, code, wiki edits, issues, and other contributions
-that are not aligned to this Code of Conduct, or to ban temporarily or
-permanently any contributor for other behaviors that they deem inappropriate,
-threatening, offensive, or harmful.
-
-## Scope
-
-This Code of Conduct applies both within project spaces and in public spaces
-when an individual is representing the project or its community. Examples of
-representing a project or community include using an official project e-mail
-address, posting via an official social media account, or acting as an appointed
-representative at an online or offline event. Representation of a project may be
-further defined and clarified by project maintainers.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported by contacting the project team at https://github.com/contact/report-abuse. All
-complaints will be reviewed and investigated and will result in a response that
-is deemed necessary and appropriate to the circumstances. The project team is
-obligated to maintain confidentiality with regard to the reporter of an incident.
-Further details of specific enforcement policies may be posted separately.
-
-Project maintainers who do not follow or enforce the Code of Conduct in good
-faith may face temporary or permanent repercussions as determined by other
-members of the project's leadership.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
-available at [http://contributor-covenant.org/version/1/4][version]
-
-[homepage]: http://contributor-covenant.org
-[version]: http://contributor-covenant.org/version/1/4/
diff --git a/docs/_site/CONTRIBUTING.md b/docs/_site/CONTRIBUTING.md
deleted file mode 100644
index c025ff3..0000000
--- a/docs/_site/CONTRIBUTING.md
+++ /dev/null
@@ -1,33 +0,0 @@
-## Contributing
-
-Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great.
-
-Please note that this project is released with a [Contributor Code of Conduct][code-of-conduct]. By participating in this project you agree to abide by its terms.
-
-## Submitting a pull request
-
-0. [Fork][fork] and clone the repository
-0. Configure and install the dependencies: `script/bootstrap`
-0. Make sure the tests pass on your machine: `script/cibuild`
-0. Create a new branch: `git checkout -b my-branch-name`
-0. Make your change, add tests, and make sure the tests still pass
-0. Push to your fork and [submit a pull request][pr]
-0. Pat your self on the back and wait for your pull request to be reviewed and merged.
-
-Here are a few things you can do that will increase the likelihood of your pull request being accepted:
-
-- If you are making visual changes, include a screenshot of what the affected element looks like, both before and after.
-- Follow the [style guide][style].
-- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
-- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
-
-## Resources
-
-- [Contributing to Open Source on GitHub](https://guides.github.com/activities/contributing-to-open-source/)
-- [Using Pull Requests](https://help.github.com/articles/using-pull-requests/)
-- [GitHub Help](https://help.github.com)
-
-[fork]: https://github.com/pages-themes/cayman/fork
-[pr]: https://github.com/pages-themes/cayman/compare
-[style]: http://ben.balter.com/jekyll-style-guide/
-[code-of-conduct]: CODE_OF_CONDUCT.md
diff --git a/docs/_site/LICENSE b/docs/_site/LICENSE
deleted file mode 100644
index 670154e..0000000
--- a/docs/_site/LICENSE
+++ /dev/null
@@ -1,116 +0,0 @@
-CC0 1.0 Universal
-
-Statement of Purpose
-
-The laws of most jurisdictions throughout the world automatically confer
-exclusive Copyright and Related Rights (defined below) upon the creator and
-subsequent owner(s) (each and all, an "owner") of an original work of
-authorship and/or a database (each, a "Work").
-
-Certain owners wish to permanently relinquish those rights to a Work for the
-purpose of contributing to a commons of creative, cultural and scientific
-works ("Commons") that the public can reliably and without fear of later
-claims of infringement build upon, modify, incorporate in other works, reuse
-and redistribute as freely as possible in any form whatsoever and for any
-purposes, including without limitation commercial purposes. These owners may
-contribute to the Commons to promote the ideal of a free culture and the
-further production of creative, cultural and scientific works, or to gain
-reputation or greater distribution for their Work in part through the use and
-efforts of others.
-
-For these and/or other purposes and motivations, and without any expectation
-of additional consideration or compensation, the person associating CC0 with a
-Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
-and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
-and publicly distribute the Work under its terms, with knowledge of his or her
-Copyright and Related Rights in the Work and the meaning and intended legal
-effect of CC0 on those rights.
-
-1. Copyright and Related Rights. A Work made available under CC0 may be
-protected by copyright and related or neighboring rights ("Copyright and
-Related Rights"). Copyright and Related Rights include, but are not limited
-to, the following:
-
-  i. the right to reproduce, adapt, distribute, perform, display, communicate,
-  and translate a Work;
-
-  ii. moral rights retained by the original author(s) and/or performer(s);
-
-  iii. publicity and privacy rights pertaining to a person's image or likeness
-  depicted in a Work;
-
-  iv. rights protecting against unfair competition in regards to a Work,
-  subject to the limitations in paragraph 4(a), below;
-
-  v. rights protecting the extraction, dissemination, use and reuse of data in
-  a Work;
-
-  vi. database rights (such as those arising under Directive 96/9/EC of the
-  European Parliament and of the Council of 11 March 1996 on the legal
-  protection of databases, and under any national implementation thereof,
-  including any amended or successor version of such directive); and
-
-  vii. other similar, equivalent or corresponding rights throughout the world
-  based on applicable law or treaty, and any national implementations thereof.
-
-2. Waiver. To the greatest extent permitted by, but not in contravention of,
-applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
-unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
-and Related Rights and associated claims and causes of action, whether now
-known or unknown (including existing as well as future claims and causes of
-action), in the Work (i) in all territories worldwide, (ii) for the maximum
-duration provided by applicable law or treaty (including future time
-extensions), (iii) in any current or future medium and for any number of
-copies, and (iv) for any purpose whatsoever, including without limitation
-commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
-the Waiver for the benefit of each member of the public at large and to the
-detriment of Affirmer's heirs and successors, fully intending that such Waiver
-shall not be subject to revocation, rescission, cancellation, termination, or
-any other legal or equitable action to disrupt the quiet enjoyment of the Work
-by the public as contemplated by Affirmer's express Statement of Purpose.
-
-3. Public License Fallback. Should any part of the Waiver for any reason be
-judged legally invalid or ineffective under applicable law, then the Waiver
-shall be preserved to the maximum extent permitted taking into account
-Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
-is so judged Affirmer hereby grants to each affected person a royalty-free,
-non transferable, non sublicensable, non exclusive, irrevocable and
-unconditional license to exercise Affirmer's Copyright and Related Rights in
-the Work (i) in all territories worldwide, (ii) for the maximum duration
-provided by applicable law or treaty (including future time extensions), (iii)
-in any current or future medium and for any number of copies, and (iv) for any
-purpose whatsoever, including without limitation commercial, advertising or
-promotional purposes (the "License"). The License shall be deemed effective as
-of the date CC0 was applied by Affirmer to the Work. Should any part of the
-License for any reason be judged legally invalid or ineffective under
-applicable law, such partial invalidity or ineffectiveness shall not
-invalidate the remainder of the License, and in such case Affirmer hereby
-affirms that he or she will not (i) exercise any of his or her remaining
-Copyright and Related Rights in the Work or (ii) assert any associated claims
-and causes of action with respect to the Work, in either case contrary to
-Affirmer's express Statement of Purpose.
-
-4. Limitations and Disclaimers.
-
-  a. No trademark or patent rights held by Affirmer are waived, abandoned,
-  surrendered, licensed or otherwise affected by this document.
-
-  b. Affirmer offers the Work as-is and makes no representations or warranties
-  of any kind concerning the Work, express, implied, statutory or otherwise,
-  including without limitation warranties of title, merchantability, fitness
-  for a particular purpose, non infringement, or the absence of latent or
-  other defects, accuracy, or the present or absence of errors, whether or not
-  discoverable, all to the greatest extent permissible under applicable law.
-
-  c. Affirmer disclaims responsibility for clearing rights of other persons
-  that may apply to the Work or any use thereof, including without limitation
-  any person's Copyright and Related Rights in the Work. Further, Affirmer
-  disclaims responsibility for obtaining any necessary consents, permissions
-  or other rights required for any use of the Work.
-
-  d. Affirmer understands and acknowledges that Creative Commons is not a
-  party to this document and has no duty or obligation with respect to this
-  CC0 or use of the Work.
-
-For more information, please see
-<http://creativecommons.org/publicdomain/zero/1.0/>
diff --git a/docs/_site/README.md b/docs/_site/README.md
deleted file mode 100644
index ce9f164..0000000
--- a/docs/_site/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Containernet Website
-
-Based on:  [GitHub Pages Cayman Theme](https://github.com/pages-themes/cayman).
-
-Serve locally: `bundle exec jekyll serve`
diff --git a/docs/_site/another-page.html b/docs/_site/another-page.html
deleted file mode 100644
index c1228dc..0000000
--- a/docs/_site/another-page.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="UTF-8">
-
-<!-- Begin Jekyll SEO tag v2.3.0 -->
-<title>Containernet | Use Docker containers as hosts in Mininet emulations.</title>
-<meta property="og:title" content="Containernet" />
-<meta property="og:locale" content="en_US" />
-<meta name="description" content="Use Docker containers as hosts in Mininet emulations." />
-<meta property="og:description" content="Use Docker containers as hosts in Mininet emulations." />
-<link rel="canonical" href="http://localhost:4000/another-page.html" />
-<meta property="og:url" content="http://localhost:4000/another-page.html" />
-<meta property="og:site_name" content="Containernet" />
-<script type="application/ld+json">
-{"name":null,"description":"Use Docker containers as hosts in Mininet emulations.","author":null,"@type":"WebPage","url":"http://localhost:4000/another-page.html","publisher":null,"image":null,"headline":"Containernet","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
-<!-- End Jekyll SEO tag -->
-
-    <meta name="description" content="Use Docker containers as hosts in Mininet emulations."/>
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="theme-color" content="#157878">
-    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="/assets/css/style.css?v=">
-  </head>
-  <body>
-    <section class="page-header">
-      <h1 class="project-name">Containernet</h1>
-      <h2 class="project-tagline">Use Docker containers as hosts in Mininet emulations.</h2>
-      <a href="#overview" class="btn">Overview</a>
-      <a href="#get-started" class="btn">Get started</a>
-      <a href="#installation" class="btn">Installation</a>
-      <a href="#references" class="btn">References</a>
-      <a href="#contact" class="btn">Contact</a>
-      <a href="https://github.com/containernet/containernet" class="btn">GitHub</a>
-      <!--
-      
-      
-        <a href="" class="btn">Download .zip</a>
-        <a href="" class="btn">Download .tar.gz</a>
-      
-       -->
-    </section>
-
-    <section class="main-content">
-      <h2 id="welcome-to-another-page">Welcome to another page</h2>
-
-<p><em>yay</em></p>
-
-<p><a href="./">back</a></p>
-
-
-      <footer class="site-footer">
-        
-        <span class="site-footer-credits">This page was generated by <a href="https://pages.github.com">GitHub Pages</a>.</span>
-      </footer>
-    </section>
-
-    
-      <script type="text/javascript">
-        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-        ga('create', 'UA-105785493-1', 'auto');
-        ga('send', 'pageview');
-      </script>
-    
-  </body>
-</html>
diff --git a/docs/_site/assets/css/style.css b/docs/_site/assets/css/style.css
deleted file mode 100644
index c934b6a..0000000
--- a/docs/_site/assets/css/style.css
+++ /dev/null
@@ -1,809 +0,0 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- *    user zoom.
- */
-html {
-  font-family: sans-serif;
-  /* 1 */
-  -ms-text-size-adjust: 100%;
-  /* 2 */
-  -webkit-text-size-adjust: 100%;
-  /* 2 */ }
-
-/**
- * Remove default margin.
- */
-body {
-  margin: 0; }
-
-/* HTML5 display definitions
-   ========================================================================== */
-/**
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
- * Correct `block` display not defined for `details` or `summary` in IE 10/11
- * and Firefox.
- * Correct `block` display not defined for `main` in IE 11.
- */
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
-  display: block; }
-
-/**
- * 1. Correct `inline-block` display not defined in IE 8/9.
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
- */
-audio,
-canvas,
-progress,
-video {
-  display: inline-block;
-  /* 1 */
-  vertical-align: baseline;
-  /* 2 */ }
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-audio:not([controls]) {
-  display: none;
-  height: 0; }
-
-/**
- * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
- */
-[hidden],
-template {
-  display: none; }
-
-/* Links
-   ========================================================================== */
-/**
- * Remove the gray background color from active links in IE 10.
- */
-a {
-  background-color: transparent; }
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-a:active,
-a:hover {
-  outline: 0; }
-
-/* Text-level semantics
-   ========================================================================== */
-/**
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
- */
-abbr[title] {
-  border-bottom: 1px dotted; }
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
- */
-b,
-strong {
-  font-weight: bold; }
-
-/**
- * Address styling not present in Safari and Chrome.
- */
-dfn {
-  font-style: italic; }
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari, and Chrome.
- */
-h1 {
-  font-size: 2em;
-  margin: 0.67em 0; }
-
-/**
- * Address styling not present in IE 8/9.
- */
-mark {
-  background: #ff0;
-  color: #000; }
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-small {
-  font-size: 80%; }
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-sub,
-sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline; }
-
-sup {
-  top: -0.5em; }
-
-sub {
-  bottom: -0.25em; }
-
-/* Embedded content
-   ========================================================================== */
-/**
- * Remove border when inside `a` element in IE 8/9/10.
- */
-img {
-  border: 0; }
-
-/**
- * Correct overflow not hidden in IE 9/10/11.
- */
-svg:not(:root) {
-  overflow: hidden; }
-
-/* Grouping content
-   ========================================================================== */
-/**
- * Address margin not present in IE 8/9 and Safari.
- */
-figure {
-  margin: 1em 40px; }
-
-/**
- * Address differences between Firefox and other browsers.
- */
-hr {
-  box-sizing: content-box;
-  height: 0; }
-
-/**
- * Contain overflow in all browsers.
- */
-pre {
-  overflow: auto; }
-
-/**
- * Address odd `em`-unit font size rendering in all browsers.
- */
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace, monospace;
-  font-size: 1em; }
-
-/* Forms
-   ========================================================================== */
-/**
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
- * styling of `select`, unless a `border` property is set.
- */
-/**
- * 1. Correct color not being inherited.
- *    Known issue: affects color of disabled elements.
- * 2. Correct font properties not being inherited.
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
- */
-button,
-input,
-optgroup,
-select,
-textarea {
-  color: inherit;
-  /* 1 */
-  font: inherit;
-  /* 2 */
-  margin: 0;
-  /* 3 */ }
-
-/**
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
- */
-button {
-  overflow: visible; }
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
- * Correct `select` style inheritance in Firefox.
- */
-button,
-select {
-  text-transform: none; }
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- *    and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- *    `input` and others.
- */
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-  -webkit-appearance: button;
-  /* 2 */
-  cursor: pointer;
-  /* 3 */ }
-
-/**
- * Re-set default cursor for disabled elements.
- */
-button[disabled],
-html input[disabled] {
-  cursor: default; }
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  border: 0;
-  padding: 0; }
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-input {
-  line-height: normal; }
-
-/**
- * It's recommended that you don't attempt to style these elements.
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
- *
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
- * 2. Remove excess padding in IE 8/9/10.
- */
-input[type="checkbox"],
-input[type="radio"] {
-  box-sizing: border-box;
-  /* 1 */
-  padding: 0;
-  /* 2 */ }
-
-/**
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
- * `font-size` values of the `input`, it causes the cursor style of the
- * decrement button to change from `default` to `text`.
- */
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
-  height: auto; }
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
- *    (include `-moz` to future-proof).
- */
-input[type="search"] {
-  -webkit-appearance: textfield;
-  /* 1 */
-  /* 2 */
-  box-sizing: content-box; }
-
-/**
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
- * Safari (but not Chrome) clips the cancel button when the search input has
- * padding (and `textfield` appearance).
- */
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none; }
-
-/**
- * Define consistent border, margin, and padding.
- */
-fieldset {
-  border: 1px solid #c0c0c0;
-  margin: 0 2px;
-  padding: 0.35em 0.625em 0.75em; }
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-legend {
-  border: 0;
-  /* 1 */
-  padding: 0;
-  /* 2 */ }
-
-/**
- * Remove default vertical scrollbar in IE 8/9/10/11.
- */
-textarea {
-  overflow: auto; }
-
-/**
- * Don't inherit the `font-weight` (applied by a rule above).
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
- */
-optgroup {
-  font-weight: bold; }
-
-/* Tables
-   ========================================================================== */
-/**
- * Remove most spacing between table cells.
- */
-table {
-  border-collapse: collapse;
-  border-spacing: 0; }
-
-td,
-th {
-  padding: 0; }
-
-.highlight table td {
-  padding: 5px; }
-
-.highlight table pre {
-  margin: 0; }
-
-.highlight .cm {
-  color: #999988;
-  font-style: italic; }
-
-.highlight .cp {
-  color: #999999;
-  font-weight: bold; }
-
-.highlight .c1 {
-  color: #999988;
-  font-style: italic; }
-
-.highlight .cs {
-  color: #999999;
-  font-weight: bold;
-  font-style: italic; }
-
-.highlight .c, .highlight .cd {
-  color: #999988;
-  font-style: italic; }
-
-.highlight .err {
-  color: #a61717;
-  background-color: #e3d2d2; }
-
-.highlight .gd {
-  color: #000000;
-  background-color: #ffdddd; }
-
-.highlight .ge {
-  color: #000000;
-  font-style: italic; }
-
-.highlight .gr {
-  color: #aa0000; }
-
-.highlight .gh {
-  color: #999999; }
-
-.highlight .gi {
-  color: #000000;
-  background-color: #ddffdd; }
-
-.highlight .go {
-  color: #888888; }
-
-.highlight .gp {
-  color: #555555; }
-
-.highlight .gs {
-  font-weight: bold; }
-
-.highlight .gu {
-  color: #aaaaaa; }
-
-.highlight .gt {
-  color: #aa0000; }
-
-.highlight .kc {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kd {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kn {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kp {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kr {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kt {
-  color: #445588;
-  font-weight: bold; }
-
-.highlight .k, .highlight .kv {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .mf {
-  color: #009999; }
-
-.highlight .mh {
-  color: #009999; }
-
-.highlight .il {
-  color: #009999; }
-
-.highlight .mi {
-  color: #009999; }
-
-.highlight .mo {
-  color: #009999; }
-
-.highlight .m, .highlight .mb, .highlight .mx {
-  color: #009999; }
-
-.highlight .sb {
-  color: #d14; }
-
-.highlight .sc {
-  color: #d14; }
-
-.highlight .sd {
-  color: #d14; }
-
-.highlight .s2 {
-  color: #d14; }
-
-.highlight .se {
-  color: #d14; }
-
-.highlight .sh {
-  color: #d14; }
-
-.highlight .si {
-  color: #d14; }
-
-.highlight .sx {
-  color: #d14; }
-
-.highlight .sr {
-  color: #009926; }
-
-.highlight .s1 {
-  color: #d14; }
-
-.highlight .ss {
-  color: #990073; }
-
-.highlight .s {
-  color: #d14; }
-
-.highlight .na {
-  color: #008080; }
-
-.highlight .bp {
-  color: #999999; }
-
-.highlight .nb {
-  color: #0086B3; }
-
-.highlight .nc {
-  color: #445588;
-  font-weight: bold; }
-
-.highlight .no {
-  color: #008080; }
-
-.highlight .nd {
-  color: #3c5d5d;
-  font-weight: bold; }
-
-.highlight .ni {
-  color: #800080; }
-
-.highlight .ne {
-  color: #990000;
-  font-weight: bold; }
-
-.highlight .nf {
-  color: #990000;
-  font-weight: bold; }
-
-.highlight .nl {
-  color: #990000;
-  font-weight: bold; }
-
-.highlight .nn {
-  color: #555555; }
-
-.highlight .nt {
-  color: #000080; }
-
-.highlight .vc {
-  color: #008080; }
-
-.highlight .vg {
-  color: #008080; }
-
-.highlight .vi {
-  color: #008080; }
-
-.highlight .nv {
-  color: #008080; }
-
-.highlight .ow {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .o {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .w {
-  color: #bbbbbb; }
-
-.highlight {
-  background-color: #f8f8f8; }
-
-* {
-  box-sizing: border-box; }
-
-body {
-  padding: 0;
-  margin: 0;
-  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 16px;
-  line-height: 1.5;
-  color: #606c71; }
-
-a {
-  color: #1e6bb8;
-  text-decoration: none; }
-  a:hover {
-    text-decoration: underline; }
-
-.btn {
-  display: inline-block;
-  margin-bottom: 1rem;
-  color: rgba(255, 255, 255, 0.7);
-  background-color: rgba(255, 255, 255, 0.08);
-  border-color: rgba(255, 255, 255, 0.2);
-  border-style: solid;
-  border-width: 1px;
-  border-radius: 0.3rem;
-  transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
-  .btn:hover {
-    color: rgba(255, 255, 255, 0.8);
-    text-decoration: none;
-    background-color: rgba(255, 255, 255, 0.2);
-    border-color: rgba(255, 255, 255, 0.3); }
-  .btn + .btn {
-    margin-left: 1rem; }
-  @media screen and (min-width: 64em) {
-    .btn {
-      padding: 0.75rem 1rem; } }
-  @media screen and (min-width: 42em) and (max-width: 64em) {
-    .btn {
-      padding: 0.6rem 0.9rem;
-      font-size: 0.9rem; } }
-  @media screen and (max-width: 42em) {
-    .btn {
-      display: block;
-      width: 100%;
-      padding: 0.75rem;
-      font-size: 0.9rem; }
-      .btn + .btn {
-        margin-top: 1rem;
-        margin-left: 0; } }
-
-.page-header {
-  color: #fff;
-  text-align: center;
-  background-color: #159957;
-  background-image: linear-gradient(120deg, #155799, #159957); }
-  @media screen and (min-width: 64em) {
-    .page-header {
-      padding: 5rem 6rem; } }
-  @media screen and (min-width: 42em) and (max-width: 64em) {
-    .page-header {
-      padding: 3rem 4rem; } }
-  @media screen and (max-width: 42em) {
-    .page-header {
-      padding: 2rem 1rem; } }
-
-.project-name {
-  margin-top: 0;
-  margin-bottom: 0.1rem; }
-  @media screen and (min-width: 64em) {
-    .project-name {
-      font-size: 3.25rem; } }
-  @media screen and (min-width: 42em) and (max-width: 64em) {
-    .project-name {
-      font-size: 2.25rem; } }
-  @media screen and (max-width: 42em) {
-    .project-name {
-      font-size: 1.75rem; } }
-
-.project-tagline {
-  margin-bottom: 2rem;
-  font-weight: normal;
-  opacity: 0.7; }
-  @media screen and (min-width: 64em) {
-    .project-tagline {
-      font-size: 1.25rem; } }
-  @media screen and (min-width: 42em) and (max-width: 64em) {
-    .project-tagline {
-      font-size: 1.15rem; } }
-  @media screen and (max-width: 42em) {
-    .project-tagline {
-      font-size: 1rem; } }
-
-.main-content {
-  word-wrap: break-word; }
-  .main-content :first-child {
-    margin-top: 0; }
-  @media screen and (min-width: 64em) {
-    .main-content {
-      max-width: 64rem;
-      padding: 2rem 6rem;
-      margin: 0 auto;
-      font-size: 1.1rem; } }
-  @media screen and (min-width: 42em) and (max-width: 64em) {
-    .main-content {
-      padding: 2rem 4rem;
-      font-size: 1.1rem; } }
-  @media screen and (max-width: 42em) {
-    .main-content {
-      padding: 2rem 1rem;
-      font-size: 1rem; } }
-  .main-content img {
-    max-width: 100%; }
-  .main-content h1,
-  .main-content h2,
-  .main-content h3,
-  .main-content h4,
-  .main-content h5,
-  .main-content h6 {
-    margin-top: 2rem;
-    margin-bottom: 1rem;
-    font-weight: normal;
-    color: #159957; }
-  .main-content p {
-    margin-bottom: 1em; }
-  .main-content code {
-    padding: 2px 4px;
-    font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
-    font-size: 0.9rem;
-    color: #567482;
-    background-color: #f3f6fa;
-    border-radius: 0.3rem; }
-  .main-content pre {
-    padding: 0.8rem;
-    margin-top: 0;
-    margin-bottom: 1rem;
-    font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace;
-    color: #567482;
-    word-wrap: normal;
-    background-color: #f3f6fa;
-    border: solid 1px #dce6f0;
-    border-radius: 0.3rem; }
-    .main-content pre > code {
-      padding: 0;
-      margin: 0;
-      font-size: 0.9rem;
-      color: #567482;
-      word-break: normal;
-      white-space: pre;
-      background: transparent;
-      border: 0; }
-  .main-content .highlight {
-    margin-bottom: 1rem; }
-    .main-content .highlight pre {
-      margin-bottom: 0;
-      word-break: normal; }
-  .main-content .highlight pre,
-  .main-content pre {
-    padding: 0.8rem;
-    overflow: auto;
-    font-size: 0.9rem;
-    line-height: 1.45;
-    border-radius: 0.3rem;
-    -webkit-overflow-scrolling: touch; }
-  .main-content pre code,
-  .main-content pre tt {
-    display: inline;
-    max-width: initial;
-    padding: 0;
-    margin: 0;
-    overflow: initial;
-    line-height: inherit;
-    word-wrap: normal;
-    background-color: transparent;
-    border: 0; }
-    .main-content pre code:before, .main-content pre code:after,
-    .main-content pre tt:before,
-    .main-content pre tt:after {
-      content: normal; }
-  .main-content ul,
-  .main-content ol {
-    margin-top: 0; }
-  .main-content blockquote {
-    padding: 0 1rem;
-    margin-left: 0;
-    color: #819198;
-    border-left: 0.3rem solid #dce6f0; }
-    .main-content blockquote > :first-child {
-      margin-top: 0; }
-    .main-content blockquote > :last-child {
-      margin-bottom: 0; }
-  .main-content table {
-    display: block;
-    width: 100%;
-    overflow: auto;
-    word-break: normal;
-    word-break: keep-all;
-    -webkit-overflow-scrolling: touch; }
-    .main-content table th {
-      font-weight: bold; }
-    .main-content table th,
-    .main-content table td {
-      padding: 0.5rem 1rem;
-      border: 1px solid #e9ebec; }
-  .main-content dl {
-    padding: 0; }
-    .main-content dl dt {
-      padding: 0;
-      margin-top: 1rem;
-      font-size: 1rem;
-      font-weight: bold; }
-    .main-content dl dd {
-      padding: 0;
-      margin-bottom: 1rem; }
-  .main-content hr {
-    height: 2px;
-    padding: 0;
-    margin: 1rem 0;
-    background-color: #eff0f1;
-    border: 0; }
-
-.site-footer {
-  padding-top: 2rem;
-  margin-top: 2rem;
-  border-top: solid 1px #eff0f1; }
-  @media screen and (min-width: 64em) {
-    .site-footer {
-      font-size: 1rem; } }
-  @media screen and (min-width: 42em) and (max-width: 64em) {
-    .site-footer {
-      font-size: 1rem; } }
-  @media screen and (max-width: 42em) {
-    .site-footer {
-      font-size: 0.9rem; } }
-
-.site-footer-owner {
-  display: block;
-  font-weight: bold; }
-
-.site-footer-credits {
-  color: #819198; }
diff --git a/docs/_site/index.html b/docs/_site/index.html
deleted file mode 100644
index 21aae0f..0000000
--- a/docs/_site/index.html
+++ /dev/null
@@ -1,218 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="UTF-8">
-
-<!-- Begin Jekyll SEO tag v2.3.0 -->
-<title>Containernet | Use Docker containers as hosts in Mininet emulations.</title>
-<meta property="og:title" content="Containernet" />
-<meta property="og:locale" content="en_US" />
-<meta name="description" content="Use Docker containers as hosts in Mininet emulations." />
-<meta property="og:description" content="Use Docker containers as hosts in Mininet emulations." />
-<link rel="canonical" href="http://localhost:4000/" />
-<meta property="og:url" content="http://localhost:4000/" />
-<meta property="og:site_name" content="Containernet" />
-<script type="application/ld+json">
-{"name":"Containernet","description":"Use Docker containers as hosts in Mininet emulations.","author":null,"@type":"WebSite","url":"http://localhost:4000/","publisher":null,"image":null,"headline":"Containernet","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
-<!-- End Jekyll SEO tag -->
-
-    <meta name="description" content="Use Docker containers as hosts in Mininet emulations."/>
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="theme-color" content="#157878">
-    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="/assets/css/style.css?v=">
-  </head>
-  <body>
-    <section class="page-header">
-      <h1 class="project-name">Containernet</h1>
-      <h2 class="project-tagline">Use Docker containers as hosts in Mininet emulations.</h2>
-      <a href="#overview" class="btn">Overview</a>
-      <a href="#get-started" class="btn">Get started</a>
-      <a href="#installation" class="btn">Installation</a>
-      <a href="#references" class="btn">References</a>
-      <a href="#contact" class="btn">Contact</a>
-      <a href="https://github.com/containernet/containernet" class="btn">GitHub</a>
-      <!--
-      
-      
-        <a href="" class="btn">Download .zip</a>
-        <a href="" class="btn">Download .tar.gz</a>
-      
-       -->
-    </section>
-
-    <section class="main-content">
-      <h1 id="overview"><a href="#overview"></a>Overview</h1>
-
-<p>Containernet is a fork of the famous <a href="http://mininet.org">Mininet</a> network emulator and allows to use <a href="https://www.docker.com">Docker</a> containers as hosts in the emulated network topologies. This enables interesting functionalities to build networking/cloud emulators and testbeds. One example for this is the <a href="https://github.com/sonata-nfv/son-emu">NFV multi-PoP infrastructure emulator</a> created by the <a href="http://sonata-nfv.eu">SONATA</a> project.</p>
-
-<h2 id="containernet-in-action">Containernet in action</h2>
-
-<script type="text/javascript" src="https://asciinema.org/a/4eSesgrJL8t2VikiDnHoD9qRF.js" id="asciicast-4eSesgrJL8t2VikiDnHoD9qRF" async="" data-autoplay="true" data-size="medium" data-loop="true" data-rows="12"></script>
-
-<h2 id="cite-this-work">Cite this work</h2>
-
-<p>If you use <a href="containernet.github.io">Containernet</a> for your work, please cite the following publication:</p>
-
-<ul>
-  <li>M. Peuster, H. Karl, and S. v. Rossem: <a href="http://ieeexplore.ieee.org/document/7919490/">MeDICINE: Rapid Prototyping of Production-Ready Network Services in Multi-PoP Environments</a>. IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Palo Alto, CA, USA, pp. 148-153. doi: 10.1109/NFV-SDN.2016.7919490. (2016)</li>
-</ul>
-
-<h1 id="get-started"><a href="#get-started"></a>Get started</h1>
-
-<p>Using Containernet is very similar to using Mininet with <a href="http://mininet.org/walkthrough/#custom-topologies">custom topologies</a>.</p>
-
-<h2 id="create-a-custom-topology">Create a custom topology</h2>
-
-<p>First, a Python-based topology has to be created as shown in the following example.</p>
-
-<div class="language-python highlighter-rouge"><pre class="highlight"><code><span class="s">"""
-Example topology with two containers (d1, d2),
-two switches, and one controller:
-
-          - (c)-
-         |      |
-(d1) - (s1) - (s2) - (d2)
-"""</span>
-<span class="kn">from</span> <span class="nn">mininet.net</span> <span class="kn">import</span> <span class="n">Containernet</span>
-<span class="kn">from</span> <span class="nn">mininet.node</span> <span class="kn">import</span> <span class="n">Controller</span>
-<span class="kn">from</span> <span class="nn">mininet.cli</span> <span class="kn">import</span> <span class="n">CLI</span>
-<span class="kn">from</span> <span class="nn">mininet.link</span> <span class="kn">import</span> <span class="n">TCLink</span>
-<span class="kn">from</span> <span class="nn">mininet.log</span> <span class="kn">import</span> <span class="n">info</span><span class="p">,</span> <span class="n">setLogLevel</span>
-<span class="n">setLogLevel</span><span class="p">(</span><span class="s">'info'</span><span class="p">)</span>
-
-<span class="n">net</span> <span class="o">=</span> <span class="n">Containernet</span><span class="p">(</span><span class="n">controller</span><span class="o">=</span><span class="n">Controller</span><span class="p">)</span>
-<span class="n">info</span><span class="p">(</span><span class="s">'*** Adding controller</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>
-<span class="n">net</span><span class="o">.</span><span class="n">addController</span><span class="p">(</span><span class="s">'c0'</span><span class="p">)</span>
-<span class="n">info</span><span class="p">(</span><span class="s">'*** Adding docker containers using ubuntu:trusty images</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>
-<span class="n">d1</span> <span class="o">=</span> <span class="n">net</span><span class="o">.</span><span class="n">addDocker</span><span class="p">(</span><span class="s">'d1'</span><span class="p">,</span> <span class="n">ip</span><span class="o">=</span><span class="s">'10.0.0.251'</span><span class="p">,</span> <span class="n">dimage</span><span class="o">=</span><span class="s">"ubuntu:trusty"</span><span class="p">)</span>
-<span class="n">d2</span> <span class="o">=</span> <span class="n">net</span><span class="o">.</span><span class="n">addDocker</span><span class="p">(</span><span class="s">'d2'</span><span class="p">,</span> <span class="n">ip</span><span class="o">=</span><span class="s">'10.0.0.252'</span><span class="p">,</span> <span class="n">dimage</span><span class="o">=</span><span class="s">"ubuntu:trusty"</span><span class="p">)</span>
-<span class="n">info</span><span class="p">(</span><span class="s">'*** Adding switches</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>
-<span class="n">s1</span> <span class="o">=</span> <span class="n">net</span><span class="o">.</span><span class="n">addSwitch</span><span class="p">(</span><span class="s">'s1'</span><span class="p">)</span>
-<span class="n">s2</span> <span class="o">=</span> <span class="n">net</span><span class="o">.</span><span class="n">addSwitch</span><span class="p">(</span><span class="s">'s2'</span><span class="p">)</span>
-<span class="n">info</span><span class="p">(</span><span class="s">'*** Creating links</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>
-<span class="n">net</span><span class="o">.</span><span class="n">addLink</span><span class="p">(</span><span class="n">d1</span><span class="p">,</span> <span class="n">s1</span><span class="p">)</span>
-<span class="n">net</span><span class="o">.</span><span class="n">addLink</span><span class="p">(</span><span class="n">s1</span><span class="p">,</span> <span class="n">s2</span><span class="p">,</span> <span class="n">cls</span><span class="o">=</span><span class="n">TCLink</span><span class="p">,</span> <span class="n">delay</span><span class="o">=</span><span class="s">'100ms'</span><span class="p">,</span> <span class="n">bw</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
-<span class="n">net</span><span class="o">.</span><span class="n">addLink</span><span class="p">(</span><span class="n">s2</span><span class="p">,</span> <span class="n">d2</span><span class="p">)</span>
-<span class="n">info</span><span class="p">(</span><span class="s">'*** Starting network</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>
-<span class="n">net</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
-<span class="n">info</span><span class="p">(</span><span class="s">'*** Testing connectivity</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>
-<span class="n">net</span><span class="o">.</span><span class="n">ping</span><span class="p">([</span><span class="n">d1</span><span class="p">,</span> <span class="n">d2</span><span class="p">])</span>
-<span class="n">info</span><span class="p">(</span><span class="s">'*** Running CLI</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>
-<span class="n">CLI</span><span class="p">(</span><span class="n">net</span><span class="p">)</span>
-<span class="n">info</span><span class="p">(</span><span class="s">'*** Stopping network'</span><span class="p">)</span>
-<span class="n">net</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
-</code></pre>
-</div>
-
-<p>You can find this topology in <a href="https://github.com/containernet/containernet/tree/master/examples/containernet_example.py"><code class="highlighter-rouge">containernet/examples/containernet_example.py</code></a>.</p>
-
-<h2 id="run-emulation-and-interact-with-containers">Run emulation and interact with containers</h2>
-
-<p>Containernet requires root access to configure the emulated network described by the topology script:</p>
-
-<div class="language-bash highlighter-rouge"><pre class="highlight"><code>sudo python containernet_example.py
-</code></pre>
-</div>
-
-<p>After launching the emulated network, you can interact with the involved containers through Mininet’s interactive CLI as shown with the <code class="highlighter-rouge">ping</code> command in the following example:</p>
-
-<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">containernet&gt; </span>d1 ping -c3 d2
-PING 10.0.0.252 <span class="o">(</span>10.0.0.252<span class="o">)</span> 56<span class="o">(</span>84<span class="o">)</span> bytes of data.
-64 bytes from 10.0.0.252: <span class="nv">icmp_seq</span><span class="o">=</span>1 <span class="nv">ttl</span><span class="o">=</span>64 <span class="nb">time</span><span class="o">=</span>200 ms
-64 bytes from 10.0.0.252: <span class="nv">icmp_seq</span><span class="o">=</span>2 <span class="nv">ttl</span><span class="o">=</span>64 <span class="nb">time</span><span class="o">=</span>200 ms
-64 bytes from 10.0.0.252: <span class="nv">icmp_seq</span><span class="o">=</span>3 <span class="nv">ttl</span><span class="o">=</span>64 <span class="nb">time</span><span class="o">=</span>200 ms
-
---- 10.0.0.252 ping statistics ---
-3 packets transmitted, 3 received, 0% packet loss, <span class="nb">time </span>2002ms
-rtt min/avg/max/mdev <span class="o">=</span> 200.162/200.316/200.621/0.424 ms
-containernet&gt;
-</code></pre>
-</div>
-
-<p>To stop the emulation, do:</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>containernet&gt; exit
-</code></pre>
-</div>
-
-<h1 id="installation"><a href="#installation"></a>Installation</h1>
-
-<p>Automatic installation is provided using an Ansible playbook. Requires a bare-metal machine or VM with Ubuntu <strong>16.04 LTS</strong>.</p>
-
-<div class="language-bash highlighter-rouge"><pre class="highlight"><code>sudo apt-get install ansible git aptitude
-git clone https://github.com/containernet/containernet.git
-<span class="nb">cd </span>containernet/ansible
-sudo ansible-playbook -i <span class="s2">"localhost,"</span> -c <span class="nb">local </span>install.yml
-</code></pre>
-</div>
-
-<h1 id="references"><a href="#references"></a>References</h1>
-
-<p>Containernet has been used for a variety of research tasks and networking projects. If you use Containernet, let us <a href="mailto:containernet@peuster.de">know</a>.</p>
-
-<h2 id="publications">Publications</h2>
-
-<ul>
-  <li>
-    <p>S. v. Rossem, W. Tavernier, M. Peuster, D. Colle, M. Pickavet and P. Demeester: <a href="https://biblio.ugent.be/publication/8521281/file/8521284.pdf">Monitoring and debugging using an SDK for NFV-powered telecom applications</a>. IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Palo Alto, CA, USA, Demo Session. (2016)</p>
-  </li>
-  <li>
-    <p>M. Peuster, H. Karl: <a href="http://ieeexplore.ieee.org/document/7956044/">Understand Your Chains: Towards Performance Profile-based Network Service Management.</a> Accepted in Fifth European Workshop on Software Defined Networks (EWSDN). IEEE. (2016)</p>
-  </li>
-  <li>
-    <p>Qiao, Yuansong, et al. <a href="http://ieeexplore.ieee.org/document/7543832/">Doopnet: An emulator for network performance analysis of Hadoop clusters using Docker and Mininet.</a> Computers and Communication (ISCC), 2016 IEEE Symposium on. IEEE, 2016.</p>
-  </li>
-  <li>
-    <p>M. Peuster, S. Dräxler, H. Razzaghi, S. v. Rossem, W. Tavernier and H. Karl: <a href="https://cs.uni-paderborn.de/fileadmin/informatik/fg/cn/Publications_Conference_Paper/Publications_Conference_Paper_2017/peuster_netsoft_demo_paper_2017.pdf">A Flexible Multi-PoP Infrastructure Emulator for Carrier-grade MANO Systems</a>. In IEEE 3rd Conference on Network Softwarization (NetSoft) Demo Track . (2017) <strong>Best demo award!</strong></p>
-  </li>
-  <li>
-    <p>M. Peuster and H. Karl: Profile Your Chains, Not Functions: Automated Network Service Profiling in DevOps Environments. IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Berlin, Germany. (2017) (accepted)</p>
-  </li>
-</ul>
-
-<h2 id="links">Links</h2>
-
-<ul>
-  <li><a href="http://mininet.org">Mininet website</a></li>
-  <li><a href="http://maxinet.github.io">Maxinet website</a></li>
-  <li><a href="https://www.docker.com">Docker</a></li>
-</ul>
-
-<h1 id="contact"><a href="#contact"></a>Contact</h1>
-
-<h2 id="support">Support</h2>
-<p>If you have any questions, please use GitHub’s <a href="https://github.com/containernet/containernet/issues">issue system</a> or Containernet’s <a href="https://gitter.im/containernet/">Gitter channel</a> to get in touch.</p>
-
-<h2 id="contribute">Contribute</h2>
-<p>Your contributions are very welcome! Please fork the GitHub repository and create a pull request. We use <a href="https://travis-ci.org/containernet/containernet">Travis-CI</a> to automatically test new commits.</p>
-
-<h2 id="lead-developer">Lead developer</h2>
-
-<p>Manuel Peuster</p>
-<ul>
-  <li>Mail: &lt;manuel (dot) peuster (at) upb (dot) de&gt;</li>
-  <li>GitHub: <a href="https://github.com/mpeuster">@mpeuster</a></li>
-  <li>Website: <a href="https://cs.uni-paderborn.de/cn/person/?tx_upbperson_personsite%5BpersonId%5D=13271&amp;tx_upbperson_personsite%5Bcontroller%5D=Person&amp;cHash=bafec92c0ada0bdfe8af6e2ed99efb4e">Paderborn University</a></li>
-</ul>
-
-
-      <footer class="site-footer">
-        
-        <span class="site-footer-credits">This page was generated by <a href="https://pages.github.com">GitHub Pages</a>.</span>
-      </footer>
-    </section>
-
-    
-      <script type="text/javascript">
-        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-        ga('create', 'UA-105785493-1', 'auto');
-        ga('send', 'pageview');
-      </script>
-    
-  </body>
-</html>
diff --git a/docs/_site/index.md.bak b/docs/_site/index.md.bak
deleted file mode 100644
index 5a85f44..0000000
--- a/docs/_site/index.md.bak
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="UTF-8">
-
-<!-- Begin Jekyll SEO tag v2.3.0 -->
-<title>Containernet | Use Docker containers as hosts in Mininet emulations.</title>
-<meta property="og:title" content="Containernet" />
-<meta property="og:locale" content="en_US" />
-<meta name="description" content="Use Docker containers as hosts in Mininet emulations." />
-<meta property="og:description" content="Use Docker containers as hosts in Mininet emulations." />
-<link rel="canonical" href="http://localhost:4000/index.md.bak" />
-<meta property="og:url" content="http://localhost:4000/index.md.bak" />
-<meta property="og:site_name" content="Containernet" />
-<script type="application/ld+json">
-{"name":null,"description":"Use Docker containers as hosts in Mininet emulations.","author":null,"@type":"WebPage","url":"http://localhost:4000/index.md.bak","publisher":null,"image":null,"headline":"Containernet","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
-<!-- End Jekyll SEO tag -->
-
-    <meta name="description" content="Use Docker containers as hosts in Mininet emulations."/>
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="theme-color" content="#157878">
-    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="/assets/css/style.css?v=">
-  </head>
-  <body>
-    <section class="page-header">
-      <h1 class="project-name">Containernet</h1>
-      <h2 class="project-tagline">Use Docker containers as hosts in Mininet emulations.</h2>
-      <a href="#overview" class="btn">Overview</a>
-      <a href="#get-started" class="btn">Get started</a>
-      <a href="#installation" class="btn">Installation</a>
-      <a href="#references" class="btn">References</a>
-      <a href="#contact" class="btn">Contact</a>
-      <a href="https://github.com/containernet/containernet" class="btn">GitHub</a>
-      <!--
-      
-      
-        <a href="" class="btn">Download .zip</a>
-        <a href="" class="btn">Download .tar.gz</a>
-      
-       -->
-    </section>
-
-    <section class="main-content">
-      Text can be **bold**, _italic_, or ~~strikethrough~~.
-
-[Link to another page](another-page).
-
-There should be whitespace between paragraphs.
-
-There should be whitespace between paragraphs. We recommend including a README, or a file with information about your project.
-
-# [](#header-1)Header 1
-
-This is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.
-
-## [](#header-2)Header 2
-
-> This is a blockquote following a header.
->
-> When something is important enough, you do it even if the odds are not in your favor.
-
-### [](#header-3)Header 3
-
-```js
-// Javascript code with syntax highlighting.
-var fun = function lang(l) {
-  dateformat.i18n = require('./lang/' + l)
-  return true;
-}
-```
-
-```ruby
-# Ruby code with syntax highlighting
-GitHubPages::Dependencies.gems.each do |gem, version|
-  s.add_dependency(gem, "= #{version}")
-end
-```
-
-#### [](#header-4)Header 4
-
-*   This is an unordered list following a header.
-*   This is an unordered list following a header.
-*   This is an unordered list following a header.
-
-##### [](#header-5)Header 5
-
-1.  This is an ordered list following a header.
-2.  This is an ordered list following a header.
-3.  This is an ordered list following a header.
-
-###### [](#header-6)Header 6
-
-| head1        | head two          | three |
-|:-------------|:------------------|:------|
-| ok           | good swedish fish | nice  |
-| out of stock | good and plenty   | nice  |
-| ok           | good `oreos`      | hmm   |
-| ok           | good `zoute` drop | yumm  |
-
-### There's a horizontal rule below this.
-
-* * *
-
-### Here is an unordered list:
-
-*   Item foo
-*   Item bar
-*   Item baz
-*   Item zip
-
-### And an ordered list:
-
-1.  Item one
-1.  Item two
-1.  Item three
-1.  Item four
-
-### And a nested list:
-
-- level 1 item
-  - level 2 item
-  - level 2 item
-    - level 3 item
-    - level 3 item
-- level 1 item
-  - level 2 item
-  - level 2 item
-  - level 2 item
-- level 1 item
-  - level 2 item
-  - level 2 item
-- level 1 item
-
-### Small image
-
-![](https://assets-cdn.github.com/images/icons/emoji/octocat.png)
-
-### Large image
-
-![](https://guides.github.com/activities/hello-world/branching.png)
-
-
-### Definition lists can be used with HTML syntax.
-
-<dl>
-<dt>Name</dt>
-<dd>Godzilla</dd>
-<dt>Born</dt>
-<dd>1952</dd>
-<dt>Birthplace</dt>
-<dd>Japan</dd>
-<dt>Color</dt>
-<dd>Green</dd>
-</dl>
-
-```
-Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this.
-```
-
-```
-The final element.
-```
-
-
-      <footer class="site-footer">
-        
-        <span class="site-footer-credits">This page was generated by <a href="https://pages.github.com">GitHub Pages</a>.</span>
-      </footer>
-    </section>
-
-    
-      <script type="text/javascript">
-        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-        ga('create', 'UA-105785493-1', 'auto');
-        ga('send', 'pageview');
-      </script>
-    
-  </body>
-</html>
diff --git a/docs/_site/jekyll-theme-cayman.gemspec b/docs/_site/jekyll-theme-cayman.gemspec
deleted file mode 100644
index f5363f3..0000000
--- a/docs/_site/jekyll-theme-cayman.gemspec
+++ /dev/null
@@ -1,19 +0,0 @@
-# encoding: utf-8
-
-Gem::Specification.new do |s|
-  s.name          = "jekyll-theme-cayman"
-  s.version       = "0.1.0"
-  s.license       = "CC0-1.0"
-  s.authors       = ["Jason Long", "GitHub, Inc."]
-  s.email         = ["opensource+jekyll-theme-cayman@github.com"]
-  s.homepage      = "https://github.com/pages-themes/cayman"
-  s.summary       = "Cayman is a Jekyll theme for GitHub Pages"
-
-  s.files         = `git ls-files -z`.split("\x0").select do |f|
-    f.match(%r{^((_includes|_layouts|_sass|assets)/|(LICENSE|README)((\.(txt|md|markdown)|$)))}i)
-  end
-
-  s.platform      = Gem::Platform::RUBY
-  s.add_runtime_dependency "jekyll", "~> 3.5"
-  s.add_runtime_dependency "jekyll-seo-tag", "~> 2.0"
-end
diff --git a/docs/_site/script/bootstrap b/docs/_site/script/bootstrap
deleted file mode 100755
index 492e553..0000000
--- a/docs/_site/script/bootstrap
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-set -e
-
-gem install bundler
-bundle install
diff --git a/docs/_site/script/cibuild b/docs/_site/script/cibuild
deleted file mode 100755
index f627530..0000000
--- a/docs/_site/script/cibuild
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-set -e
-
-bundle exec jekyll build
-gem build jekyll-theme-cayman.gemspec
diff --git a/docs/_site/script/release b/docs/_site/script/release
deleted file mode 100755
index fb400aa..0000000
--- a/docs/_site/script/release
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-# Tag and push a release.
-
-set -e
-
-# Make sure we're in the project root.
-
-cd $(dirname "$0")/..
-
-# Make sure the darn thing works
-
-bundle update
-
-# Build a new gem archive.
-
-rm -rf jekyll-theme-cayman-*.gem
-gem build -q jekyll-theme-cayman.gemspec
-
-# Make sure we're on the master branch.
-
-(git branch | grep -q 'master') || {
-  echo "Only release from the master branch."
-  exit 1
-}
-
-# Figure out what version we're releasing.
-
-tag=v`ls jekyll-theme-cayman-*.gem | sed 's/^jekyll-theme-cayman-\(.*\)\.gem$/\1/'`
-
-# Make sure we haven't released this version before.
-
-git fetch -t origin
-
-(git tag -l | grep -q "$tag") && {
-  echo "Whoops, there's already a '${tag}' tag."
-  exit 1
-}
-
-# Tag it and bag it.
-
-gem push jekyll-theme-cayman-*.gem && git tag "$tag" &&
-  git push origin master && git push origin "$tag"
diff --git a/docs/_site/script/server b/docs/_site/script/server
deleted file mode 100755
index d8c3e15..0000000
--- a/docs/_site/script/server
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-bundle exec jekyll serve
diff --git a/docs/_site/thumbnail.png b/docs/_site/thumbnail.png
deleted file mode 100644
index d06bb2a..0000000
--- a/docs/_site/thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/docs/another-page.md b/docs/another-page.md
deleted file mode 100644
index 03ce0c2..0000000
--- a/docs/another-page.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: default
----
-
-## Welcome to another page
-
-_yay_
-
-[back](./)
diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss
deleted file mode 100644
index 46e65d9..0000000
--- a/docs/assets/css/style.scss
+++ /dev/null
@@ -1,4 +0,0 @@
----
----
-
-@import 'jekyll-theme-cayman';
diff --git a/docs/index.md b/docs/index.md
deleted file mode 100644
index 9980635..0000000
--- a/docs/index.md
+++ /dev/null
@@ -1,145 +0,0 @@
----
-layout: default
----
-
-
-# [](#overview)Overview
-
-Containernet is a fork of the famous [Mininet](http://mininet.org) network emulator and allows to use [Docker](https://www.docker.com) containers as hosts in the emulated network topologies. This enables interesting functionalities to build networking/cloud emulators and testbeds. One example for this is the [NFV multi-PoP infrastructure emulator](https://github.com/sonata-nfv/son-emu) created by the [SONATA](http://sonata-nfv.eu) project.
-
-## Containernet in action
-
-<script type="text/javascript" src="https://asciinema.org/a/4eSesgrJL8t2VikiDnHoD9qRF.js" id="asciicast-4eSesgrJL8t2VikiDnHoD9qRF" async data-autoplay="true" data-size="medium" data-loop="true" data-rows="12"></script>
-
-## Cite this work
-
-If you use [Containernet](containernet.github.io) for your work, please cite the following publication:
-
-* M. Peuster, H. Karl, and S. v. Rossem: [MeDICINE: Rapid Prototyping of Production-Ready Network Services in Multi-PoP Environments](http://ieeexplore.ieee.org/document/7919490/). IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Palo Alto, CA, USA, pp. 148-153. doi: 10.1109/NFV-SDN.2016.7919490. (2016)
-
-
-# [](#get-started)Get started
-
-Using Containernet is very similar to using Mininet with [custom topologies](http://mininet.org/walkthrough/#custom-topologies).
-
-## Create a custom topology
-
-First, a Python-based topology has to be created as shown in the following example.
-
-```python
-"""
-Example topology with two containers (d1, d2),
-two switches, and one controller:
-
-          - (c)-
-         |      |
-(d1) - (s1) - (s2) - (d2)
-"""
-from mininet.net import Containernet
-from mininet.node import Controller
-from mininet.cli import CLI
-from mininet.link import TCLink
-from mininet.log import info, setLogLevel
-setLogLevel('info')
-
-net = Containernet(controller=Controller)
-info('*** Adding controller\n')
-net.addController('c0')
-info('*** Adding docker containers using ubuntu:trusty images\n')
-d1 = net.addDocker('d1', ip='10.0.0.251', dimage="ubuntu:trusty")
-d2 = net.addDocker('d2', ip='10.0.0.252', dimage="ubuntu:trusty")
-info('*** Adding switches\n')
-s1 = net.addSwitch('s1')
-s2 = net.addSwitch('s2')
-info('*** Creating links\n')
-net.addLink(d1, s1)
-net.addLink(s1, s2, cls=TCLink, delay='100ms', bw=1)
-net.addLink(s2, d2)
-info('*** Starting network\n')
-net.start()
-info('*** Testing connectivity\n')
-net.ping([d1, d2])
-info('*** Running CLI\n')
-CLI(net)
-info('*** Stopping network')
-net.stop()
-```
-
-You can find this topology in [`containernet/examples/containernet_example.py`](https://github.com/containernet/containernet/tree/master/examples/containernet_example.py).
-
-## Run emulation and interact with containers
-
-Containernet requires root access to configure the emulated network described by the topology script:
-
-```bash
-sudo python containernet_example.py
-```
-
-After launching the emulated network, you can interact with the involved containers through Mininet's interactive CLI as shown with the `ping` command in the following example:
-
-```bash
-containernet> d1 ping -c3 d2
-PING 10.0.0.252 (10.0.0.252) 56(84) bytes of data.
-64 bytes from 10.0.0.252: icmp_seq=1 ttl=64 time=200 ms
-64 bytes from 10.0.0.252: icmp_seq=2 ttl=64 time=200 ms
-64 bytes from 10.0.0.252: icmp_seq=3 ttl=64 time=200 ms
-
---- 10.0.0.252 ping statistics ---
-3 packets transmitted, 3 received, 0% packet loss, time 2002ms
-rtt min/avg/max/mdev = 200.162/200.316/200.621/0.424 ms
-containernet>
-```
-
-To stop the emulation, do:
-
-```
-containernet> exit
-```
-
-# [](#installation)Installation
-
-Automatic installation is provided using an Ansible playbook. Requires a bare-metal machine or VM with Ubuntu **16.04 LTS**.
-
-```bash
-sudo apt-get install ansible git aptitude
-git clone https://github.com/containernet/containernet.git
-cd containernet/ansible
-sudo ansible-playbook -i "localhost," -c local install.yml
-```
-
-# [](#references)References
-
-Containernet has been used for a variety of research tasks and networking projects. If you use Containernet, let us [know](mailto:containernet@peuster.de).
-
-## Publications
-
-* S. v. Rossem, W. Tavernier, M. Peuster, D. Colle, M. Pickavet and P. Demeester: [Monitoring and debugging using an SDK for NFV-powered telecom applications](https://biblio.ugent.be/publication/8521281/file/8521284.pdf). IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Palo Alto, CA, USA, Demo Session. (2016)
-
-* M. Peuster, H. Karl: [Understand Your Chains: Towards Performance Profile-based Network Service Management.](http://ieeexplore.ieee.org/document/7956044/) Accepted in Fifth European Workshop on Software Defined Networks (EWSDN). IEEE. (2016)
-
-* Qiao, Yuansong, et al. [Doopnet: An emulator for network performance analysis of Hadoop clusters using Docker and Mininet.](http://ieeexplore.ieee.org/document/7543832/) Computers and Communication (ISCC), 2016 IEEE Symposium on. IEEE, 2016.
-
-* M. Peuster, S. Dräxler, H. Razzaghi, S. v. Rossem, W. Tavernier and H. Karl: [A Flexible Multi-PoP Infrastructure Emulator for Carrier-grade MANO Systems](https://cs.uni-paderborn.de/fileadmin/informatik/fg/cn/Publications_Conference_Paper/Publications_Conference_Paper_2017/peuster_netsoft_demo_paper_2017.pdf). In IEEE 3rd Conference on Network Softwarization (NetSoft) Demo Track . (2017) **Best demo award!**
-
-* M. Peuster and H. Karl: Profile Your Chains, Not Functions: Automated Network Service Profiling in DevOps Environments. IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Berlin, Germany. (2017) (accepted)
-
-## Links
-
-* [Mininet website](http://mininet.org)
-* [Maxinet website](http://maxinet.github.io)
-* [Docker](https://www.docker.com)
-
-# [](#contact)Contact
-
-## Support
-If you have any questions, please use GitHub's [issue system](https://github.com/containernet/containernet/issues) or Containernet's [Gitter channel](https://gitter.im/containernet/) to get in touch.
-
-## Contribute
-Your contributions are very welcome! Please fork the GitHub repository and create a pull request. We use [Travis-CI](https://travis-ci.org/containernet/containernet) to automatically test new commits. 
-
-## Lead developer
-
-Manuel Peuster
-* Mail: <manuel (dot) peuster (at) upb (dot) de>
-* GitHub: [@mpeuster](https://github.com/mpeuster)
-* Website: [Paderborn University](https://cs.uni-paderborn.de/cn/person/?tx_upbperson_personsite%5BpersonId%5D=13271&tx_upbperson_personsite%5Bcontroller%5D=Person&cHash=bafec92c0ada0bdfe8af6e2ed99efb4e)
diff --git a/docs/jekyll-theme-cayman.gemspec b/docs/jekyll-theme-cayman.gemspec
deleted file mode 100644
index f5363f3..0000000
--- a/docs/jekyll-theme-cayman.gemspec
+++ /dev/null
@@ -1,19 +0,0 @@
-# encoding: utf-8
-
-Gem::Specification.new do |s|
-  s.name          = "jekyll-theme-cayman"
-  s.version       = "0.1.0"
-  s.license       = "CC0-1.0"
-  s.authors       = ["Jason Long", "GitHub, Inc."]
-  s.email         = ["opensource+jekyll-theme-cayman@github.com"]
-  s.homepage      = "https://github.com/pages-themes/cayman"
-  s.summary       = "Cayman is a Jekyll theme for GitHub Pages"
-
-  s.files         = `git ls-files -z`.split("\x0").select do |f|
-    f.match(%r{^((_includes|_layouts|_sass|assets)/|(LICENSE|README)((\.(txt|md|markdown)|$)))}i)
-  end
-
-  s.platform      = Gem::Platform::RUBY
-  s.add_runtime_dependency "jekyll", "~> 3.5"
-  s.add_runtime_dependency "jekyll-seo-tag", "~> 2.0"
-end
diff --git a/docs/script/bootstrap b/docs/script/bootstrap
deleted file mode 100755
index 492e553..0000000
--- a/docs/script/bootstrap
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-set -e
-
-gem install bundler
-bundle install
diff --git a/docs/script/cibuild b/docs/script/cibuild
deleted file mode 100755
index f627530..0000000
--- a/docs/script/cibuild
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-set -e
-
-bundle exec jekyll build
-gem build jekyll-theme-cayman.gemspec
diff --git a/docs/script/release b/docs/script/release
deleted file mode 100755
index fb400aa..0000000
--- a/docs/script/release
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-# Tag and push a release.
-
-set -e
-
-# Make sure we're in the project root.
-
-cd $(dirname "$0")/..
-
-# Make sure the darn thing works
-
-bundle update
-
-# Build a new gem archive.
-
-rm -rf jekyll-theme-cayman-*.gem
-gem build -q jekyll-theme-cayman.gemspec
-
-# Make sure we're on the master branch.
-
-(git branch | grep -q 'master') || {
-  echo "Only release from the master branch."
-  exit 1
-}
-
-# Figure out what version we're releasing.
-
-tag=v`ls jekyll-theme-cayman-*.gem | sed 's/^jekyll-theme-cayman-\(.*\)\.gem$/\1/'`
-
-# Make sure we haven't released this version before.
-
-git fetch -t origin
-
-(git tag -l | grep -q "$tag") && {
-  echo "Whoops, there's already a '${tag}' tag."
-  exit 1
-}
-
-# Tag it and bag it.
-
-gem push jekyll-theme-cayman-*.gem && git tag "$tag" &&
-  git push origin master && git push origin "$tag"
diff --git a/docs/script/server b/docs/script/server
deleted file mode 100755
index d8c3e15..0000000
--- a/docs/script/server
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-bundle exec jekyll serve
