add scan functions