finished exercise. not all done, but it's enought for me