improve task runner