adding asynch logic and progress indication when searching