implemented async scanning