diff --git a/exercises/02450Toolbox_Python/Scripts/ex0_4_2.py b/exercises/02450Toolbox_Python/Scripts/ex0_4_2.py
new file mode 100644
index 0000000000000000000000000000000000000000..38b97db2e61968341e9372c59f2ed5236d23db3d
--- /dev/null
+++ b/exercises/02450Toolbox_Python/Scripts/ex0_4_2.py
@@ -0,0 +1,44 @@
+# Exercise 0.4.2 - using the VScode editor (ignore if you are not )
+#
+
+## Option I
+# Standard python code will look like the 4 lines below
+# and this is the way all scripts are 
+# displayed/implemented in this course
+#
+# To run it you need to press the run symbol or F5 or Ctrl+F5
+#
+a = 1
+print(a)
+b = a + 1
+print(b)
+
+#%%[markdown] 
+# ## Option II
+# If you prefer, you can get an 
+# interactive experience in VScode if 
+# you use the #%% tag, e.g.
+
+#%%[markdown]  
+# This is a cell you can run without running the rest of the code
+# and get some pretty formatted output. 
+c = 2
+print(c)
+
+#%%[markdown] 
+# This is an other cell
+# In the interactive mode you can even use markdown and include equations in teh output
+# $$ b = c + \frac{1}{2} $$
+#
+# Note here the cell depends on the value of a variable from an other cell
+# whcih must be run before this cell.
+#
+b = c + 1/2
+print(b)
+
+
+#%%[markdown]
+# If you want this behavior you simply add the #%% or #%%[markdown] to the provided
+# scripts in for you useful places.
+#
+# %%
diff --git a/exercises/02450Toolbox_Python/Scripts/ex0_4_3.py b/exercises/02450Toolbox_Python/Scripts/ex0_4_3.py
index 7e13f8905f5024b2229bea5b6a242bd2589d4fa0..e91b2a9131f1a43afe9a79c37dfb6478f83d39dd 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex0_4_3.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex0_4_3.py
@@ -7,8 +7,8 @@
 # now we can write 'np.sum(X)' instead of 'numpy.sum(X)'.
 import numpy as np
 
-# Remember you can mark a part of the code and press
-# F9 to run that part alone.
+# Remember you can use the #%% tag to define a cell
+# and run this cell alone in interactive model, if you want. 
 
 # define variable a with numbers in the range from 0 to 7 (not inclusive)
 a = np.arange(start=0, stop=7)
@@ -22,3 +22,5 @@ c = np.arange(100, 95, -1)
 d = np.arange(1.2, 1.9, 0.1)
 
 e = np.pi * np.arange(0, 2.5, 0.5)
+
+
diff --git a/exercises/02450Toolbox_Python/Scripts/ex1_5_1.py b/exercises/02450Toolbox_Python/Scripts/ex1_5_1.py
index 41c537339319f104430c2160ecbe9806b0036e4a..331faf5803a97830ee9d7cecf781e9791a653416 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex1_5_1.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex1_5_1.py
@@ -11,6 +11,7 @@ filename = importlib_resources.files("dtuimldmtools").joinpath("data/iris.csv")
 print("\nLocation of the iris.csv file: {}".format(filename))
 
 # Load the iris.csv file using pandas
+# Note you do not need to undersatnd the details of the panda package
 df = pd.read_csv(filename)
 
 # Pandas returns a dataframe, (df) which could be used for handling the data.
diff --git a/exercises/02450Toolbox_Python/Scripts/ex1_6_2.py b/exercises/02450Toolbox_Python/Scripts/ex1_6_2.py
index 60a39cf53d0415f6573b00f633de451559a70dff..53697ff2be49da5116fce86e524785906a7e10c7 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex1_6_2.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex1_6_2.py
@@ -1,4 +1,4 @@
-# exercise 3.1.4
+# exercise 1.6.2
 import importlib_resources
 import numpy as np
 from sklearn.feature_extraction.text import CountVectorizer
diff --git a/exercises/02450Toolbox_Python/Scripts/ex1_6_3.py b/exercises/02450Toolbox_Python/Scripts/ex1_6_3.py
index c3ac96c2ad678edc8786ea59973292ad3b80a9e1..c61d0a0299a63576f02c8a84007e3c70c434efa4 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex1_6_3.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex1_6_3.py
@@ -1,4 +1,4 @@
-# exercise 3.1.4
+# exercise 1.6.3
 import importlib_resources
 from sklearn.feature_extraction.text import CountVectorizer
 
@@ -37,4 +37,4 @@ print()
 print("Document-term matrix:")
 print(X.toarray())
 print()
