What's wrong with a generic cancelable API? Settings are like generic setting API.