diff --git a/.gitmodules b/.gitmodules
index 9f02c67030d5cbceca34ea4eb001077ffacf252f..23303e7d36a99d9b44a02e80feed9b1cb8b705fd 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,36 +1,36 @@
-[submodule "tutorials/grain-boundaries"]
-	path = tutorials/grain-boundaries
-	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-grain-boundaries.git
-[submodule "tutorials/asevisulization"]
-	path = tutorials/asevisulization
-	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-asevisualization.git
-[submodule "tutorials/compressed-sensing"]
-	path = tutorials/compressed-sensing
+[submodule "3rdparty/quip"]
+	path = 3rdparty/quip
+	url = https://github.com/libAtoms/QUIP.git
+[submodule "tutorials/analytics-compressed-sensing"]
+	path = tutorials/analytics-compressed-sensing
 	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-compressed-sensing.git
-[submodule "tutorials/analytics-compressed-sensing-2018"]
-	path = tutorials/compressed-sensing-2018
-	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-compressed-sensing-2018.git
-[submodule "tutorials/convolutional-nn"]
-	path = tutorials/convolutional-nn
+[submodule "tutorials/analytics-kaggle-competition"]
+	path = tutorials/analytics-kaggle-competition
+	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-kaggle-competition.git
+[submodule "tutorials/analytics-asevisualization"]
+	path = tutorials/analytics-asevisualization
+	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-asevisualization.git
+[submodule "tutorials/analytics-band-structure-visualization"]
+	path = tutorials/analytics-band-structure-visualization
+	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-band-structure-visualization.git
+[submodule "tutorials/analytics-convolutional-nn"]
+	path = tutorials/analytics-convolutional-nn
 	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-convolutional-nn.git
-[submodule "tutorials/face-of-crystals"]
-	path = tutorials/face-of-crystals
-	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-face-of-crystals.git
-[submodule "tutorials/gap-si-surface"]
-	path = tutorials/gap-si-surface
+[submodule "tutorials/analytics-gap-si-surface"]
+	path = tutorials/analytics-gap-si-surface
 	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-gap-si-surface.git
-[submodule "tutorials/kaggle-competetion"]
-	path = tutorials/kaggle-competetion
-	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-kaggle-competetion.git
-[submodule "tutorials/soap-atomic-charges"]
-	path = tutorials/soap-atomic-charges
+[submodule "tutorials/analytics-soap-atomic-charges"]
+	path = tutorials/analytics-soap-atomic-charges
 	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-soap-atomic-charges.git
-[submodule "notebook/quip"]
-	path = 3rdparty/quip
-	url = https://github.com/libAtoms/QUIP.git
-[submodule "tutorials/band-structure-visualization"]
-	path = tutorials/band-structure-visualization
-	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-band-structure-visualization.git
-[submodule "tutorials/tcmi"]
-	path = tutorials/tcmi
-	url = https://gitlab.mpcdf.mpg.de/rbenj/analytics-tcmi
+[submodule "tutorials/analytics-grain-boundaries"]
+	path = tutorials/analytics-grain-boundaries
+	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-grain-boundaries.git
+[submodule "tutorials/analytics-compressed-sensing-2018"]
+	path = tutorials/analytics-compressed-sensing-2018
+	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-compressed-sensing-2018.git
+[submodule "tutorials/analytics-tcmi"]
+	path = tutorials/analytics-tcmi
+	url = https://gitlab.mpcdf.mpg.de/rbenj/analytics-tcmi.git
+[submodule "analytics-tutorial-template"]
+	path = analytics-tutorial-template
+	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-tutorial-template.git
diff --git a/Dockerfile b/Dockerfile
index c1f02532ea6d55d45cb4a4d3ee6b49830a890420..8476d68dfc5db839c00fdae440e40b963ed745ee 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,10 @@
-FROM jupyter/tensorflow-notebook:2ce7c06a61a1
+FROM jupyter/tensorflow-notebook:2ce7c06a61a1 AS main
 LABEL maintainer="Luca Ghiringhelli <ghiringhelli@fhi-berlin.mpg.de>"
 
+# ================================================================================
+# Linux applications and libraries
+# ================================================================================
+
 USER root
 RUN apt-get update \
  && apt-get install -y -q --no-install-recommends \
