diff --git a/Plotting.py b/Plotting.py
index ff5e608617c5ebe88c11abf1662e5142a5abf2a4..2ce4ec9c53c829c196f78a98a655fc69839e3fad 100644
--- a/Plotting.py
+++ b/Plotting.py
@@ -3,16 +3,22 @@
 @author: Laura C. Kühle
 
 TODO: Give option to select plotting color
-TODO: Add documentation to plot_boxplot()
-TODO: Adjust documentation for plot_classification_accuracy()
+TODO: Add documentation to plot_boxplot() -> Done
+TODO: Adjust documentation for plot_classification_accuracy() -> Done
 
 """
+from typing import Tuple
+
 import numpy as np
 import matplotlib
 from matplotlib import pyplot as plt
 import seaborn as sns
+from numpy import ndarray
 from sympy import Symbol
 
+from Quadrature import Quadrature
+from Initial_Condition import InitialCondition
+
 
 matplotlib.use('Agg')
 x = Symbol('x')
@@ -20,16 +26,17 @@ z = Symbol('z')
 sns.set()
 
 
-def plot_solution_and_approx(grid, exact, approx, color_exact, color_approx):
-    """"Plots approximate and exact solution against each other.
+def plot_solution_and_approx(grid: ndarray, exact: ndarray, approx: ndarray,
+                             color_exact: str, color_approx: str) -> None:
+    """Plots approximate and exact solution against each other.
 
     Parameters
     ----------
-    grid : np.array
+    grid : ndarray
         List of mesh evaluation points.
-    exact : np.array
+    exact : ndarray
         Array containing exact evaluation of a function.
-    approx : np.array
+    approx : ndarray
         Array containing approximate evaluation of a function.
     color_exact : str
         String describing color to plot exact solution.
@@ -46,14 +53,14 @@ def plot_solution_and_approx(grid, exact, approx, color_exact, color_approx):
     plt.title('Solution and Approximation')
 
 
-def plot_semilog_error(grid, pointwise_error):
-    """"Plots semi-logarithmic error between approximate and exact solution.
+def plot_semilog_error(grid: ndarray, pointwise_error: ndarray) -> None:
+    """Plots semi-logarithmic error between approximate and exact solution.
 
     Parameters
     ----------
-    grid : np.array
+    grid : ndarray
         List of mesh evaluation points.
-    pointwise_error : np.array
+    pointwise_error : ndarray
         Array containing pointwise difference between exact and approximate solution.
 
     """
@@ -64,16 +71,16 @@ def plot_semilog_error(grid, pointwise_error):
     plt.title('Semilog Error plotted at Evaluation points')
 
 
-def plot_error(grid, exact, approx):
-    """"Plots error between approximate and exact solution.
+def plot_error(grid: ndarray, exact: ndarray, approx: ndarray) -> None:
+    """Plots error between approximate and exact solution.
 
     Parameters
     ----------
-    grid : np.array
+    grid : ndarray
         List of mesh evaluation points.
-    exact : np.array
+    exact : ndarray
         Array containing exact evaluation of a function.
-    approx : np.array
+    approx : ndarray
         Array containing approximate evaluation of a function.
 
     """
@@ -84,8 +91,8 @@ def plot_error(grid, exact, approx):
     plt.title('Errors')
 
 
-def plot_shock_tube(num_grid_cells, troubled_cell_history, time_history):
-    """"Plots shock tube.
+def plot_shock_tube(num_grid_cells: int, troubled_cell_history: list, time_history: list) -> None:
+    """Plots shock tube.
 
     Plots detected troubled cells over time to depict the evolution of shocks as shock tubes.
 
@@ -95,7 +102,7 @@ def plot_shock_tube(num_grid_cells, troubled_cell_history, time_history):
         Number of cells in the mesh. Usually exponential of 2.
     troubled_cell_history : list
         List of detected troubled cells for each time step.
-    time_history:
+    time_history: list
         List of value of each time step.
 
     """
@@ -110,21 +117,22 @@ def plot_shock_tube(num_grid_cells, troubled_cell_history, time_history):
     plt.title('Shock Tubes')
 
 
-def plot_details(fine_projection, fine_mesh, coarse_projection, basis, wavelet, multiwavelet_coeffs,
-                 num_coarse_grid_cells, polynomial_degree):
-    """"Plots details of projection to coarser mesh..
+def plot_details(fine_projection: ndarray, fine_mesh: ndarray, coarse_projection: ndarray,
+                 basis: ndarray, wavelet: ndarray, multiwavelet_coeffs: ndarray,
+                 num_coarse_grid_cells: int, polynomial_degree: int) -> None:
+    """Plots details of projection to coarser mesh.
 
     Parameters
     ----------
