Done exercise6.12
Done exercise6.16
Done exercise6.18