task1 implemented