allows to perform multiple changes to the list, and only notify listeners after all changes are through.
void modify(List<T> Function(List<T> list) applyChanges) { _list = applyChanges(_list); notifyListeners(); }