task 2.1
task 2.3
task 2.4-2.7