@@ -17,46 +21,37 @@ RUN apt-get update \
  && rm -rf /var/lib/apt/lists/*
 USER $NB_UID
 
+# Dependecies:
+# - quippy: gcc gfortran liblapack-dev libblas-dev libnetcdf-dev netcdf-bin libxpm-dev libgsl-dev
 
 # ================================================================================
 # Python environment
 # ================================================================================
 
 # Add any additional packages you want available for use in a Python 3 notebook
-# to the first line here (e.g., pandas, matplotlib, etc.)
-# Remove pyqt and qt pulled in for matplotlib since we're only ever going to
-# use notebook-friendly backends in these images
+# to the first line here (e.g., nglview, jupyter_contrib_nbextensions, etc.)
+# https://github.com/ipython-contrib/jupyter_contrib_nbextensions
 RUN conda install --quiet --yes \
     'pytorch::pytorch-cpu==1.1.0' \
     'pytorch::torchvision-cpu==0.3.0' \
-    'colorcet==2.0.1'  \
- && pip install \
-    'git+https://github.com/raghakot/keras-vis.git' \
-    'ase==3.17.0' \
-    'asap3==3.11.10' \
-    'numpy==1.18.1' \
-    'scipy==1.4.1' \
-    'pandas==0.25.3' \
-    'scikit-learn==0.21.1' \
-    'joblib==0.14.1' \
-    'diskcache==4.1.0' \
- && conda clean -tipsy \
- && fix-permissions $CONDA_DIR \
- && fix-permissions /home/$NB_USER
-
-
-# https://github.com/ipython-contrib/jupyter_contrib_nbextensions
-RUN conda install --quiet --yes \
     'nglview==2.7.0' \
     'jupyter_contrib_nbextensions==0.5.1' \
     'jupyter_nbextensions_configurator==0.4.1' \
+    'ase' \
+    'asap3' \
  && conda clean -tipsy \
  && jupyter nbextensions_configurator enable --user \
  && jupyter nbextension install nglview --py --sys-prefix \
  && jupyter nbextension enable nglview --py --sys-prefix \
  && jupyter nbextension enable execute_time/ExecuteTime \
- && jupyter nbextension enable init_cell/main
+ && jupyter nbextension enable init_cell/main \
+ && fix-permissions $CONDA_DIR \
+ && fix-permissions /home/$NB_USER
 
+# Dependecies:
+# - ase: many
+# - asap3: grain-boundaries
+# - nglview:
 
 # ================================================================================
 #  QUIP + GAP + quippy
@@ -67,9 +62,7 @@ WORKDIR /opt/quip
 
 # QUIP for general use is the OpenMP version.
 ENV QUIP_ARCH linux_x86_64_gfortran_openmp
-
 ENV QUIP_INSTALLDIR /opt/quip/bin
-ENV PATH $QUIP_INSTALLDIR:$PATH
 
 COPY 3rdparty/quip .
 COPY 3rdparty/gap src/GAP
@@ -82,22 +75,68 @@ RUN chown -R $NB_USER:$NB_GID $PWD
 USER $NB_USER
 
 # Installs with no suffix, e.g. quip
-RUN make > /dev/null 2>&1 \
+RUN make \
  && make install
 
-# Installs quippy using python2 environment
-# && make install-quippy > /dev/null 2>&1
-RUN pip install -r quippy/requirements.txt \
+# Installs quippy
+RUN pip install src/f90wrap \
  && make install-quippy
 
+# Make quippy executable available from terminal
+ENV PATH /opt/quip/bin:$PATH
+
 
 # ================================================================================
 # Install all of the package dependencies of the tutorials
 # ================================================================================
+# Note: multi stage build may be used here as well in the future
+
+
+WORKDIR /opt/tutorials
+COPY tutorials/ .
+
+RUN pip install ./analytics-asevisualization; exit 0
+RUN pip install ./analytics-band-structure-visualization; exit 0
+RUN pip install ./analytics-compressed-sensing; exit 0
+RUN pip install ./analytics-compressed-sensing-2018; exit 0
+RUN pip install ./analytics-convolutional-nn; exit 0
+RUN pip install ./analytics-gap-si-surface; exit 0
+RUN pip install ./analytics-grain-boundaries; exit 0
+RUN pip install ./analytics-kaggle-competition; exit 0
+RUN pip install ./analytics-soap-atomic-charges; exit 0
+RUN pip install ./analytics-tcmi; exit 0
+
+USER root
+
+RUN fix-permissions /opt/tutorials \
+ && fix-permissions $CONDA_DIR
+
+# ==================
 
-#  python tutorials/gap-si-surface/setup.py  install
+#ARG TUTORIALS_HOME=$HOME/tutorials
+#
+#WORKDIR $TUTORIALS_HOME
+#RUN ln -s /opt/tutorials/*/*.ipynb .
+#
+## Linking images or other assets may required by the tutorials
+#WORKDIR $TUTORIALS_HOME/assets
+#RUN ln -s /opt/tutorials/*/assets/*  .
+#
+## Linking data may required by the tutorials
+#WORKDIR $TUTORIALS_HOME/data
+#RUN ln -s /opt/tutorials/*/data/* $TUTORIALS_HOME/data
+#
+#RUN fix-permissions $TUTORIALS_HOME/data
 
