rewrite the task using child_process and async modules