add scan func