filnal version of task 12