complete 2.3 - 2.7