Completed exercise #29
Completed exercise #30
Completed exercise #31