improve model_select()