task 1 implemented