another version that perform faster but worse
use validation and choose best model