use more efficient eagerload