task 18.4
task 18.7
task 18.8
task 18.9