diff --git a/src/1_einstein_model.md b/src/1_einstein_model.md
index c2c30d06c7e1fd57bf18f341aa0c959bb7b58536..21d9f851ae81cf2f4b759fd7ecec4c4d80df2b3b 100644
--- a/src/1_einstein_model.md
+++ b/src/1_einstein_model.md
@@ -21,7 +21,7 @@ from scipy.optimize import curve_fit
 from scipy.integrate import quad
 import plotly.offline as py
 import plotly.graph_objs as go
-
+from ipywidgets import interact, FloatSlider, Layout
 
 from common import draw_classic_axes, configure_plotting
 
@@ -304,30 +304,49 @@ where we have introduced the *Einstein temperature* $T_E \equiv \hbar \omega_0 /
 This is the characteristic temperature for which the thermal excitations "freeze out" in the harmonic oscillator. This means that there is not enough thermal energy to excite the harmonic oscillators into an excited state, which leaves them in the ground state. Consequently, it is also the temperature scale for which the heat capacity of an Einstein solid starts significantly decreasing. We also observe that the Einstein temperature depends on the eigenfrequency $\omega_0$. As different materials have a different eigenfrequency $\omega_0$, the Einstein temperature is a material-dependent parameter.
 
 ```python
-def c_einstein(T, T_E=1):
+# Defining variables
+y_line = [0, 0.92];
+x_max = 2.5
+temps = np.linspace(0.01, x_max, 750)
+
+def c_einstein(T, T_E):
     x = T_E / T
     return 3 * x**2 * np.exp(x) / (np.exp(x) - 1)**2
 
-xline = [1, 1];
-yline = [0, 1.1];
-temps = np.linspace(0.01, 1.5, 500)
-fig, ax = pyplot.subplots()
-pyplot.hlines([1], 0, 1.5, linestyles='dashed', label = r'Classical')
-ax.plot(temps, c_einstein(temps)/3, '-', label = r'Einstein model')
-ax.plot(xline, yline, 'r--')
-ax.fill_between(temps, c_einstein(temps)/3, 1, alpha=0.5)
-ax.set_title('Heat capacity for the Einstein model and the equipartition theorem')
-ax.set_ylim(bottom=0, top=1.2)
-ax.set_xlabel('$T$')
-ax.set_ylabel(r'$C$')
-ax.set_xticks([0])
-ax.set_xticklabels(['$0$'])
-ax.set_yticks([1])
-ax.set_yticklabels(['$k_B$'])
-draw_classic_axes(ax)
-ax.text(1.01, 0.5, r'$T= T_E= \hbar \omega_0/k_{\rm B}$', ha='left', color='r')
-ax.legend(loc = 'lower right')
-fig.show();
+def einstein_temp_plot(T_E):
+    # Creating plot
+    fig, ax = pyplot.subplots(figsize = (12, 9))
+    pyplot.hlines([1], 0, x_max, linestyles = 'dashed', label = r'Classical')
+    ax.plot(temps, c_einstein(temps, T_E)/3, '-', label = r'Einstein model')
+    ax.plot([T_E, T_E], y_line, 'r--')
+    ax.fill_between(temps, c_einstein(temps, T_E)/3, 1, alpha = 0.5)
+    ax.set_title('Heat capacity of the Einstein model and the equipartition theorem')
+    ax.set_ylim(bottom = 0, top = 1.2)
+    ax.set_xlabel('$T$')
+    ax.set_ylabel(r'$C$')
+    ax.set_xticks([0])
+    ax.set_xlim((0, x_max))
+    ax.set_xticklabels(['$0$'])
+    ax.set_yticks([1])
+    ax.set_yticklabels(['$k_B$'])
+    ax.text(T_E+0.05, 0.5, r'$T= T_E= \hbar \omega_0/k_{\rm B}$', ha='left', color='r')
+    ax.legend(loc = 'lower right')
+    pyplot.show()
+    return()
+
+# Creating the slider
+layout_slider = Layout(width = '725px', height = '20px')
+float_slider = FloatSlider(
+    value = 1, 
+    min = 0.1, max = 2, step = 0.05,
+    description = r'$T_E$',
+    continuous_update = True,
+    orientation = 'horizontal',
+    readout_format = '.1f',
+    layout = layout_slider)
+
+# Creating the plot
+control = interact(einstein_temp_plot, T_E = float_slider)
 ```
 
 The horizontal dashed line is the classical value, $k_{\rm B}$. The shaded area is the difference between the classical value $k_B$ and the value predicted by the Einstein model. Integrating over the shaded area yields $\frac{1}{2}\hbar\omega_0$, which is the zero-point energy of the oscillator, which cannot be extracted from the system. The vertical dashed line depicts the Einstein temperature $T_E$, at which the heat capacity $C \approx 0.92 k_B$.