done ex2.17-2.20