refactored product selector