-    fine_projection, coarse_projection : np.array
+    fine_projection, coarse_projection : ndarray
         Matrix of projection for each polynomial degree.
-    fine_mesh : np.array
+    fine_mesh : ndarray
         List of evaluation points for fine mesh.
-    basis : np.array
+    basis : ndarray
         Basis vector for calculation.
-    wavelet : np.array
+    wavelet : ndarray
         Wavelet vector for calculation.
-    multiwavelet_coeffs : np.array
+    multiwavelet_coeffs : ndarray
         Matrix of multiwavelet coefficients.
     num_coarse_grid_cells : int
         Number of cells in the coarse mesh (half the cells of the fine mesh).
@@ -157,23 +165,24 @@ def plot_details(fine_projection, fine_mesh, coarse_projection, basis, wavelet,
     plt.title('Wavelet Coefficients')
 
 
-def calculate_approximate_solution(projection, points, polynomial_degree, basis):
+def calculate_approximate_solution(projection: ndarray, points: ndarray, polynomial_degree: int,
+                                   basis: ndarray) -> ndarray:
     """Calculates approximate solution.
 
     Parameters
     ----------
-    projection : np.array
+    projection : ndarray
         Matrix of projection for each polynomial degree.
-    points : np.array
+    points : ndarray
         List of evaluation points for mesh.
     polynomial_degree : int
         Polynomial degree.
-    basis : np.array
+    basis : ndarray
         Basis vector for calculation.
 
     Returns
     -------
-    np.array
+    ndarray
         Array containing approximate evaluation of a function.
 
     """
@@ -190,13 +199,14 @@ def calculate_approximate_solution(projection, points, polynomial_degree, basis)
     return np.reshape(np.array(approx), (1, len(approx) * num_points))
 
 
-def calculate_exact_solution(mesh, cell_len, wave_speed, final_time, interval_len, quadrature,
-                             init_cond):
+def calculate_exact_solution(mesh: ndarray, cell_len: float, wave_speed: float, final_time: float,
+                             interval_len: float, quadrature: Quadrature,
+                             init_cond: InitialCondition) -> Tuple[ndarray, ndarray]:
     """Calculates exact solution.
 
     Parameters
     ----------
-    mesh : array
+    mesh : ndarray
         List of mesh valuation points.
     cell_len : float
         Length of a cell in mesh.
@@ -213,7 +223,9 @@ def calculate_exact_solution(mesh, cell_len, wave_speed, final_time, interval_le
 
     Returns
     -------
-    np.array
+    grid: ndarray
+        Array containing evaluation grid for a function.
+    exact: ndarray
         Array containing exact evaluation of a function.
 
     """
@@ -239,21 +251,17 @@ def calculate_exact_solution(mesh, cell_len, wave_speed, final_time, interval_le
     return grid, exact
 
 
-def plot_classification_accuracy(evaluation_dict, colors):
+def plot_classification_accuracy(evaluation_dict: dict, colors: dict) -> None:
     """Plots classification accuracy.
 
-    Plots the accuracy, precision, and recall in a bar plot.
+    Plots given evaluation measures in a bar plot for each model.
 
     Parameters
     ----------
-    precision : float
-        Precision of classification.
-    recall : float
-        Recall of classification.
-    accuracy : float
-        Accuracy of classification.
-    xlabels : list
-        List of strings for x-axis labels.
+    evaluation_dict: dict
+        Dictionary containing classification evaluation data.
+    colors: dict
+        Dictionary containing plotting colors.
 
     """
     model_names = evaluation_dict[list(colors.keys())[0]].keys()
@@ -277,7 +285,19 @@ def plot_classification_accuracy(evaluation_dict, colors):
     ax.legend(loc='upper right')
 
 
-def plot_boxplot(evaluation_dict, colors):
+def plot_boxplot(evaluation_dict: dict, colors: dict) -> None:
+    """Plots classification accuracy.
+
+    Plots given evaluation measures in a boxplot for each model.
+
+    Parameters
+    ----------
+    evaluation_dict: dict
+        Dictionary containing classification evaluation data.
+    colors: dict
+        Dictionary containing plotting colors.
+
+    """
     model_names = evaluation_dict[list(colors.keys())[0]].keys()
     font_size = 16 - (len(max(model_names, key=len))//3)
     fig = plt.figure('boxplot_accuracy')