first and firstOrElse