diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d4c2264
--- /dev/null
+++ b/README.md
@@ -0,0 +1,34 @@
+This module integrates the vis.js visualization library.  Vis provides the
+following modules:
+  - vis.min.js
+  - vis.map -- JSON file containing labels, etc. used by vis.js
+  - vis_graph3d.min;js -- Create interactive, animated 3d graphs. Surfaces,
+    lines, dots and block styling out of the box.
+  - vis_timeline_graph2d.min.js -- Draw graphs and bar charts on an interactive
+    timeline and personalize it the way you want.
+  - vis_network.min.js -- Display dynamic, automatically organised, customizable
+    network views
+
+
+To use:
+1.  Install vis.js in a known library location-- /libraries, /sites/all/libraries
+    or /sites/YOUR_SITE/libraries.
+    a.  Download vis.zip from http://visjs.org/#download_install and put it in
+        your chosen libraries directory
+    b.  Unzip the file.
+
+2.  Enable the VisJS module (under Libraries at admin/modules).
+
+3.  When you want to use vis in a module, add it as a dependency to a library
+    in your module's libraries.yml file, e.g., this gets vis.min.js and
+    vis_graph3d.js:
+
+    my_library_using_vis:
+      version: 1.0
+      dependencies:
+        - vis
+        - vis.graph3d
+
+See http://visjs.org/ for full documentation.
+
+
diff --git a/visjs-2706621.patch b/visjs-2706621.patch
new file mode 100644
index 0000000..8c39648
--- /dev/null
+++ b/visjs-2706621.patch
@@ -0,0 +1,216 @@
+diff --git a/README.md b/README.md
+new file mode 100644
+index 0000000..d4c2264
+--- /dev/null
++++ b/README.md
+@@ -0,0 +1,34 @@
++This module integrates the vis.js visualization library.  Vis provides the
++following modules:
++  - vis.min.js
++  - vis.map -- JSON file containing labels, etc. used by vis.js
++  - vis_graph3d.min;js -- Create interactive, animated 3d graphs. Surfaces,
++    lines, dots and block styling out of the box.
++  - vis_timeline_graph2d.min.js -- Draw graphs and bar charts on an interactive
++    timeline and personalize it the way you want.
++  - vis_network.min.js -- Display dynamic, automatically organised, customizable
++    network views
++
++
++To use:
++1.  Install vis.js in a known library location-- /libraries, /sites/all/libraries
++    or /sites/YOUR_SITE/libraries.
++    a.  Download vis.zip from http://visjs.org/#download_install and put it in
++        your chosen libraries directory
++    b.  Unzip the file.
++
++2.  Enable the VisJS module (under Libraries at admin/modules).
++
++3.  When you want to use vis in a module, add it as a dependency to a library
++    in your module's libraries.yml file, e.g., this gets vis.min.js and
++    vis_graph3d.js:
++
++    my_library_using_vis:
++      version: 1.0
++      dependencies:
++        - vis
++        - vis.graph3d
++
++See http://visjs.org/ for full documentation.
++
++
+diff --git a/visjs.info b/visjs.info
+deleted file mode 100644
+index 4dcd529..0000000
+--- a/visjs.info
++++ /dev/null
+@@ -1,4 +0,0 @@
+-name = Vis.js
+-description = A dynamic, browser based visualization javascript library.
+-dependencies[] = libraries (2.x)
+-core = 7.x
+diff --git a/visjs.info.yml b/visjs.info.yml
+new file mode 100644
+index 0000000..2e672bc
+--- /dev/null
++++ b/visjs.info.yml
+@@ -0,0 +1,9 @@
++name: VisJS
++type: module
++description: Provides the vis.js library
++
++core: 8.x
++package: Libraries
++
++dependencies:
++  - system_stream_wrapper
+\ No newline at end of file
+diff --git a/visjs.install b/visjs.install
+new file mode 100644
+index 0000000..4a3ca6d
+--- /dev/null
++++ b/visjs.install
+@@ -0,0 +1,38 @@
++<?php
++/**
++ * @file
++ *
++ * Contains draco_vis.install
++ */
++
++function visjs_requirements($phase) {
++  $requirements = [];
++
++  if ($phase == 'runtime') {
++    $discovery = \Drupal::service('library.discovery');
++    $libraries = [
++      'vis' => 'vis.min.js',
++      'vis.graph3d' => 'vis-graph3d.min.js',
++      'vis.timeline_graph2d' => 'vis-timeline-graph2d.min.js',
++      'vis.network' => 'vis-network.min.js',
++      'vis.map' => 'vis.map'
++    ];
++    foreach ($libraries as $name => $label) {
++      $library = $discovery->getLibraryByName('vis', $name);
++      $severity = REQUIREMENT_OK;
++      foreach($library['js'] as $js) {
++        if (!file_exists($js['data'])) {
++          $severity = REQUIREMENT_ERROR;
++          break;
++        }
++      }
++      $requirements["vis_library_$name"] = [
++        'title' => t('@label library version', array('@label' => $label)),
++        'value' => ($severity == REQUIREMENT_OK) ? t('Available') : t('Not available'),
++        'severity' => $severity,
++      ];
++    }
++  }
++  
++  return $requirements;
++}
+\ No newline at end of file
+diff --git a/visjs.libraries.yml b/visjs.libraries.yml
+new file mode 100644
+index 0000000..32aaa35
+--- /dev/null
++++ b/visjs.libraries.yml
+@@ -0,0 +1,56 @@
++vis:
++  version: 4.x
++  license:
++    name: MIT
++    url: library://vis/MIT
++    gpl-compatible: true
++  js:
++    library://vis/dist/vis.min.js: {minified: true}
++  css:
++    theme:
++      library://vis/dist/vis.min.css: {minified: true}
++
++vis.map:
++  version: 4.x
++  license:
++    name: MIT
++    url: library://vis/MIT
++    gpl-compatible: true
++  js:
++    library://vis/dist/vis.map: {}
++
++vis.graph3d:
++  version: 4.x
++  license:
++    name: MIT
++    url: library://vis/MIT
++    gpl-compatible: true
++  js:
++    library://vis/dist/vis-graph3d.min.js: {minified: true}
++    dependencies:
++      - vis_min
++
++vis.timeline_graph2d:
++  version: 4.x
++  license:
++    name: MIT
++    url: library://vis/MIT
++    gpl-compatible: true
++  js:
++    library://vis/dist/vis-timeline-graph2d.min.js: {minified: true}
++  dependencies:
++    - vis_min
++
++vis.network:
++  version: 4.x
++  license:
++    name: MIT
++    url: library://vis/MIT
++    gpl-compatible: true
++  js:
++    library://vis/dist/vis-network.min.js: {minified: true}
++  dependencies:
++    - vis_min
++
++
++
+diff --git a/visjs.module b/visjs.module
+deleted file mode 100644
+index 7ad57f5..0000000
+--- a/visjs.module
++++ /dev/null
+@@ -1,37 +0,0 @@
+-<?php
+-
+-/**
+- * @file
+- * A dynamic, browser based visualization javascript library.
+- */
+-
+-/**
+- * Implements hook_libraries_info().
+- */
+-function visjs_libraries_info() {
+-  $libraries['visjs'] = array(
+-    'name' => 'vis.js plugin',
+-    'vendor url' => 'http://visjs.org/',
+-    'download url' => 'http://visjs.org/download/vis.zip',
+-    'version arguments' => array(
+-      'file' => 'dist/vis.min.js',
+-      'pattern' => '@(?i:version)\sv?([0-9\.a-z]+)@',
+-      'lines' => 7,
+-    ),
+-    'files' => array(
+-      'js' => array('dist/vis.min.js', ),
+-      'css' => array('dist/vis.min.css', ),
+-    ),
+-    'variants' => array(
+-      'minified' => array('files' => array(
+-          'js' => array('dist/vis.min.js', ),
+-          'css' => array('dist/vis.min.css', ),
+-        ), ),
+-      'source' => array('files' => array(
+-          'js' => array('dist/vis.js', ),
+-          'css' => array('dist/vis.css', ),
+-        ), ),
+-    ),
+-  );
+-  return $libraries;
+-}
diff --git a/visjs.info b/visjs.info
deleted file mode 100644
index 4dcd529..0000000
--- a/visjs.info
+++ /dev/null
@@ -1,4 +0,0 @@
-name = Vis.js
-description = A dynamic, browser based visualization javascript library.
-dependencies[] = libraries (2.x)
-core = 7.x
diff --git a/visjs.info.yml b/visjs.info.yml
new file mode 100644
index 0000000..2e672bc
--- /dev/null
+++ b/visjs.info.yml
@@ -0,0 +1,9 @@
+name: VisJS
+type: module
+description: Provides the vis.js library
+
+core: 8.x
+package: Libraries
+
+dependencies:
+  - system_stream_wrapper
\ No newline at end of file
diff --git a/visjs.install b/visjs.install
new file mode 100644
index 0000000..4a3ca6d
--- /dev/null
+++ b/visjs.install
@@ -0,0 +1,38 @@
+<?php
+/**
+ * @file
+ *
+ * Contains draco_vis.install
+ */
+
+function visjs_requirements($phase) {
+  $requirements = [];
+
+  if ($phase == 'runtime') {
+    $discovery = \Drupal::service('library.discovery');
+    $libraries = [
+      'vis' => 'vis.min.js',
+      'vis.graph3d' => 'vis-graph3d.min.js',
+      'vis.timeline_graph2d' => 'vis-timeline-graph2d.min.js',
+      'vis.network' => 'vis-network.min.js',
+      'vis.map' => 'vis.map'
+    ];
+    foreach ($libraries as $name => $label) {
+      $library = $discovery->getLibraryByName('vis', $name);
+      $severity = REQUIREMENT_OK;
+      foreach($library['js'] as $js) {
+        if (!file_exists($js['data'])) {
+          $severity = REQUIREMENT_ERROR;
+          break;
+        }
+      }
+      $requirements["vis_library_$name"] = [
+        'title' => t('@label library version', array('@label' => $label)),
+        'value' => ($severity == REQUIREMENT_OK) ? t('Available') : t('Not available'),
+        'severity' => $severity,
+      ];
+    }
+  }
+  
+  return $requirements;
+}
\ No newline at end of file
diff --git a/visjs.libraries.yml b/visjs.libraries.yml
new file mode 100644
index 0000000..6b83e3a
--- /dev/null
+++ b/visjs.libraries.yml
@@ -0,0 +1,56 @@
+vis:
+  version: 4.x
+  license:
+    name: MIT
+    url: library://vis/dist/MIT
+    gpl-compatible: true
+  js:
+    library://vis/dist/vis.min.js: {minified: true}
+  css:
+    theme:
+      library://vis/dist/vis.min.css: {minified: true}
+
+vis.map:
+  version: 4.x
+  license:
+    name: MIT
+    url: library://vis/MIT
+    gpl-compatible: true
+  js:
+    library://vis/dist/vis.map: {}
+
+vis.graph3d:
+  version: 4.x
+  license:
+    name: MIT
+    url: library://vis/LICENSE-MIT
+    gpl-compatible: true
+  js:
+    library://vis/dist/vis-graph3d.min.js: {minified: true}
+    dependencies:
+      - vis_min
+
+vis.timeline_graph2d:
+  version: 4.x
+  license:
+    name: MIT
+    url: library://vis/LICENSE-MIT
+    gpl-compatible: true
+  js:
+    library://vis/dist/vis-timeline-graph2d.min.js: {minified: true}
+  dependencies:
+    - vis_min
+
+vis.network:
+  version: 4.x
+  license:
+    name: MIT
+    url: library://vis/LICENSE-MIT
+    gpl-compatible: true
+  js:
+    library://vis/dist/vis-network.min.js: {minified: true}
+  dependencies:
+    - vis_min
+
+
+
diff --git a/visjs.module b/visjs.module
deleted file mode 100644
index 7ad57f5..0000000
--- a/visjs.module
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @file
- * A dynamic, browser based visualization javascript library.
- */
-
-/**
- * Implements hook_libraries_info().
- */
-function visjs_libraries_info() {
-  $libraries['visjs'] = array(
-    'name' => 'vis.js plugin',
-    'vendor url' => 'http://visjs.org/',
-    'download url' => 'http://visjs.org/download/vis.zip',
-    'version arguments' => array(
-      'file' => 'dist/vis.min.js',
-      'pattern' => '@(?i:version)\sv?([0-9\.a-z]+)@',
-      'lines' => 7,
-    ),
-    'files' => array(
-      'js' => array('dist/vis.min.js', ),
-      'css' => array('dist/vis.min.css', ),
-    ),
-    'variants' => array(
-      'minified' => array('files' => array(
-          'js' => array('dist/vis.min.js', ),
-          'css' => array('dist/vis.min.css', ),
-        ), ),
-      'source' => array('files' => array(
-          'js' => array('dist/vis.js', ),
-          'css' => array('dist/vis.css', ),
-        ), ),
-    ),
-  );
-  return $libraries;
-}
