noselect; refactoring