better struture for task.run