implement subtasks in new design