implementing shift select