partially implemented task #2
task #2 completed