Have you considered returning a DeferredList?