much faster choose