implemented all task