new functions to select and cross validate different model classes