Exercise 1: Adding a highPriorityTasks Computed Property & a Sectioned List — Possible Solution ======================================================================================================= // Added to TaskListViewModel: var highPriorityTasks: [Task] { tasks.filter { $0.priority == 3 } } // Updated TaskListView: struct TaskListView: View { @Bindable var viewModel: TaskListViewModel var body: some View { List { if !viewModel.highPriorityTasks.isEmpty { Section("High Priority") { ForEach(viewModel.highPriorityTasks) { task in Text(task.title) } } } Section("All Tasks") { ForEach(viewModel.tasks) { task in Text(task.title) } } } .navigationTitle("\(viewModel.incompleteCount) remaining") } } HOW IT WORKS: highPriorityTasks is a real computed property on TaskListViewModel, following the exact same pattern as the chapter's own incompleteCount - it derives view-relevant information (which tasks count as "high priority") directly from the ViewModel's own real tasks array, using the standard filter method rather than any new, separate storage. Because it's computed rather than stored, it's always automatically up to date with whatever tasks currently contains - there's no risk of it drifting out of sync the way a separately-maintained duplicate array could. TaskListView adds a real, conditional Section shown only when highPriorityTasks isn't empty (avoiding a genuinely pointless empty section header), correctly following the chapter's own rule of thumb: deciding WHICH tasks count as high priority is exactly the kind of data-selection decision that belongs on the ViewModel, not as ad hoc filtering logic written directly inside the View's own body. ANSWER: Adding var highPriorityTasks: [Task] { tasks.filter { $0.priority == 3 } } to TaskListViewModel, then using it in a conditionally-shown Section("High Priority") above the main task list in TaskListView, correctly implements the requested feature using the same computed-property-on-the-ViewModel pattern the chapter itself established with incompleteCount. WHY THIS WORKS AS AN ANSWER ------------------------------ This correctly adds a new computed property to the ViewModel rather than the View, following the exact same architectural pattern the chapter's own incompleteCount example already demonstrated.