diff --git a/AUTHORS.md b/AUTHORS.md
index 7824e74debb3773dc6455e1688de8926e4bfa6d0..5a4db5b61200ef00090ba5d051f8cf4708fbd622 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -6,6 +6,7 @@ title: Authors
 This material is the product of contributions from the following people:
 
 * Aliaksandr Halavatyi
+* Stefan Helfrich
 * Jean-Karim Hériché
 * Toby Hodges
 * Julius Hossain
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1ce8a45ea32afe86a001392517cdda6b2202ccd5..f1a42f7bb8540be34eebacb3203408b972a6749d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -133,7 +133,7 @@ clone and move into this repository,
 and run:
 
 ```bash
-bundle exec jekyll serve
+make serve
 ```
 
 All going well, your built pages are now beng served locally.
diff --git a/_includes/binarization/activities/binarization_knime.md b/_includes/binarization/activities/binarization_knime.md
new file mode 100644
index 0000000000000000000000000000000000000000..11a7075acb50e0a603161166a81d72cf9b4a8cde
--- /dev/null
+++ b/_includes/binarization/activities/binarization_knime.md
@@ -0,0 +1,3 @@
+[![Image binarization](https://api.hub.knime.com/repository/*yaYVMcWMurQJfRAq:image)](https://kni.me/w/yaYVMcWMurQJfRAq)
+
+[//]: # (Original URL: https://hub.knime.com/stelfrich/space/Image%20Analysis%20Training%20Resources/Image%20binarization)
diff --git a/_includes/connected_components/activities/connected_components_knime.md b/_includes/connected_components/activities/connected_components_knime.md
new file mode 100644
index 0000000000000000000000000000000000000000..5c913d30e7506150a8a283b3a01090df646336de
--- /dev/null
+++ b/_includes/connected_components/activities/connected_components_knime.md
@@ -0,0 +1,3 @@
+[![Connected components](https://api.hub.knime.com/repository/*XCeGNgTQOzoPwzje:image)](https://kni.me/w/XCeGNgTQOzoPwzje)
+
+[//]: # (Original URL: https://hub.knime.com/stelfrich/space/Image%20Analysis%20Training%20Resources/Connected%20components)
diff --git a/_includes/filter_neighbourhood/activities/mean_filter_knime.md b/_includes/filter_neighbourhood/activities/mean_filter_knime.md
new file mode 100644
index 0000000000000000000000000000000000000000..66033af5176adaf05e00e57c6f58021cc26eeae0
--- /dev/null
+++ b/_includes/filter_neighbourhood/activities/mean_filter_knime.md
@@ -0,0 +1,3 @@
+[![Image binarization](https://api.hub.knime.com/repository/*wt_07Y4FqvY-QyYb:image)](https://kni.me/w/wt_07Y4FqvY-QyYb)
+
+[//]: # (Original URL: https://hub.knime.com/stelfrich/space/Image%20Analysis%20Training%20Resources/Neighbourhood%20image%20filters)
diff --git a/_layouts/module.html b/_layouts/module.html
index 3cd12707109e97e9d2e431a8c5b82846166068aa..e056f644126ba09a1bd9eb037558bb1d2320ea3d 100644
--- a/_layouts/module.html
+++ b/_layouts/module.html
@@ -57,8 +57,10 @@ function change_exercises_content_by_platform(form_control){
 {% for platform in page.exercises %}
 document.getElementById("{{ platform[0] | slugify }}-exercises-div").style.display = 'none';
 {% endfor %}
+{% if page.exercises %}
 if (!form_control || document.getElementById(form_control).value == "default-exercises") {
 set_exercises_view_defaults();
+{% endif %}
 {% for platform in page.exercises %}
 } else if (document.getElementById(form_control).value == "{{ platform[0] | slugify }}-exercises") {
 document.getElementById("{{ platform[0] | slugify }}-exercises-div").style.display = 'block';
diff --git a/_modules/binarization.md b/_modules/binarization.md
index f8aeba44d48065a13f365541866f370fb4c66a99..47aec21ba8e4493ab6e71cc51a4c73956b7e4600 100644
--- a/_modules/binarization.md
+++ b/_modules/binarization.md
@@ -26,6 +26,7 @@ activities:
   "ImageJ Macro": "binarization/activities/binarization_imagejmacro.md"
   "Jython": "binarization/activities/binarization_jython.md"
   "MATLAB": "binarization/activities/binarization_matlab.md"
+  "KNIME": "binarization/activities/binarization_knime.md"
 
 exercises_preface: >
 
diff --git a/_modules/connected_components.md b/_modules/connected_components.md
index d6a0e2ea8806c01382482629248cddd7dc5a9686..71fe9c33d553aa4c8ab726edd241e42d364522c9 100644
--- a/_modules/connected_components.md
+++ b/_modules/connected_components.md
@@ -25,6 +25,7 @@ activity_preface: >
 
 activities:
   "ImageJ GUI": "connected_components/activities/connected_components_imagejgui.md"
+  "KNIME": "connected_components/activities/connected_components_knime.md"
 #  "MATLAB": "" 
 
 exercises_preface: >
diff --git a/_modules/filter_neighbourhood.md b/_modules/filter_neighbourhood.md
index a2238994d4891f7579353323acc56d4c42a6b746..492ee5880a6bd155aa0898864d582bf143957b93 100644
--- a/_modules/filter_neighbourhood.md
+++ b/_modules/filter_neighbourhood.md
@@ -33,6 +33,7 @@ activity_preface: >
 activities:
 
   "ImageJ GUI": "filter_neighbourhood/activities/mean_filter_imagejgui.md"
+  "KNIME": "filter_neighbourhood/activities/mean_filter_knime.md"
 #  "ImageJ Macro":
 #  "Jython":
 #  "MATLAB":