done ex2.21-2.23