Hiding task-oriented programming complexity: an industrial case study