implemented extra task 2