diff --git a/doc.zih.tu-dresden.de/docs/quickstart/getting_started.md b/doc.zih.tu-dresden.de/docs/quickstart/getting_started.md
index e9d6946181156c0a677f0deece3a9897f9114960..89cf13134f570bd45042580d586cd362f1c46ab6 100644
--- a/doc.zih.tu-dresden.de/docs/quickstart/getting_started.md
+++ b/doc.zih.tu-dresden.de/docs/quickstart/getting_started.md
@@ -277,8 +277,10 @@ in Linux.
 ## Software Environment
 
 The [software](../software/overview.md) on the ZIH HPC system is not installed system-wide,
-but is provided within the so-called [modules](../software/modules.md). In order to use specific
-software you need to "load" the respective module.
+but is provided within so-called [modules](../software/modules.md).
+In order to use specific software you need to "load" the respective module.
+This modifies the current environment (so only for the current user in the current session)
+such that the software becomes available.
 
 !!! note
 
@@ -380,18 +382,31 @@ For additional information refer to the detailed documentation on [modules](../s
 
 !!! hint "Special hints on different software"
 
-    Special hints on different software can be in the section "Environment and Software", e.g.
-    for [Python](../software/data_analytics_with_python.md), [R](../software/data_analytics_with_r.md),
+    See also the section "Applications and Software" for more information on e.g.
+    [Python](../software/data_analytics_with_python.md),
+    [R](../software/data_analytics_with_r.md),
     [Mathematica/MatLab](../software/mathematics.md), etc.
 
-!!! hint "Hint on Python packages"
+!!! hint "Tip for Python packages"
 
-    The usage of virtual environments and, therefore, the usage of workspaces is recommended,
-    especially for Python. Please check out the module system, even for specific Python packages,
-    e.g. `tqdm`, `torchvision`, `tensorboard`, etc. to get a better idea of what is available.
-    The Python (and other) package ecosystem is very heterogeneous and dynamic, with daily updates.
-    The central update cycle for software on the ZIH HPC system occurs approximately every six
-    months.
+    The use of [Virtual Environments](../software/python_virtual_environments.md)
+    (best in [workspaces](../data_lifecycle/workspaces.md)) is recommended.
+
+    Please check the module system, even for specific Python packages,
+    e.g. `numpy`, `tensorflow` or `pytorch`.
+    Those modules may provide much better performance than the packages found on PyPi
+    (installed via `pip`) which have to work on any system while our installation is optimized for
+    the ZIH system to make the best use of the specific CPUs and GPUs found here.  
+    However the Python package ecosystem (like others) is very heterogeneous and dynamic,
+    with daily updates.
+    The central update cycle for software on the ZIH HPC system is approximately every six months.
+    So the software installed as modules might be a bit older.
+
+!!! warning
+
+    When explicitely loading multiple modules you need to make sure that they are compatible.
+    So try to stick to modules using the same toolchain.
+    See the [Toolchains section](../software/modules.md#Toolchains) for more information.
 
 ## Running a Program/Job
 
diff --git a/doc.zih.tu-dresden.de/docs/software/modules.md b/doc.zih.tu-dresden.de/docs/software/modules.md
index 9559fa3826bea23a7eff3eee20c91cc1be0f07e7..3a65f2dd9753fa4d3cd1ce7e2b7213ce3e3a24b2 100644
--- a/doc.zih.tu-dresden.de/docs/software/modules.md
+++ b/doc.zih.tu-dresden.de/docs/software/modules.md
@@ -227,6 +227,96 @@ In some cases a desired software is available as an extension of a module.
     2.4.1
     ```
 
+## Toolchains
+
+A program or library may break in various ways
+(e.g. not starting, crashing or producing wrong results)
+when it is used with a software of a different version than it expects.  
+So each module specifies the exact other modules it depends on.
+They get loaded automatically when the dependent module is loaded.
+
+Loading a single module is easy as there can't be any conflicts between dependencies.
+However when loading multiple modules they can require different versions of the same software.
+This conflict is currently handled in that loading the same software with a different version
+automatically unloads the earlier loaded module.
+As the dependents of that module are **not** automatically unloaded this means they now have a
+wrong dependency (version) which can be a problem (see above).
+
+To avoid this there are (versioned) toolchains and for each toolchain there is (usually) at most
+one version of each software.
+A "toolchain" is a set of modules used to build the software for other modules.
+The most common one is the `foss`-toolchain comprising of `GCC`, `OpenMPI`, `OpenBLAS` & `FFTW`.
+
+!!! info
+
+    Modules are named like `<Softwarename>/<Version>-<Toolchain>` so `Python/3.6.6-foss-2019a`
+    uses the `foss-2019a` toolchain.
+
+This toolchain can be broken down into a sub-toolchain called `gompi` comprising of only
+`GCC` & `OpenMPI`, or further to `GCC` (the compiler and linker)
+and even further to `GCCcore` which is only the runtime libraries required to run programs built
+with the GCC standard library.
+
+!!! hint
+
+    As toolchains are regular modules you can display their parts via `module show foss/2019a`.
+
+This way the toolchains form a hierarchy and adding more modules makes them "higher" than another.
+
+Examples:
+
+| Toolchain | Components |
+| --------- | ---------- |
+| `foss`    | `GCC` `OpenMPI` `OpenBLAS` `FFTW` |
+| `gompi`   | `GCC` `OpenMPI` |
+| `GCC`     | `GCCcore` `binutils` |
+| `GCCcore` | none |
+| `intel`   | `intel-compilers` `impi` `imkl` |
+| `iimpi`   | `intel-compilers` `impi` |
+| `intel-compilers` | `GCCcore` `binutils` |
+
+As you can see `GCC` and `intel-compilers` are on the same level, as are `gompi` and `iimpi`
+although they are one level higher than the former.
+
+You can load and use modules from a lower toolchain with modules from
+one of its parent toolchains.  
+For example `Python/3.6.6-foss-2019a` can be used with `Boost/1.70.0-gompi-2019a`.
+
+But you cannot combine toolchains or toolchain versions.
+So `QuantumESPRESSO/6.5-intel-2019a` and `OpenFOAM/8-foss-2020a`
+are both incompatible with `Python/3.6.6-foss-2019a`.  
+However `LLVM/7.0.1-GCCcore-8.2.0` can be used with either
+`QuantumESPRESSO/6.5-intel-2019a` or `Python/3.6.6-foss-2019a`
+because `GCCcore-8.2.0` is a sub-toolchain of `intel-2019a` and `foss-2019a`.
+
+For [modenv/hiera](#modenvhiera) it is much easier to avoid loading incompatible
+modules as modules from other toolchains cannot be directly loaded
+and don't show up in `module av`.
+So the concept if this hierarchical toolchains is already built into this module environment.
+In the other module environments it is up to you to make sure the modules you load are compatible.
+
+So watch the output when you load another module as a message will be shown when loading a module
+causes other modules to be loaded in a different version:
+
+??? example "Module reload"
+
+    ```console
+    marie@login$ ml OpenFOAM/8-foss-2020a
+    Module OpenFOAM/8-foss-2020a and 72 dependencies loaded.
+
+    marie@login$ ml Biopython/1.78-foss-2020b
+    The following have been reloaded with a version change:
+      1) FFTW/3.3.8-gompi-2020a => FFTW/3.3.8-gompi-2020b                                   15) binutils/2.34-GCCcore-9.3.0 => binutils/2.35-GCCcore-10.2.0
+      2) GCC/9.3.0 => GCC/10.2.0                                                            16) bzip2/1.0.8-GCCcore-9.3.0 => bzip2/1.0.8-GCCcore-10.2.0
+      3) GCCcore/9.3.0 => GCCcore/10.2.0                                                    17) foss/2020a => foss/2020b
+      [...]
+    ```
+
+!!! info
+
+    The higher toolchains have a year and letter as their version corresponding to their release.
+    So `2019a` and `2020b` refer to the first half of 2019 and the 2nd half of 2020 respectively.
+
 ## Per-Architecture Builds
 
 Since we have a heterogeneous cluster, we do individual builds of some of the software for each