-print("Ran Exercise 3.1.3")
+print("Ran Exercise 1.6.3")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex1_6_4.py b/exercises/02450Toolbox_Python/Scripts/ex1_6_4.py
index e33ee98041ad4eddb1533e2553763c881c2e5e73..4c8602bdcdd7cff58421569e7962fc04143f1f63 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex1_6_4.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex1_6_4.py
@@ -1,4 +1,4 @@
-# exercise 3.1.4
+# exercise 1.6.4
 import importlib_resources
 
 # We'll use a widely used stemmer based:
@@ -62,5 +62,5 @@ print()
 print("Document-term matrix:")
 print(X)
 print()
-print("Ran Exercise 3.1.4")
+print("Ran Exercise 1.6.4")
 print()
diff --git a/exercises/02450Toolbox_Python/Scripts/ex1_6_5.py b/exercises/02450Toolbox_Python/Scripts/ex1_6_5.py
index eb3b3b3e15930768ffd46963e05ae16d66268455..857b49a8198bb497fa82a30d53629a712e260e1f 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex1_6_5.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex1_6_5.py
@@ -1,4 +1,4 @@
-# exercise 3.1.5
+# exercise 1.6.5
 import numpy as np
 import scipy.linalg as linalg
 from ex1_6_4 import *
@@ -35,4 +35,4 @@ sim = similarity(X, q, "cos")
 print("Query vector:\n {0}\n".format(q))
 print("Similarity results:\n {0}".format(sim))
 
-print("Ran Exercise 3.1.5")
+print("Ran Exercise 1.6.5")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_1_1.py b/exercises/02450Toolbox_Python/Scripts/ex2_1_1.py
index dbc1dc0af5914508cd15466c199cdb24c2fd3bc2..2a35baa91427f3c98540d03a7b7fe8026800ed36 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_1_1.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_1_1.py
@@ -1,4 +1,4 @@
-# exercise 3.2.1
+# exercise 2.1.1
 import numpy as np
 
 x = np.array([-0.68, -2.11, 2.39, 0.26, 1.46, 1.33, 1.03, -0.41, -0.33, 0.47])
@@ -16,4 +16,4 @@ print("Standard Deviation:", std_x)
 print("Median:", median_x)
 print("Range:", range_x)
 
-print("Ran Exercise 3.2.1")
+print("Ran Exercise 2.1.1")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_2_1.py b/exercises/02450Toolbox_Python/Scripts/ex2_2_1.py
index f5cfc462ae073133074a692c8080b0706d084ee5..2958613d661712e626ce99e51681eb62648f5e3d 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_2_1.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_2_1.py
@@ -74,4 +74,4 @@ for ms in range(5):
     
 plt.show()
 
-print('Ran Exercise 3.3.1')
+print('Ran Exercise 2.2.1')
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_2_2.py b/exercises/02450Toolbox_Python/Scripts/ex2_2_2.py
index e7abec8d3c302ff9414b0afb8925596c1dc69d3f..6d1590f5bb2b08d244a3d3d94fe6a83bf66619cf 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_2_2.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_2_2.py
@@ -39,4 +39,4 @@ print(
     % (similarity(x, y, "cor") - similarity(b + x, y, "cor"))[0, 0]
 )
 
-print("Ran Exercise 3.2.2")
+print("Ran Exercise 2.2.2")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_3_1.py b/exercises/02450Toolbox_Python/Scripts/ex2_3_1.py
index e6b46e8ca7e49caa7258fa553737a598d2dda417..7a3afe602a2df9cd90c857e3e88f805360daeca4 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_3_1.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_3_1.py
@@ -1,4 +1,4 @@
-# exercise 4.2.1
+# exercise 2.3.1
 
 import importlib_resources
 import numpy as np
@@ -30,4 +30,4 @@ N = len(y)
 M = len(attributeNames)
 C = len(classNames)
 
-print("Ran Exercise 4.2.1")
+print("Ran Exercise 2.3.1")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_3_2.py b/exercises/02450Toolbox_Python/Scripts/ex2_3_2.py
index 40669020f57a582ca3cab76825569f7098c76b77..0136f799fbb17c0ae785db023c8372b618ba674a 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_3_2.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_3_2.py
@@ -1,8 +1,6 @@
-# Exercise 4.2.2
-
+# Exercise 2.3.2
 import numpy as np
-
-# requires data from exercise 4.2.1
+# (requires data from exercise 2.3.1 so will run that script first)
 from ex2_3_1 import *
 from matplotlib.pyplot import figure, hist, show, subplot, xlabel, ylim
 
@@ -17,4 +15,4 @@ for i in range(M):
 
 show()
 
