Finished exercise 30.