Discovery first implementation: must be moved out from main thread.