this method does too much. Can we have different methods for row selection and select / unselect all?