Yeah implementing it that way was my original plan - the only thing was i was reading that there's no guarantee that onComplete is called immediately on completion.  It's called eventually.  So can provide both and let the user decide which to use?