initial task3 + merge with task1-2