add scan function