refactor preselection