add scan projection implementation