changed discoverer to use setTimeout again to ensure that current operation finishes before next starts