Finished exercises 1.16, 1.17, 1.18