add the task3; fix some minor bugs