This should be a scoped disposable so that it disposes when the object is dealloc'd.