-print("Ran Exercise 4.2.2")
+print("Ran Exercise 2.3.2")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_3_3.py b/exercises/02450Toolbox_Python/Scripts/ex2_3_3.py
index d19cace3629050ab15f7e48117bf0321c8b15b9a..437b1bf4ce6d7348db5a8485cb440c2dbc245046 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_3_3.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_3_3.py
@@ -1,6 +1,5 @@
-# Exercise 4.2.3
-
-# requires data from exercise 4.2.1
+# Exercise 2.3.3
+# (requires data from exercise 2.3.1)
 from ex2_3_1 import *
 from matplotlib.pyplot import boxplot, show, title, xticks, ylabel
 
@@ -10,4 +9,4 @@ ylabel("cm")
 title("Fisher's Iris data set - boxplot")
 show()
 
-print("Ran Exercise 4.2.3")
+print("Ran Exercise 2.3.3")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_3_4.py b/exercises/02450Toolbox_Python/Scripts/ex2_3_4.py
index d45db38b94e46011b94ad350dc76d17ce56c18c6..5a33d4d310d32f1a8774985f1e72b70cafd469a0 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_3_4.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_3_4.py
@@ -1,4 +1,4 @@
-# Exercise 4.2.4
+# Exercise 2.3.4
 # requires data from exercise 4.1.1
 from ex2_3_1 import *
 from matplotlib.pyplot import boxplot, figure, show, subplot, title, xticks, ylim
@@ -21,4 +21,4 @@ for c in range(C):
 
 show()
 
