task1(need fixing in the future) and task2