On my way to using Task<TResult>