Exercises: * [X] 3.1 * [X] 3.2 * [X] 3.3 * [X] 3.4 * [X] 3.5 * [X] 3.6 * [X] 3.7 * [X] 3.8