ouch. This should return a future, but it would break the API. Opinions?