Revert "Exercises 2.33 - 2.38"

This reverts commit 4c90850d41f8ca9633ba77adadfe1ef40582dc5e.
Revert "Revert "Exercises 2.33 - 2.38""

This reverts commit 980c7a4df6883e849539cd6cfeb8167524a9cfb1.