task1 final version