refactor new_resource_task, use one channel instead of two