-print("Ran Exercise 4.2.4")
+print("Ran Exercise 2.3.4")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_3_5.py b/exercises/02450Toolbox_Python/Scripts/ex2_3_5.py
index eaac9413f25c6611a22d0ab64691595a423e036b..e2b9836da15cc13d02a1fce4b3998c319f309905 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_3_5.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_3_5.py
@@ -1,6 +1,5 @@
-# Exercise 4.2.5
-
-# requires data from exercise 4.2.1
+# Exercise 2.3.5
+# (requires data from exercise 2.3.1)
 from ex2_3_1 import *
 from matplotlib.pyplot import (
     figure,
@@ -29,10 +28,9 @@ for m1 in range(M):
                 ylabel(attributeNames[m1])
             else:
                 yticks([])
-            # ylim(0,X.max()*1.1)
-            # xlim(0,X.max()*1.1)
+                            
 legend(classNames)
 
 show()
 
-print("Ran Exercise 4.2.5")
+print("Ran Exercise 2.3.5")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_3_6.py b/exercises/02450Toolbox_Python/Scripts/ex2_3_6.py
index f881cc83908231ee83c703d19405afd7a087b7c2..5684aa7d2b531df4da4ee32afc331764fc08993d 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_3_6.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_3_6.py
@@ -1,6 +1,6 @@
-# Exercise 4.2.6
+# Exercise 2.3.6
 
-# requires data from exercise 4.1.1
+# requires data from exercise 2.3.1
 from ex2_3_1 import *
 from matplotlib.pyplot import figure, show
 from mpl_toolkits.mplot3d import Axes3D
@@ -24,4 +24,4 @@ ax.set_zlabel(attributeNames[ind[2]])
 
 show()
 
-print("Ran Exercise 4.2.6")
+print("Ran Exercise 2.3.6")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_3_7.py b/exercises/02450Toolbox_Python/Scripts/ex2_3_7.py
index 08c9dbfb9114f731624b39a2bb99534a99c9adf5..587367dc2b5e6c9ea0b49ded847561fb485fea49 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_3_7.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_3_7.py
@@ -1,6 +1,6 @@
-# Exercise 4.2.7
+# Exercise 2.3.7
 
-# requires data from exercise 4.2.1
+# requires data from exercise 2.3.7
 from ex2_3_1 import *
 from matplotlib.pyplot import (
     cm,
@@ -27,4 +27,4 @@ colorbar()
 
 show()
 
-print("Ran Exercise 4.2.7")
+print("Ran Exercise 2.3.7")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_4_1.py b/exercises/02450Toolbox_Python/Scripts/ex2_4_1.py
index 646d4d52b2324f2906a586b5a3da6d05997a454e..3bbc0bd0e807b369a257bcc37364ade22759066b 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_4_1.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_4_1.py
@@ -1,4 +1,4 @@
-# exercise 4.3.1
+# exercise 2.4.1
 
 import importlib_resources
 import numpy as np
@@ -116,4 +116,4 @@ for i in range(M):
 
 show()
 
-print("Ran Exercise 4.3.1")
+print("Ran Exercise 2.4.1")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex2_4_2.py b/exercises/02450Toolbox_Python/Scripts/ex2_4_2.py
index 5667029a6b07a0012bdb4439c5ca978a80e9dcbb..3c362f0b8b82eecfe3951f2c6c99722d8e10223b 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex2_4_2.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex2_4_2.py
@@ -1,4 +1,4 @@
-# exercise 4.3.2
+# exercise 2.4.2
 
 import importlib_resources
 import numpy as np
@@ -69,4 +69,4 @@ for m1 in range(NumAtr):
 legend(classNames)
 show()
 
-print("Ran Exercise 4.3.2")
+print("Ran Exercise 2.4.2")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex3_1_1.py b/exercises/02450Toolbox_Python/Scripts/ex3_1_1.py
index b210d13bfaca05d29b799ca0f1cc103802dee09e..b2da3d69fc5c6cc3d3130c29ae8e8cc4072cad37 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex3_1_1.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex3_1_1.py
@@ -1,4 +1,4 @@
-# exercise 2.1.1
+# exercise 3.1.1
 import importlib_resources
 import numpy as np
 import xlrd
@@ -29,4 +29,4 @@ N = len(y)
 M = len(attributeNames)
 C = len(classNames)
 
-print("Ran Exercise 2.1.1")
+print("Ran Exercise 3.1.1")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex3_1_2.py b/exercises/02450Toolbox_Python/Scripts/ex3_1_2.py
index 6af386ac3591e7d180367857a81bc7e02770e29e..98d81d30af0dc3e90ed0b06be631b75d063ee994 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex3_1_2.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex3_1_2.py
@@ -1,12 +1,9 @@
-# exercise 2.1.2
-
-# Imports the numpy and xlrd package, then runs the ex2_1_1 code
+# exercise 3.1.2
+# (requires data structures from ex. 3.1.1)
+# Imports the numpy and xlrd package, then runs the ex3_1_1 code
 from ex3_1_1 import *
 from matplotlib.pyplot import figure, legend, plot, show, title, xlabel, ylabel
 
-# (requires data structures from ex. 2.1.1)
-
-
 # Data attributes to be plotted
 i = 0
 j = 1
@@ -17,7 +14,7 @@ j = 1
 # X = np.array(X) #Try to uncomment this line
 plot(X[:, i], X[:, j], "o")
 
-# %%
+##
 # Make another more fancy plot that includes legend, class labels,
 # attribute names, and a title.
 f = figure()
@@ -34,4 +31,4 @@ ylabel(attributeNames[j])
 
 # Output result to screen
 show()
-print("Ran Exercise 2.1.2")
+print("Ran Exercise 3.1.2")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex3_1_3.py b/exercises/02450Toolbox_Python/Scripts/ex3_1_3.py
index 75b9c6b3817910a5ed34195e17c77655fab3595c..947bd45c321d6e26fe347bdd7c252ba4f3ba5ac9 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex3_1_3.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex3_1_3.py
@@ -1,5 +1,5 @@
-# exercise 2.1.3
-# (requires data structures from ex. 2.2.1)
+# exercise 3.1.3
+# (requires data structures from ex. 3.1.1)
 import matplotlib.pyplot as plt
 from ex3_1_1 import *
 from scipy.linalg import svd
@@ -27,4 +27,4 @@ plt.legend(["Individual", "Cumulative", "Threshold"])
 plt.grid()
 plt.show()
 
-print("Ran Exercise 2.1.3")
+print("Ran Exercise 3.1.3")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex3_1_4.py b/exercises/02450Toolbox_Python/Scripts/ex3_1_4.py
index 87f40a76e9e346233d92b48cfc02604b34d4b8d6..11fc4abd54fad818fbadb679c3ed564ee7f1bd0b 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex3_1_4.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex3_1_4.py
@@ -1,4 +1,4 @@
-# exercise 2.1.4
+# exercise 3.1.4
 # (requires data structures from ex. 2.2.1 and 2.2.3)
 from ex3_1_1 import *
 from matplotlib.pyplot import figure, legend, plot, show, title, xlabel, ylabel
@@ -35,4 +35,4 @@ ylabel("PC{0}".format(j + 1))
 # Output result to screen
 show()
 
-print("Ran Exercise 2.1.4")
+print("Ran Exercise 3.1.4")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex3_1_5.py b/exercises/02450Toolbox_Python/Scripts/ex3_1_5.py
index b17766da22a5f049eef3be9a59ac2f91f91c995b..395b11363e06f3a08f86728c342630d382ddd2cd 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex3_1_5.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex3_1_5.py
@@ -1,4 +1,4 @@
-# exercise 2.2.4
+# exercise 3.1.5
 
 # (requires data structures from ex. 2.2.1)
 import matplotlib.pyplot as plt
diff --git a/exercises/02450Toolbox_Python/Scripts/ex3_1_6.py b/exercises/02450Toolbox_Python/Scripts/ex3_1_6.py
index 25cf5208a741bd821c06df394ea4184fb1a05371..3045c7912e4b7912bf888484d56fe0fba6ce3080 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex3_1_6.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex3_1_6.py
@@ -1,4 +1,4 @@
-## exercise 2.1.6
+## exercise 3.1.6
 import matplotlib.pyplot as plt
 from ex3_1_1 import *
 from scipy.linalg import svd
@@ -12,7 +12,7 @@ plt.title("NanoNose: attribute standard deviations")
 
 ## Investigate how standardization affects PCA
 
-# Try this *later* (for last), and explain the effect
+# Try this *later*, and explain the effect
 # X_s = X.copy() # Make a to be "scaled" version of X
 # X_s[:, 2] = 100*X_s[:, 2] # Scale/multiply attribute C with a factor 100
 # Use X_s instead of X to in the script below to see the difference.
diff --git a/exercises/02450Toolbox_Python/Scripts/ex3_2_1.py b/exercises/02450Toolbox_Python/Scripts/ex3_2_1.py
index 798bb5b46dba276b98ff5c3f0da86e13f66bfe15..88cd3ccb7a1c413fccfe4e9444494d953167118e 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex3_2_1.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex3_2_1.py
@@ -1,3 +1,4 @@
+## exercise 3.2.1
 import importlib_resources
 import numpy as np
 from matplotlib.pyplot import cm, figure, imshow, show, subplot, title, xlabel, yticks
@@ -33,4 +34,4 @@ title("Digit as an image")
 
 show()
 
-print("Ran Exercise 2.2.1")
+
diff --git a/exercises/02450Toolbox_Python/Scripts/ex3_2_2.py b/exercises/02450Toolbox_Python/Scripts/ex3_2_2.py
index 3d6104b2aae59b5bddd2d2afa9157d3d2e181485..e0b1f0857b4a66ec97aaea0653f689c4225bf740 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex3_2_2.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex3_2_2.py
@@ -1,4 +1,4 @@
-# exercise 2.2.2
+# exercise 3.2.2
 import importlib_resources
 import numpy as np
 import scipy.linalg as linalg
@@ -114,4 +114,4 @@ for k in range(K):
 # output to screen
 show()
 
-print("Ran Exercise 2.2.2")
+
diff --git a/exercises/02450Toolbox_Python/Scripts/ex3_3_1.py b/exercises/02450Toolbox_Python/Scripts/ex3_3_1.py
index 9f665b581d0c86e7f5ba07bf5e943e04ff0a273e..a3104d8dff87096bb3acbd6998ea6d97df7ac26e 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex3_3_1.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex3_3_1.py
@@ -1,4 +1,4 @@
-# exercise 2.3.1
+# exercise 3.3.1
 
 import importlib_resources
 import numpy as np
@@ -54,5 +54,3 @@ plot(K, error_rates, "o-")
 xlabel("Number of principal components K")
 ylabel("Error rate [%]")
 show()
-
-print("Ran Exercise 2.3.1")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex4_1_1.py b/exercises/02450Toolbox_Python/Scripts/ex4_1_1.py
index e3a77ebc106a018ad928c30c1da83736957aa782..f52139d12832b107d44f39082e15bcbd4ffeb3fa 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex4_1_1.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex4_1_1.py
@@ -29,4 +29,4 @@ subplot(1, 3, 3)
 hist(X, bins=nbins)
 show()
 
-print("Ran Exercise 4.1.1")
+
diff --git a/exercises/02450Toolbox_Python/Scripts/ex4_1_2.py b/exercises/02450Toolbox_Python/Scripts/ex4_1_2.py
index f2fc64f623da810e918b6e835d6f0eadb6f8a2c5..df357b391150c468784368654d0665c891415f02 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex4_1_2.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex4_1_2.py
@@ -39,4 +39,3 @@ print("Empirical std.dev.: ", s_)
 
 show()
 
-print("Ran Exercise 4.1.2")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex4_1_3.py b/exercises/02450Toolbox_Python/Scripts/ex4_1_3.py
index 04eda67169c6492e3b67bc20de521878f602f730..2d45b0111632b202beeeb3fe951775a002a25827 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex4_1_3.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex4_1_3.py
@@ -42,4 +42,3 @@ print("Empirical std.dev.: ", s_)
 
 show()
 
-print("Ran Exercise 4.1.3")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex4_1_5.py b/exercises/02450Toolbox_Python/Scripts/ex4_1_5.py
index 90bfd4b6807a3b112c2cc747622eebf2a49da889..09bbc68c4770d92bc5be5b5f7d95e9d47f8a7692 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex4_1_5.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex4_1_5.py
@@ -65,4 +65,4 @@ title("2D histogram")
 
 show()
 
-print("Ran Exercise 4.1.5")
+
diff --git a/exercises/02450Toolbox_Python/Scripts/ex4_1_6.py b/exercises/02450Toolbox_Python/Scripts/ex4_1_6.py
index e74e856f3bdb6d3d6b3031aa287213100a017caa..e20bf0fc5ecc75bd9f0154cee197ea34c8b6c066 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex4_1_6.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex4_1_6.py
@@ -47,4 +47,3 @@ yticks([])
 
 show()
 
-print("Ran Exercise 4.1.6")
diff --git a/exercises/02450Toolbox_Python/Scripts/ex4_1_7.py b/exercises/02450Toolbox_Python/Scripts/ex4_1_7.py
index c6ded613d21f1cf7fa41772fbe1d8658bff95dbe..4a1ef5fae30db45fdbcc56c346be6277e0dabdf6 100644
--- a/exercises/02450Toolbox_Python/Scripts/ex4_1_7.py
+++ b/exercises/02450Toolbox_Python/Scripts/ex4_1_7.py
@@ -70,4 +70,3 @@ for k in range(ngen):
 
 show()
 
-print("Ran Exercise 4.1.7")
diff --git a/exercises/02450Toolbox_R/Scripts/ex1_6_2.R b/exercises/02450Toolbox_R/Scripts/ex1_6_2.R
index d3a68728715b5ebcd46797215edaea83f389e448..c8bd8d31c97f6bf57ad63c286824eecab97efb2c 100644
--- a/exercises/02450Toolbox_R/Scripts/ex1_6_2.R
+++ b/exercises/02450Toolbox_R/Scripts/ex1_6_2.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 3.1.2
+# Exercise 1.6.2
 ####################
 
 rm(list = ls()) # Clear work space
diff --git a/exercises/02450Toolbox_R/Scripts/ex1_6_3.R b/exercises/02450Toolbox_R/Scripts/ex1_6_3.R
index 4180e92904af380e5417c81b30f2044db6102ea0..a4b1d47963ac504c2a4b06afa6e6903bb7fc4fda 100644
--- a/exercises/02450Toolbox_R/Scripts/ex1_6_3.R
+++ b/exercises/02450Toolbox_R/Scripts/ex1_6_3.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 3.1.3
+# Exercise 16.3
 ####################
 
 rm(list = ls()) # Clear work space
diff --git a/exercises/02450Toolbox_R/Scripts/ex1_6_4.R b/exercises/02450Toolbox_R/Scripts/ex1_6_4.R
index 5ad1d634acf03543105e49b1e1e8ee6a0ba61870..ef907616d321bea797f9808aa023b01bcbb28381 100644
--- a/exercises/02450Toolbox_R/Scripts/ex1_6_4.R
+++ b/exercises/02450Toolbox_R/Scripts/ex1_6_4.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 3.1.4
+# Exercise 1.6.4
 ####################
 
 rm(list = ls()) # Clear work space
diff --git a/exercises/02450Toolbox_R/Scripts/ex1_6_5.R b/exercises/02450Toolbox_R/Scripts/ex1_6_5.R
index a9c4b7d1d19f693fbde4fc96101ca4aab53ba0d8..fecf407f9c3d13fbfd1ff3756447f778e8af52ad 100644
--- a/exercises/02450Toolbox_R/Scripts/ex1_6_5.R
+++ b/exercises/02450Toolbox_R/Scripts/ex1_6_5.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 3.1.5
+# Exercise 1.6.5
 ####################
 
 source("Scripts/ex1_6_4.R")
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_1_1.R b/exercises/02450Toolbox_R/Scripts/ex2_1_1.R
index 725f7564a291d7ba29252e89ef5d0f0c1adc7679..2d7d725bf4a2cf7d7d7944c89107d40fef06c008 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_1_1.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_1_1.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 3.2.1
+# Exercise 2.1.1
 ####################
 
 rm(list = ls()) # Clear work space
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_2_1.R b/exercises/02450Toolbox_R/Scripts/ex2_2_1.R
index 91eccf7115949659685286b1285dced806f6039e..5383d346c0956f2def69e930187cc7a5b460faaa 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_2_1.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_2_1.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 3.3.1
+# Exercise 2.2.1
 ####################
 rm(list = ls()) # Clear work space)
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_2_2.R b/exercises/02450Toolbox_R/Scripts/ex2_2_2.R
index 3cdc43ec18cec69145b8c9e47da735c2b53d1e34..f34e77b0653260041a175f787d1dcef5022cbf2e 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_2_2.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_2_2.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 3.3.2
+# Exercise 2.2.2
 ####################
 source("Tools/similarity.R")
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_3_1.R b/exercises/02450Toolbox_R/Scripts/ex2_3_1.R
index 98f03304399f73d86970a8b9f0b324e750b99f96..fd784baefff49ce419203a65e545e9dd9ae9244f 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_3_1.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_3_1.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 4.2.1
+# Exercise 2.3.1
 ####################
 rm(list = ls()) # Clear work space
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_3_2.R b/exercises/02450Toolbox_R/Scripts/ex2_3_2.R
index f9558da2f3640027f3862bd0192f660b1a74d5fa..c43d2823cb54bc50a93faaebb7139cd323db7ad6 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_3_2.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_3_2.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 4.2.2
+# Exercise 2.3.2
 ####################
 
 source("Scripts/ex2_3_1.R")
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_3_3.R b/exercises/02450Toolbox_R/Scripts/ex2_3_3.R
index cceef6d4af761fb61283e31a713095ee8aa6ced1..2b3684605ee0d9b7db68a2ee4798f1debb74289c 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_3_3.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_3_3.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 4.2.3
+# Exercise 2.3.3
 ####################
 
 source("Scripts/ex2_3_1.R")
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_3_4.R b/exercises/02450Toolbox_R/Scripts/ex2_3_4.R
index dd45ae4f9e2ee192f4b7baf2bf132e7f33f67821..aae81a833880bbabc2cebc4ae3d413c514919760 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_3_4.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_3_4.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 4.2.4
+# Exercise 2.3.4
 ####################
 source("Scripts/ex2_3_1.R")
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_3_5.R b/exercises/02450Toolbox_R/Scripts/ex2_3_5.R
index 700748406b8be01bc57fac91e77ad90ef89a4d42..c8527b8167d07bcca56c6fd590f2139af2c69681 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_3_5.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_3_5.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 4.2.5
+# Exercise 2.3.5
 ####################
 source("Scripts/ex2_3_1.R")
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_3_6.R b/exercises/02450Toolbox_R/Scripts/ex2_3_6.R
index 15a729e371f07988a210c190dbf1b173f928a8db..55d8673c4655a45e31f0aee1306a170183440de4 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_3_6.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_3_6.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 4.2.6
+# Exercise 2.3.6
 ####################
 source("Scripts/ex2_3_1.R")
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_3_7.R b/exercises/02450Toolbox_R/Scripts/ex2_3_7.R
index f22824150a68ef1dba88ee0c42e8923a8d27ff37..f0026c231806fb62e6a30ff2f720b95ee3c91fda 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_3_7.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_3_7.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 4.2.7
+# Exercise 2.3.7
 ####################
 source("Scripts/ex2_3_1.R")
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_4_1.R b/exercises/02450Toolbox_R/Scripts/ex2_4_1.R
index 93603320ed68889fb953a3475fd9ff7a6928ee89..3642c8e3b69759ea702838ca54378d82c08d4b2e 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_4_1.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_4_1.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 4.3.1
+# Exercise 2.4.1
 ####################
 rm(list = ls()) # Clear work space
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex2_4_2.R b/exercises/02450Toolbox_R/Scripts/ex2_4_2.R
index cbec5c62842dffb3006b3844277c8aa0457476f9..984acd5d7ba0226c461ae3e8b023118a1b9bc970 100644
--- a/exercises/02450Toolbox_R/Scripts/ex2_4_2.R
+++ b/exercises/02450Toolbox_R/Scripts/ex2_4_2.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 4.3.2
+# Exercise 2.4.2
 ####################
 
 source("Scripts/ex2_4_1.R")
diff --git a/exercises/02450Toolbox_R/Scripts/ex3_1_1.R b/exercises/02450Toolbox_R/Scripts/ex3_1_1.R
index 7861e15a48b09ebbb0a87f27a7366b651ff048d0..1b0b9d0bef16a04212853f7b9871320b8969b1fc 100644
--- a/exercises/02450Toolbox_R/Scripts/ex3_1_1.R
+++ b/exercises/02450Toolbox_R/Scripts/ex3_1_1.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 2.1.1
+# Exercise 3.1.1
 ####################
 
 rm(list = ls()) # Clear work space
diff --git a/exercises/02450Toolbox_R/Scripts/ex3_1_2.R b/exercises/02450Toolbox_R/Scripts/ex3_1_2.R
index d99b5ebcc5c289c968bc0e73da451a2d85fbb7bb..365626039dd587a79a9cb88219879a2b17d42d99 100644
--- a/exercises/02450Toolbox_R/Scripts/ex3_1_2.R
+++ b/exercises/02450Toolbox_R/Scripts/ex3_1_2.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 2.1.2
+# Exercise 3.1.2
 ####################
 
 # Run ex2.1.1:
diff --git a/exercises/02450Toolbox_R/Scripts/ex3_1_3.R b/exercises/02450Toolbox_R/Scripts/ex3_1_3.R
index b38a52290d2988124ca034e4751e7e7375ccd926..957a17bc6daaa09a0571306913a443a742bf96ce 100644
--- a/exercises/02450Toolbox_R/Scripts/ex3_1_3.R
+++ b/exercises/02450Toolbox_R/Scripts/ex3_1_3.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 2.1.3
+# Exercise 3.1.3
 ####################
 
 source("Scripts/ex3_1_1.R")
diff --git a/exercises/02450Toolbox_R/Scripts/ex3_1_4.R b/exercises/02450Toolbox_R/Scripts/ex3_1_4.R
index 3b43e4700e2a6c2d4f447166eee754a0f476a04a..08a031882900cdd0e845c78a2fda80f97f96176d 100644
--- a/exercises/02450Toolbox_R/Scripts/ex3_1_4.R
+++ b/exercises/02450Toolbox_R/Scripts/ex3_1_4.R
@@ -1,7 +1,7 @@
 ####################
-# Exercise 2.1.4
+# Exercise 3.1.4
 ####################
-source("Scripts/ex2_1_3.R")
+source("Scripts/ex3_1_3.R")
 
 # Manual projecting data onto principal component.
 Z <- s$u %*% diag(s$d)
diff --git a/exercises/02450Toolbox_R/Scripts/ex3_1_5.R b/exercises/02450Toolbox_R/Scripts/ex3_1_5.R
index bb02536666ef680aa67cfdf71b6e91504e2cf931..2a8c1fd092e53caca529b9a6454e7646f20f74e7 100644
--- a/exercises/02450Toolbox_R/Scripts/ex3_1_5.R
+++ b/exercises/02450Toolbox_R/Scripts/ex3_1_5.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 2.1.5
+# Exercise 3.1.5
 ####################
 source("Scripts/ex3_1_1.R")
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex3_1_6.R b/exercises/02450Toolbox_R/Scripts/ex3_1_6.R
index 83faf47dbd9116ccf326b94e3344fe76f8a036fe..e7afb2de7299c5d32a527b95db58abb27075e7fe 100644
--- a/exercises/02450Toolbox_R/Scripts/ex3_1_6.R
+++ b/exercises/02450Toolbox_R/Scripts/ex3_1_6.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 2.1.6
+# Exercise 3.1.6
 ####################
 source("Scripts/ex3_1_1.R")
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex3_2_1.R b/exercises/02450Toolbox_R/Scripts/ex3_2_1.R
index ff04967032ed9c6df0d9c33ec81aef0f5aeafdbc..df7336ca7fda83bedb5212dbf4bf1b849a70e8b7 100644
--- a/exercises/02450Toolbox_R/Scripts/ex3_2_1.R
+++ b/exercises/02450Toolbox_R/Scripts/ex3_2_1.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 2.2.1
+# Exercise 3.2.1
 ####################
 
 rm(list = ls()) # Clear work space
diff --git a/exercises/02450Toolbox_R/Scripts/ex3_2_2.R b/exercises/02450Toolbox_R/Scripts/ex3_2_2.R
index d1d81de672b8e982cbdb3c01f531afaf6cdf7d56..383a587e0c8d7b3fa83a6697350cbcc0b1679a0c 100644
--- a/exercises/02450Toolbox_R/Scripts/ex3_2_2.R
+++ b/exercises/02450Toolbox_R/Scripts/ex3_2_2.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 2.2.2
+# Exercise 3.2.2
 ####################
 source("Scripts/ex3_2_1.R")
 
diff --git a/exercises/02450Toolbox_R/Scripts/ex3_3_1.R b/exercises/02450Toolbox_R/Scripts/ex3_3_1.R
index 39726ea5f21ccd4bb41fc140f5df9f6542b34891..da975fbfe12d21c0346c3b7b4404cf0cd0b745fa 100644
--- a/exercises/02450Toolbox_R/Scripts/ex3_3_1.R
+++ b/exercises/02450Toolbox_R/Scripts/ex3_3_1.R
@@ -1,5 +1,5 @@
 ####################
-# Exercise 2.3.1
+# Exercise 3.3.1
 ####################
 
 rm(list = ls()) # Clear work space