+# ==================
 
+ARG TUTORIALS_HOME=$HOME/tutorials
+
+WORKDIR $TUTORIALS_HOME
+RUN ln -s /opt/tutorials/*/*.ipynb .; exit 0
+RUN mkdir assets && ln -s /opt/tutorials/*/assets/*  assets/; exit 0
+RUN mkdir data && ln -s /opt/tutorials/*/data/* data/; exit 0
+RUN fix-permissions $TUTORIALS_HOME
 
 # ================================================================================
 # Switch back to jovyan to avoid accidental container runs as root
@@ -106,4 +145,20 @@ RUN pip install -r quippy/requirements.txt \
 WORKDIR $HOME
 USER $NB_UID
 
+#
+## Unidentified python dependencies
+#RUN pip install \
+#    'git+https://github.com/raghakot/keras-vis.git' \
+#    'joblib==0.14.1' \
+#    'diskcache==4.1.0' \
+#    'colorcet==2.0.1'  \
+
+
+# This part contains the installation of all common python package
+# All the other package will be isntalled by the setup scipt of each invivdual tutorial
 
+# Issues:
+# data should be part of the python package or not? (symlink)
+# absolute path for tutorial's data
+# jsmol has thousends of files (10158 files in total).
+# "in adavce" trust of notebook (eg. tcmi)
\ No newline at end of file
diff --git a/analytics-tutorial-template b/analytics-tutorial-template
new file mode 160000
index 0000000000000000000000000000000000000000..48b7ede9bc25ef75a44c77ca6040d5887b62c453
--- /dev/null
+++ b/analytics-tutorial-template
@@ -0,0 +1 @@
+Subproject commit 48b7ede9bc25ef75a44c77ca6040d5887b62c453
diff --git a/tutorials/Welcome.ipynb b/tutorials/Welcome.ipynb
deleted file mode 100644
index 0d264aca3ad07dfee5557246d072b5beae58a539..0000000000000000000000000000000000000000
--- a/tutorials/Welcome.ipynb
+++ /dev/null
@@ -1,135 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# BIG-DATA ANALYTICS\n",
-    "\n",
-    "We develop and implement methods that identify correlations and structure in big data of materials. This will enable scientists and engineers to decide which materials are useful for specific applications or which new materials should be the focus of future studies.\n",
-    "\n",
-    "Despite the huge number of possible materials (e.g. GaAs, Al2O3, etc.), we note that “the chemical compound space” is sparsely populated when the focus is on selected properties or functions (e.g. structure: rock salt vs. zinkblende, electrical conductivity, etc.). NOMAD offers big-data analytics tools that will help to sort all of the available materials data to identify trends and anomalies. For more information click the \"INTRODUCTION TO\" button above.\n",
-    "\n",
-    "## Tutorials\n",
-    "\n",
-    "The following tutorials are designed to get started with the Analytics Toolkit (click title to show/hide details of the selected tutorial):\n",
-    "\n",
-    "### Crystal structure prediction\n",
-    "\n",
-    "- [**Tutorial on compressed sensing for materials property prediction**](compressed-sensing/tutorial.ipynb) *(created by: Emre Ahmetcik, Angelo Ziletti, Runhai Ouyang, Luca Ghiringhelli, Matthias Scheffler)*\n",
-    "\n",
-    "  This tutorial introduces from scratch and step by step: Compressed sensing, LASSO, and SISSO for materials property prediction\n",
-    "\n",
-    "### Materials property prediction\n",
-    "\n",
-    "- [**Grain boundaries of alpha-Fe tutorial**](grain-boundaries/grain_boundaries.ipynb) *(created by: Ádám Fekete, Martina Stella, Henry Lambert, Alessandro De Vita, Gábor Csányi)*\n",
-    "\n",
-    "  In this tutorial we will be using a machine learning method (clustering) to analyse results of Grain Boundary (GB) calculations of alpha-iron. Along the way we will learn about different methods to describe local atomic environment in order to calculate properties of GBs. We will use these properties to separate the different regions of the GB using clustering methods. Finally we will determine how the energy of the GB is changing according to the angle difference of the regions.\n",
-    "  \n",
-    "  \n",
-    "- [**The SOAP descriptor, Gaussian Approximation Potentials (GAP) and machine-learning of force fields**](gap-si-surface/gap_si_surface.ipynb) *(created by: Adam Fekete, Matrina Stella, Henry Lambert, Alessandro De Vita, Gabor Csanyi)\n",
-    "\n",
-    "  In this tutorial we will be using a Gaussian Approximation Potentials to analyse results of TB DFT calculations of Si surface. Along the way we will learn about different descriptors (2b, 3b, soap) to describe local atomic environment in order to predict energies and forces of Si surface. \n",
-    "\n",
-    "### Organic molecules\n",
-    "\n",
-    "- [**Learning atomic charges**](soap-atomic-charges/soap_atomic_charges.ipynb)  *(created by: Gábor Csányi, James R. Kermode)*\n",
-    "\n",
-    "  In this tutorial, we will use Gaussian process regression, GPR (or equivalently, Kernel Ridge Regression, KRR) to train and predict charges of atoms in small organic molecules."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<h1>BIG-DATA ANALYTICS</h1>\n",
-    "<p></p>\n",
-    "<div class=\"jumbotron\">\n",
-    "  <p class=\"lead\">We develop and implement methods that identify correlations and structure in big data of materials. This will enable scientists and engineers to decide which materials are useful for specific applications or which new materials should be the focus of future studies.\n",
-    "</div>\n",
-    "\n",
-    "<h2 class=\"display-4\">Tutorials</h2>\n",
-    "\n",
-    "\n",
-    "The following tutorials are designed to get started with the Analytics Toolkit (click title to show/hide details of the selected tutorial):\n",
-    "\n",
-    "\n",
-    "<h3 class=\"display-4\">Crystal structure prediction</h3>\n",
-    "<p></p>\n",
-    "\n",
-    "<div class=\"list-group\">\n",
-    "  <a href=\"compressed-sensing/tutorial.ipynb\" class=\"list-group-item list-group-item-action active\">\n",
-    "      <h3>Tutorial on compressed sensing for materials property prediction</h3>\n",
-    "  </a>\n",
-    "  <div class=\"list-group-item list-group-item-action\">\n",
-    "    <i>created by: Emre Ahmetcik, Angelo Ziletti, Runhai Ouyang, Luca Ghiringhelli, Matthias Scheffler</i>\n",
-    "    <p>This tutorial introduces from scratch and step by step: Compressed sensing, LASSO, and SISSO for materials property prediction</p>\n",
-    "  </div>\n",
-    "</div>\n",
-    "\n",
-    "\n",
-    "<h3 class=\"display-4\">Materials property prediction</h3>\n",
-    "<p></p>\n",
-    "\n",
-    "<div class=\"list-group\">\n",
-    "  <a href=\"grain-boundaries/grain_boundaries.ipynb\" class=\"list-group-item list-group-item-action active\">\n",
-    "    <h3>Grain boundaries of alpha-Fe tutorial</h3>\n",
-    "  </a>\n",
-    "  <div class=\"list-group-item list-group-item-action\">\n",
-    "    <i>created by: Ádám Fekete, Martina Stella, Henry Lambert, Alessandro De Vita, Gábor Csányi</i>\n",
-    "    <p>  In this tutorial we will be using a machine learning method (clustering) to analyse results of Grain Boundary (GB) calculations of alpha-iron. Along the way we will learn about different methods to describe local atomic environment in order to calculate properties of GBs. We will use these properties to separate the different regions of the GB using clustering methods. Finally we will determine how the energy of the GB is changing according to the angle difference of the regions.</p>\n",
-    "  </div>\n",
-    "  <a href=\"gap-si-surface/gap_si_surface.ipynb\" class=\"list-group-item list-group-item-action active\">\n",
-    "    <h3>The SOAP descriptor, Gaussian Approximation Potentials (GAP) and machine-learning of force fields</h3>\n",
-    "  </a>\n",
-    "  <div class=\"list-group-item list-group-item-action\">\n",
-    "    <i>created by: Adam Fekete, Matrina Stella, Henry Lambert, Alessandro De Vita, Gabor Csanyi</i>\n",
-    "    <p>  In this tutorial we will be using a Gaussian Approximation Potentials to analyse results of TB DFT calculations of Si surface. Along the way we will learn about different descriptors (2b, 3b, soap) to describe local atomic environment in order to predict energies and forces of Si surface. </p>\n",
-    "  </div>\n",
-    "</div>\n",
-    "\n",
-    "\n",
-    "<h3 class=\"display-4\">Organic molecules</h3>\n",
-    "<p></p>\n",
-    "\n",
-    "<div class=\"list-group\">\n",
-    "  <a href=\"soap-atomic-charges/soap_atomic_charges.ipynb\" class=\"list-group-item list-group-item-action active\">\n",
-    "    <h3>Learning atomic charges</h3>\n",
-    "  </a>\n",
-    "  <div class=\"list-group-item list-group-item-action\">\n",
-    "    <i>created by: Gábor Csányi, James R. Kermode</i>\n",
-    "    <p>In this tutorial, we will use Gaussian process regression, GPR (or equivalently, Kernel Ridge Regression, KRR) to train and predict charges of atoms in small organic molecules.</p>\n",
-    "  </div>\n",
-    "</div>\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.7.3"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/tutorials/analytics-asevisualization b/tutorials/analytics-asevisualization
new file mode 160000
index 0000000000000000000000000000000000000000..b066d5008def2c7e6448228cc3906fb3e204f68e
--- /dev/null
+++ b/tutorials/analytics-asevisualization
@@ -0,0 +1 @@
+Subproject commit b066d5008def2c7e6448228cc3906fb3e204f68e
diff --git a/tutorials/analytics-band-structure-visualization b/tutorials/analytics-band-structure-visualization
new file mode 160000
index 0000000000000000000000000000000000000000..6cb5a929b8518350bd78437e52b18316e2eddac3
--- /dev/null
+++ b/tutorials/analytics-band-structure-visualization
@@ -0,0 +1 @@
+Subproject commit 6cb5a929b8518350bd78437e52b18316e2eddac3
diff --git a/tutorials/analytics-compressed-sensing b/tutorials/analytics-compressed-sensing
new file mode 160000
index 0000000000000000000000000000000000000000..4831aadd969af3a9b4e06de9156d8011c5f3320d
--- /dev/null
+++ b/tutorials/analytics-compressed-sensing
@@ -0,0 +1 @@
+Subproject commit 4831aadd969af3a9b4e06de9156d8011c5f3320d
diff --git a/tutorials/analytics-compressed-sensing-2018 b/tutorials/analytics-compressed-sensing-2018
new file mode 160000
index 0000000000000000000000000000000000000000..355bb9b94250f97c6b0b33ff3dae392a7e96a2ea
--- /dev/null
+++ b/tutorials/analytics-compressed-sensing-2018
@@ -0,0 +1 @@
+Subproject commit 355bb9b94250f97c6b0b33ff3dae392a7e96a2ea
diff --git a/tutorials/analytics-convolutional-nn b/tutorials/analytics-convolutional-nn
new file mode 160000
index 0000000000000000000000000000000000000000..5f56eeff559eb78d566a004542b238f65b94a598
--- /dev/null
+++ b/tutorials/analytics-convolutional-nn
@@ -0,0 +1 @@
+Subproject commit 5f56eeff559eb78d566a004542b238f65b94a598
diff --git a/tutorials/gap-si-surface b/tutorials/analytics-gap-si-surface
similarity index 100%
rename from tutorials/gap-si-surface
rename to tutorials/analytics-gap-si-surface
diff --git a/tutorials/analytics-grain-boundaries b/tutorials/analytics-grain-boundaries
new file mode 160000
index 0000000000000000000000000000000000000000..349edc88d9e18f03b9d3a15cb6f11981919de914
--- /dev/null
+++ b/tutorials/analytics-grain-boundaries
@@ -0,0 +1 @@
+Subproject commit 349edc88d9e18f03b9d3a15cb6f11981919de914
diff --git a/tutorials/analytics-kaggle-competition b/tutorials/analytics-kaggle-competition
new file mode 160000
index 0000000000000000000000000000000000000000..beff593b8420933e59a151fd8e677dcf41e49bf6
--- /dev/null
+++ b/tutorials/analytics-kaggle-competition
@@ -0,0 +1 @@
+Subproject commit beff593b8420933e59a151fd8e677dcf41e49bf6
diff --git a/tutorials/analytics-soap-atomic-charges b/tutorials/analytics-soap-atomic-charges
new file mode 160000
index 0000000000000000000000000000000000000000..fdbadffaa584cb6f19fe3662c79d474db40b47e2
--- /dev/null
+++ b/tutorials/analytics-soap-atomic-charges
@@ -0,0 +1 @@
+Subproject commit fdbadffaa584cb6f19fe3662c79d474db40b47e2
diff --git a/tutorials/tcmi b/tutorials/analytics-tcmi
similarity index 100%
rename from tutorials/tcmi
rename to tutorials/analytics-tcmi
diff --git a/tutorials/asevisulization b/tutorials/asevisulization
deleted file mode 160000
index 2feb55330b1dae4d4e7dc843601bb77d3a76a94f..0000000000000000000000000000000000000000
--- a/tutorials/asevisulization
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2feb55330b1dae4d4e7dc843601bb77d3a76a94f
diff --git a/tutorials/band-structure-visualization b/tutorials/band-structure-visualization
deleted file mode 160000
index 5a93375a303c720d94a9ad9ef614f1e748512c44..0000000000000000000000000000000000000000
--- a/tutorials/band-structure-visualization
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5a93375a303c720d94a9ad9ef614f1e748512c44
diff --git a/tutorials/compressed-sensing b/tutorials/compressed-sensing
deleted file mode 160000
index aac054d78c43162020a159823db7bde8e72c9b4b..0000000000000000000000000000000000000000
--- a/tutorials/compressed-sensing
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit aac054d78c43162020a159823db7bde8e72c9b4b
diff --git a/tutorials/compressed-sensing-2018 b/tutorials/compressed-sensing-2018
deleted file mode 160000
index 4c2e3c3b43222d807dab87b2f836e22629a10cb0..0000000000000000000000000000000000000000
--- a/tutorials/compressed-sensing-2018
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 4c2e3c3b43222d807dab87b2f836e22629a10cb0
diff --git a/tutorials/convolutional-nn b/tutorials/convolutional-nn
deleted file mode 160000
index e564a18bea59bacbddf7746df2c865821ed7fc11..0000000000000000000000000000000000000000
--- a/tutorials/convolutional-nn
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e564a18bea59bacbddf7746df2c865821ed7fc11
diff --git a/tutorials/face-of-crystals b/tutorials/face-of-crystals
deleted file mode 160000
index 3843a5c1b6874877bf2525ef395821be69aeb8b3..0000000000000000000000000000000000000000
--- a/tutorials/face-of-crystals
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3843a5c1b6874877bf2525ef395821be69aeb8b3
diff --git a/tutorials/grain-boundaries b/tutorials/grain-boundaries
deleted file mode 160000
index cd26180d9e52d7267ff069a1725f0ec27ba80c82..0000000000000000000000000000000000000000
--- a/tutorials/grain-boundaries
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit cd26180d9e52d7267ff069a1725f0ec27ba80c82
diff --git a/tutorials/kaggle-competetion b/tutorials/kaggle-competetion
deleted file mode 160000
index 82ca1eb9ecbd91c2bd54aaafd40c50d131b44977..0000000000000000000000000000000000000000
--- a/tutorials/kaggle-competetion
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 82ca1eb9ecbd91c2bd54aaafd40c50d131b44977
diff --git a/tutorials/soap-atomic-charges b/tutorials/soap-atomic-charges
deleted file mode 160000
index 00913330c7ad7662838e29289c821afb5386bdd3..0000000000000000000000000000000000000000
--- a/tutorials/soap-atomic-charges
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 00913330c7ad7662838e29289c821afb5386bdd3
diff --git a/tutorials/test.ipynb b/tutorials/test.ipynb
deleted file mode 100644
index fa6b90377a21344ba745a3779858640fa05bbf85..0000000000000000000000000000000000000000
--- a/tutorials/test.ipynb
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {
-    "ExecuteTime": {
-     "end_time": "2020-01-20T13:07:06.123939Z",
-     "start_time": "2020-01-20T13:07:06.120567Z"
-    }
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "test\n"
-     ]
-    }
-   ],
-   "source": [
-    "print('test')"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.7.3"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}