Renaming SynchronousListener -> CompletionListener and making it public.