add subtask functionality